
/* DWARF original prototype: void add_archive_start(Cref_inputs * this, Archive * archive) */

void __thiscall gold::Cref_inputs::add_archive_start(Cref_inputs *this,Archive *archive)

{
  _Base_ptr *pp_Var1;
  _func_int_varargs *p_Var2;
  uint uVar3;
  int iVar4;
  ulong uVar5;
  iterator __pos;
  undefined8 *puVar6;
  _Base_ptr p_Var7;
  iterator iVar8;
  string *psVar9;
  _Base_ptr __n;
  _Base_ptr p_Var10;
  _Base_ptr p_Var11;
  const_iterator __pos_00;
  long lVar12;
  _Base_ptr p_Var13;
  _Base_ptr p_Var14;
  bool bVar15;
  pointer local_70;
  tuple<> local_41;
  _Head_base<0,_const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&,_false>
  local_40 [2];
  undefined4 extraout_var;
  
  if ((Cref_inputs *)this->current_ != this) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/cref.cc",0x89,"add_archive_start");
  }
  p_Var14 = (this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;
  __pos_00._M_node = &(this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header;
  __pos._M_node = __pos_00._M_node;
  iVar8._M_node = __pos_00._M_node;
  if (p_Var14 == (_Base_ptr)0x0) {
LAB_00264586:
    local_40[0]._M_head_impl = &archive->name_;
    __pos = std::
            _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>
            ::
            _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>
                      (&(this->archives_)._M_t,__pos._M_node,
                       (piecewise_construct_t *)&std::piecewise_construct,
                       (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>
                        *)local_40,&local_41);
LAB_002645b1:
    p_Var2 = (archive->super_Library_base)._vptr_Library_base[2];
    if (p_Var2 == Archive::do_filename) {
      psVar9 = (string *)&archive->input_file_->file_;
    }
    else {
      iVar4 = (*p_Var2)(archive);
      psVar9 = (string *)CONCAT44(extraout_var,iVar4);
    }
    std::string::_M_assign((string *)(__pos._M_node + 2),psVar9);
    puVar6 = (undefined8 *)operator_new(0x18);
    *puVar6 = 0;
    puVar6[1] = 0;
    puVar6[2] = 0;
    *(undefined8 **)(__pos._M_node + 3) = puVar6;
    p_Var7 = (_Base_ptr)Archive::count_members(archive);
    p_Var14 = (this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;
    __pos._M_node[3]._M_parent = p_Var7;
    if (p_Var14 != (_Base_ptr)0x0) {
      local_70 = (archive->name_)._M_dataplus._M_p;
      p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;
      goto LAB_00264639;
    }
  }
  else {
    local_70 = (archive->name_)._M_dataplus._M_p;
    p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;
    p_Var13 = __pos_00._M_node;
    p_Var11 = p_Var14;
    do {
      while( true ) {
        p_Var10 = p_Var11[1]._M_parent;
        __n = p_Var7;
        if (p_Var10 <= p_Var7) {
          __n = p_Var10;
        }
        if (__n != (_Base_ptr)0x0) break;
LAB_00264472:
        uVar5 = (long)p_Var10 - (long)p_Var7;
        if ((long)uVar5 < 0x80000000) {
          if (-0x80000001 < (long)uVar5) goto LAB_00264488;
          goto LAB_00264430;
        }
LAB_0026448c:
        pp_Var1 = &p_Var11->_M_left;
        p_Var13 = p_Var11;
        p_Var11 = *pp_Var1;
        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264498;
      }
      uVar3 = memcmp(*(void **)(p_Var11 + 1),local_70,(size_t)__n);
      uVar5 = (ulong)uVar3;
      if (uVar3 == 0) goto LAB_00264472;
LAB_00264488:
      if (-1 < (int)uVar5) goto LAB_0026448c;
LAB_00264430:
      p_Var11 = p_Var11->_M_right;
    } while (p_Var11 != (_Base_ptr)0x0);
LAB_00264498:
    if (__pos_00._M_node == p_Var13) {
LAB_002644f9:
      do {
        while( true ) {
          p_Var11 = p_Var14[1]._M_parent;
          p_Var10 = p_Var7;
          if (p_Var11 <= p_Var7) {
            p_Var10 = p_Var11;
          }
          if ((p_Var10 != (_Base_ptr)0x0) &&
             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)) break;
          lVar12 = (long)p_Var11 - (long)p_Var7;
          if (lVar12 < 0x80000000) {
            if (-0x80000001 < lVar12) {
              iVar4 = (int)lVar12;
              break;
            }
            goto LAB_002644f0;
          }
LAB_00264544:
          pp_Var1 = &p_Var14->_M_left;
          __pos._M_node = p_Var14;
          p_Var14 = *pp_Var1;
          if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264550;
        }
        if (-1 < iVar4) goto LAB_00264544;
LAB_002644f0:
        p_Var14 = p_Var14->_M_right;
      } while (p_Var14 != (_Base_ptr)0x0);
LAB_00264550:
      if (__pos_00._M_node == __pos._M_node) goto LAB_00264586;
      p_Var14 = __pos._M_node[1]._M_parent;
      p_Var11 = p_Var14;
      if (p_Var7 <= p_Var14) {
        p_Var11 = p_Var7;
      }
      if ((p_Var11 == (_Base_ptr)0x0) ||
         (iVar4 = memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {
        lVar12 = (long)p_Var7 - (long)p_Var14;
        if (lVar12 < 0x80000000) {
          if (lVar12 < -0x80000000) goto LAB_00264586;
          iVar4 = (int)lVar12;
          goto LAB_00264582;
        }
      }
      else {
LAB_00264582:
        if (iVar4 < 0) goto LAB_00264586;
      }
      goto LAB_002645b1;
    }
    p_Var11 = p_Var13[1]._M_parent;
    p_Var10 = p_Var11;
    if (p_Var7 <= p_Var11) {
      p_Var10 = p_Var7;
    }
    if (p_Var10 == (_Base_ptr)0x0) {
LAB_002644c2:
      uVar5 = (long)p_Var7 - (long)p_Var11;
      if ((long)uVar5 < 0x80000000) {
        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;
        goto LAB_002644dc;
      }
    }
    else {
      uVar3 = memcmp(local_70,*(void **)(p_Var13 + 1),(size_t)p_Var10);
      uVar5 = (ulong)uVar3;
      if (uVar3 == 0) goto LAB_002644c2;
LAB_002644dc:
      if ((int)uVar5 < 0) goto LAB_002644f9;
    }
LAB_00264639:
    do {
      while( true ) {
        p_Var11 = p_Var14[1]._M_parent;
        p_Var10 = p_Var7;
        if (p_Var11 <= p_Var7) {
          p_Var10 = p_Var11;
        }
        if (p_Var10 != (_Base_ptr)0x0) break;
LAB_0026465e:
        uVar5 = (long)p_Var11 - (long)p_Var7;
        if ((long)uVar5 < 0x80000000) {
          if (-0x80000001 < (long)uVar5) goto LAB_00264674;
          goto LAB_00264630;
        }
LAB_00264678:
        pp_Var1 = &p_Var14->_M_left;
        iVar8._M_node = p_Var14;
        p_Var14 = *pp_Var1;
        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264684;
      }
      uVar3 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10);
      uVar5 = (ulong)uVar3;
      if (uVar3 == 0) goto LAB_0026465e;
LAB_00264674:
      if (-1 < (int)uVar5) goto LAB_00264678;
LAB_00264630:
      p_Var14 = p_Var14->_M_right;
    } while (p_Var14 != (_Base_ptr)0x0);
LAB_00264684:
    bVar15 = __pos_00._M_node != iVar8._M_node;
    __pos_00._M_node = iVar8._M_node;
    if (bVar15) {
      p_Var14 = iVar8._M_node[1]._M_parent;
      p_Var11 = p_Var14;
      if (p_Var7 <= p_Var14) {
        p_Var11 = p_Var7;
      }
      if ((p_Var11 == (_Base_ptr)0x0) ||
         (iVar4 = memcmp(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {
        lVar12 = (long)p_Var7 - (long)p_Var14;
        if (0x7fffffff < lVar12) goto LAB_002646f8;
        if (lVar12 < -0x80000000) goto LAB_002646cd;
        iVar4 = (int)lVar12;
      }
      if (-1 < iVar4) goto LAB_002646f8;
    }
  }
LAB_002646cd:
  local_40[0]._M_head_impl = &archive->name_;
  iVar8 = std::
          _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>
          ::
          _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>
                    (&(this->archives_)._M_t,__pos_00,
                     (piecewise_construct_t *)&std::piecewise_construct,
                     (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>
                      *)local_40,&local_41);
LAB_002646f8:
  this->current_ = *(Objects **)(iVar8._M_node + 3);
  return;
}



void FUN_002643d0(long param_1,long *param_2)

{
  long *plVar1;
  ulong uVar2;
  uint uVar3;
  int iVar4;
  ulong uVar5;
  long lVar6;
  undefined8 *puVar7;
  undefined8 uVar8;
  long lVar9;
  long lVar10;
  long lVar11;
  long lVar12;
  long lVar13;
  ulong uVar14;
  bool bVar15;
  void *local_70;
  undefined1 local_41;
  long *local_40 [2];
  
  if (*(long *)(param_1 + 0x48) != param_1) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");
  }
  lVar11 = *(long *)(param_1 + 0x28);
  lVar10 = param_1 + 0x20;
  lVar6 = lVar10;
  lVar9 = lVar10;
  if (lVar11 == 0) {
LAB_00264586:
    local_40[0] = param_2 + 3;
    lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);
LAB_002645b1:
    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {
      lVar11 = param_2[7] + 0x28;
    }
    else {
      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);
    }
    FUN_002a95a0(lVar6 + 0x40,lVar11);
    puVar7 = (undefined8 *)FUN_002a11b0(0x18);
    *puVar7 = 0;
    puVar7[1] = 0;
    puVar7[2] = 0;
    *(undefined8 **)(lVar6 + 0x60) = puVar7;
    uVar8 = FUN_00188760(param_2);
    lVar11 = *(long *)(param_1 + 0x28);
    *(undefined8 *)(lVar6 + 0x68) = uVar8;
    if (lVar11 != 0) {
      local_70 = (void *)param_2[3];
      uVar14 = param_2[4];
      goto LAB_00264639;
    }
  }
  else {
    local_70 = (void *)param_2[3];
    uVar14 = param_2[4];
    lVar13 = lVar10;
    lVar12 = lVar11;
    do {
      while( true ) {
        uVar2 = *(ulong *)(lVar12 + 0x28);
        uVar5 = uVar14;
        if (uVar2 <= uVar14) {
          uVar5 = uVar2;
        }
        if (uVar5 != 0) break;
LAB_00264472:
        uVar5 = uVar2 - uVar14;
        if ((long)uVar5 < 0x80000000) {
          if (-0x80000001 < (long)uVar5) goto LAB_00264488;
          goto LAB_00264430;
        }
LAB_0026448c:
        plVar1 = (long *)(lVar12 + 0x10);
        lVar13 = lVar12;
        lVar12 = *plVar1;
        if (*plVar1 == 0) goto LAB_00264498;
      }
      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);
      uVar5 = (ulong)uVar3;
      if (uVar3 == 0) goto LAB_00264472;
LAB_00264488:
      if (-1 < (int)uVar5) goto LAB_0026448c;
LAB_00264430:
      lVar12 = *(long *)(lVar12 + 0x18);
    } while (lVar12 != 0);
LAB_00264498:
    if (lVar10 == lVar13) {
LAB_002644f9:
      do {
        while( true ) {
          uVar2 = *(ulong *)(lVar11 + 0x28);
          uVar5 = uVar14;
          if (uVar2 <= uVar14) {
            uVar5 = uVar2;
          }
          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)
             ) break;
          lVar12 = uVar2 - uVar14;
          if (lVar12 < 0x80000000) {
            if (-0x80000001 < lVar12) {
              iVar4 = (int)lVar12;
              break;
            }
            goto LAB_002644f0;
          }
LAB_00264544:
          plVar1 = (long *)(lVar11 + 0x10);
          lVar6 = lVar11;
          lVar11 = *plVar1;
          if (*plVar1 == 0) goto LAB_00264550;
        }
        if (-1 < iVar4) goto LAB_00264544;
LAB_002644f0:
        lVar11 = *(long *)(lVar11 + 0x18);
      } while (lVar11 != 0);
LAB_00264550:
      if (lVar10 == lVar6) goto LAB_00264586;
      uVar2 = *(ulong *)(lVar6 + 0x28);
      uVar5 = uVar2;
      if (uVar14 <= uVar2) {
        uVar5 = uVar14;
      }
      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {
        lVar11 = uVar14 - uVar2;
        if (lVar11 < 0x80000000) {
          if (lVar11 < -0x80000000) goto LAB_00264586;
          iVar4 = (int)lVar11;
          goto LAB_00264582;
        }
      }
      else {
LAB_00264582:
        if (iVar4 < 0) goto LAB_00264586;
      }
      goto LAB_002645b1;
    }
    uVar2 = *(ulong *)(lVar13 + 0x28);
    uVar5 = uVar2;
    if (uVar14 <= uVar2) {
      uVar5 = uVar14;
    }
    if (uVar5 == 0) {
LAB_002644c2:
      uVar5 = uVar14 - uVar2;
      if ((long)uVar5 < 0x80000000) {
        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;
        goto LAB_002644dc;
      }
    }
    else {
      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);
      uVar5 = (ulong)uVar3;
      if (uVar3 == 0) goto LAB_002644c2;
LAB_002644dc:
      if ((int)uVar5 < 0) goto LAB_002644f9;
    }
LAB_00264639:
    do {
      while( true ) {
        uVar2 = *(ulong *)(lVar11 + 0x28);
        uVar5 = uVar14;
        if (uVar2 <= uVar14) {
          uVar5 = uVar2;
        }
        if (uVar5 != 0) break;
LAB_0026465e:
        uVar5 = uVar2 - uVar14;
        if ((long)uVar5 < 0x80000000) {
          if (-0x80000001 < (long)uVar5) goto LAB_00264674;
          goto LAB_00264630;
        }
LAB_00264678:
        plVar1 = (long *)(lVar11 + 0x10);
        lVar9 = lVar11;
        lVar11 = *plVar1;
        if (*plVar1 == 0) goto LAB_00264684;
      }
      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);
      uVar5 = (ulong)uVar3;
      if (uVar3 == 0) goto LAB_0026465e;
LAB_00264674:
      if (-1 < (int)uVar5) goto LAB_00264678;
LAB_00264630:
      lVar11 = *(long *)(lVar11 + 0x18);
    } while (lVar11 != 0);
LAB_00264684:
    bVar15 = lVar10 != lVar9;
    lVar10 = lVar9;
    if (bVar15) {
      uVar2 = *(ulong *)(lVar9 + 0x28);
      uVar5 = uVar2;
      if (uVar14 <= uVar2) {
        uVar5 = uVar14;
      }
      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {
        lVar11 = uVar14 - uVar2;
        if (0x7fffffff < lVar11) goto LAB_002646f8;
        if (lVar11 < -0x80000000) goto LAB_002646cd;
        iVar4 = (int)lVar11;
      }
      if (-1 < iVar4) goto LAB_002646f8;
    }
  }
LAB_002646cd:
  local_40[0] = param_2 + 3;
  lVar9 = FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41);
LAB_002646f8:
  *(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60);
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x48
CMP qword ptr [RDI + 0x48],RDI
JNZ 0x0026475d
LEA RAX,[RDI + 0x18]
MOV R15,qword ptr [RDI + 0x28]
MOV RBX,RDI
MOV RBP,RSI
MOV qword ptr [RSP + 0x28],RAX
LEA RAX,[RSI + 0x18]
LEA R12,[RDI + 0x20]
MOV qword ptr [RSP + 0x20],RAX
TEST R15,R15
JZ 0x00264748
MOV RAX,qword ptr [RSI + 0x18]
MOV R13,qword ptr [RSI + 0x20]
MOV R10,R12
MOV R14,R15
MOV qword ptr [RSP + 0x8],RAX
JMP 0x00264439
MOV R14,qword ptr [R14 + 0x18]
TEST R14,R14
JZ 0x00264498
MOV R9,qword ptr [R14 + 0x28]
MOV RDX,R13
CMP R9,R13
CMOVBE RDX,R9
TEST RDX,RDX
JZ 0x00264472
MOV RDI,qword ptr [R14 + 0x20]
MOV RSI,qword ptr [RSP + 0x8]
MOV qword ptr [RSP + 0x18],R10
MOV qword ptr [RSP + 0x10],R9
CALL 0x00144830
MOV R9,qword ptr [RSP + 0x10]
MOV R10,qword ptr [RSP + 0x18]
TEST EAX,EAX
JNZ 0x00264488
MOV RAX,R9
SUB RAX,R13
CMP RAX,0x7fffffff
JG 0x0026448c
CMP RAX,-0x80000000
JL 0x00264430
TEST EAX,EAX
JS 0x00264430
MOV R10,R14
MOV R14,qword ptr [R14 + 0x10]
TEST R14,R14
JNZ 0x00264439
CMP R12,R10
JZ 0x002644e4
MOV R14,qword ptr [R10 + 0x28]
CMP R13,R14
MOV RDX,R14
CMOVBE RDX,R13
TEST RDX,RDX
JZ 0x002644c2
MOV RSI,qword ptr [R10 + 0x20]
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00144830
TEST EAX,EAX
JNZ 0x002644dc
MOV RAX,R13
SUB RAX,R14
CMP RAX,0x7fffffff
JG 0x00264628
CMP RAX,-0x80000000
JL 0x002644e4
TEST EAX,EAX
JNS 0x00264628
MOV R14,R12
JMP 0x002644f9
MOV R15,qword ptr [R15 + 0x18]
TEST R15,R15
JZ 0x00264550
MOV R9,qword ptr [R15 + 0x28]
MOV RDX,R13
CMP R9,R13
CMOVBE RDX,R9
TEST RDX,RDX
JZ 0x00264528
MOV RDI,qword ptr [R15 + 0x20]
MOV RSI,qword ptr [RSP + 0x8]
MOV qword ptr [RSP + 0x10],R9
CALL 0x00144830
MOV R9,qword ptr [RSP + 0x10]
TEST EAX,EAX
JNZ 0x00264540
SUB R9,R13
CMP R9,0x7fffffff
JG 0x00264544
CMP R9,-0x80000000
JL 0x002644f0
MOV EAX,R9D
TEST EAX,EAX
JS 0x002644f0
MOV R14,R15
MOV R15,qword ptr [R15 + 0x10]
TEST R15,R15
JNZ 0x002644f9
CMP R12,R14
JZ 0x00264586
MOV R15,qword ptr [R14 + 0x28]
CMP R13,R15
MOV RDX,R15
CMOVBE RDX,R13
TEST RDX,RDX
JZ 0x00264710
MOV RSI,qword ptr [R14 + 0x20]
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00144830
TEST EAX,EAX
JZ 0x00264710
TEST EAX,EAX
JNS 0x002645b1
MOV RAX,qword ptr [RSP + 0x20]
MOV RDI,qword ptr [RSP + 0x28]
MOV RSI,R14
LEA RCX,[RSP + 0x38]
LEA R8,[RSP + 0x37]
LEA RDX,[0x355362]
MOV qword ptr [RSP + 0x38],RAX
CALL 0x00264d50
MOV R14,RAX
MOV RAX,qword ptr [RBP]
LEA RDX,[0x18b220]
LEA R13,[R14 + 0x40]
MOV RAX,qword ptr [RAX + 0x10]
CMP RAX,RDX
JNZ 0x00264750
MOV RAX,qword ptr [RBP + 0x38]
LEA RSI,[RAX + 0x28]
MOV RDI,R13
CALL 0x002a95a0
MOV EDI,0x18
CALL 0x002a11b0
MOV RDI,RBP
MOV qword ptr [RAX],0x0
MOV qword ptr [RAX + 0x8],0x0
MOV qword ptr [RAX + 0x10],0x0
MOV qword ptr [R14 + 0x60],RAX
CALL 0x00188760
MOV R15,qword ptr [RBX + 0x28]
MOV qword ptr [R14 + 0x68],RAX
TEST R15,R15
JZ 0x00264740
MOV RAX,qword ptr [RBP + 0x18]
MOV R13,qword ptr [RBP + 0x20]
MOV qword ptr [RSP + 0x8],RAX
MOV RBP,R12
JMP 0x00264639
MOV R15,qword ptr [R15 + 0x18]
TEST R15,R15
JZ 0x00264684
MOV R14,qword ptr [R15 + 0x28]
MOV RDX,R13
CMP R14,R13
CMOVBE RDX,R14
TEST RDX,RDX
JZ 0x0026465e
MOV RDI,qword ptr [R15 + 0x20]
MOV RSI,qword ptr [RSP + 0x8]
CALL 0x00144830
TEST EAX,EAX
JNZ 0x00264674
MOV RAX,R14
SUB RAX,R13
CMP RAX,0x7fffffff
JG 0x00264678
CMP RAX,-0x80000000
JL 0x00264630
TEST EAX,EAX
JS 0x00264630
MOV RBP,R15
MOV R15,qword ptr [R15 + 0x10]
TEST R15,R15
JNZ 0x00264639
CMP R12,RBP
JZ 0x002646cd
MOV R12,qword ptr [RBP + 0x28]
CMP R13,R12
MOV RDX,R12
CMOVBE RDX,R13
TEST RDX,RDX
JZ 0x002646ae
MOV RSI,qword ptr [RBP + 0x20]
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00144830
TEST EAX,EAX
JNZ 0x002646c9
MOV R8,R13
SUB R8,R12
CMP R8,0x7fffffff
JG 0x002646f8
CMP R8,-0x80000000
JL 0x002646cd
MOV EAX,R8D
TEST EAX,EAX
JNS 0x002646f8
MOV RAX,qword ptr [RSP + 0x20]
MOV RDI,qword ptr [RSP + 0x28]
MOV RSI,RBP
LEA RCX,[RSP + 0x38]
LEA R8,[RSP + 0x37]
LEA RDX,[0x355362]
MOV qword ptr [RSP + 0x38],RAX
CALL 0x00264d50
MOV RBP,RAX
MOV RAX,qword ptr [RBP + 0x60]
MOV qword ptr [RBX + 0x48],RAX
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV R8,R13
SUB R8,R15
CMP R8,0x7fffffff
JG 0x002645b1
CMP R8,-0x80000000
JL 0x00264586
MOV EAX,R8D
JMP 0x00264582
MOV RBP,R12
JMP 0x002646cd
MOV R14,R12
JMP 0x00264586
MOV RDI,RBP
CALL RAX
MOV RSI,RAX
JMP 0x002645d5
LEA RDX,[0x355350]
MOV ESI,0x89
LEA RDI,[0x355263]
CALL 0x00199900
(translation_unit "void FUN_002643d0(long param_1,long *param_2)\n\n{\n  long *plVar1;\n  ulong uVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  undefined8 uVar8;\n  long lVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  ulong uVar14;\n  bool bVar15;\n  void *local_70;\n  undefined1 local_41;\n  long *local_40 [2];\n  \n  if (*(long *)(param_1 + 0x48) != param_1) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");\n  }\n  lVar11 = *(long *)(param_1 + 0x28);\n  lVar10 = param_1 + 0x20;\n  lVar6 = lVar10;\n  lVar9 = lVar10;\n  if (lVar11 == 0) {\nLAB_00264586:\n    local_40[0] = param_2 + 3;\n    lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);\nLAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    FUN_002a95a0(lVar6 + 0x40,lVar11);\n    puVar7 = (undefined8 *)FUN_002a11b0(0x18);\n    *puVar7 = 0;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    *(undefined8 **)(lVar6 + 0x60) = puVar7;\n    uVar8 = FUN_00188760(param_2);\n    lVar11 = *(long *)(param_1 + 0x28);\n    *(undefined8 *)(lVar6 + 0x68) = uVar8;\n    if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }\n  }\n  else {\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }\nLAB_002646cd:\n  local_40[0] = param_2 + 3;\n  lVar9 = FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41);\nLAB_002646f8:\n  *(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60);\n  return;\n}\n\n" (function_definition "void FUN_002643d0(long param_1,long *param_2)\n\n{\n  long *plVar1;\n  ulong uVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  undefined8 uVar8;\n  long lVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  ulong uVar14;\n  bool bVar15;\n  void *local_70;\n  undefined1 local_41;\n  long *local_40 [2];\n  \n  if (*(long *)(param_1 + 0x48) != param_1) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");\n  }\n  lVar11 = *(long *)(param_1 + 0x28);\n  lVar10 = param_1 + 0x20;\n  lVar6 = lVar10;\n  lVar9 = lVar10;\n  if (lVar11 == 0) {\nLAB_00264586:\n    local_40[0] = param_2 + 3;\n    lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);\nLAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    FUN_002a95a0(lVar6 + 0x40,lVar11);\n    puVar7 = (undefined8 *)FUN_002a11b0(0x18);\n    *puVar7 = 0;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    *(undefined8 **)(lVar6 + 0x60) = puVar7;\n    uVar8 = FUN_00188760(param_2);\n    lVar11 = *(long *)(param_1 + 0x28);\n    *(undefined8 *)(lVar6 + 0x68) = uVar8;\n    if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }\n  }\n  else {\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }\nLAB_002646cd:\n  local_40[0] = param_2 + 3;\n  lVar9 = FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41);\nLAB_002646f8:\n  *(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60);\n  return;\n}" primitive_type (function_declarator "FUN_002643d0(long param_1,long *param_2)" identifier (parameter_list "(long param_1,long *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  long *plVar1;\n  ulong uVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  undefined8 uVar8;\n  long lVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  ulong uVar14;\n  bool bVar15;\n  void *local_70;\n  undefined1 local_41;\n  long *local_40 [2];\n  \n  if (*(long *)(param_1 + 0x48) != param_1) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");\n  }\n  lVar11 = *(long *)(param_1 + 0x28);\n  lVar10 = param_1 + 0x20;\n  lVar6 = lVar10;\n  lVar9 = lVar10;\n  if (lVar11 == 0) {\nLAB_00264586:\n    local_40[0] = param_2 + 3;\n    lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);\nLAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    FUN_002a95a0(lVar6 + 0x40,lVar11);\n    puVar7 = (undefined8 *)FUN_002a11b0(0x18);\n    *puVar7 = 0;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    *(undefined8 **)(lVar6 + 0x60) = puVar7;\n    uVar8 = FUN_00188760(param_2);\n    lVar11 = *(long *)(param_1 + 0x28);\n    *(undefined8 *)(lVar6 + 0x68) = uVar8;\n    if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }\n  }\n  else {\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }\nLAB_002646cd:\n  local_40[0] = param_2 + 3;\n  lVar9 = FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41);\nLAB_002646f8:\n  *(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60);\n  return;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "void *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined1 local_41;" type_identifier identifier ;) (declaration "long *local_40 [2];" (sized_type_specifier "long" long) (pointer_declarator "*local_40 [2]" * (array_declarator "local_40 [2]" identifier [ number_literal ])) ;) (if_statement "if (*(long *)(param_1 + 0x48) != param_1) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x48) != param_1)" ( (binary_expression "*(long *)(param_1 + 0x48) != param_1" (pointer_expression "*(long *)(param_1 + 0x48)" * (cast_expression "(long *)(param_1 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");\n  }" { comment (expression_statement "FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");" (call_expression "FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start")" identifier (argument_list "("../../gold/cref.cc",0x89,"add_archive_start")" ( (string_literal ""../../gold/cref.cc"" " string_content ") , number_literal , (string_literal ""add_archive_start"" " string_content ") ))) ;) })) (expression_statement "lVar11 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x28)" identifier = (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar10 = param_1 + 0x20;" (assignment_expression "lVar10 = param_1 + 0x20" identifier = (binary_expression "param_1 + 0x20" identifier + number_literal)) ;) (expression_statement "lVar6 = lVar10;" (assignment_expression "lVar6 = lVar10" identifier = identifier) ;) (expression_statement "lVar9 = lVar10;" (assignment_expression "lVar9 = lVar10" identifier = identifier) ;) (if_statement "if (lVar11 == 0) {\nLAB_00264586:\n    local_40[0] = param_2 + 3;\n    lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);\nLAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    FUN_002a95a0(lVar6 + 0x40,lVar11);\n    puVar7 = (undefined8 *)FUN_002a11b0(0x18);\n    *puVar7 = 0;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    *(undefined8 **)(lVar6 + 0x60) = puVar7;\n    uVar8 = FUN_00188760(param_2);\n    lVar11 = *(long *)(param_1 + 0x28);\n    *(undefined8 *)(lVar6 + 0x68) = uVar8;\n    if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }\n  }\n  else {\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00264586:\n    local_40[0] = param_2 + 3;\n    lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);\nLAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    FUN_002a95a0(lVar6 + 0x40,lVar11);\n    puVar7 = (undefined8 *)FUN_002a11b0(0x18);\n    *puVar7 = 0;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    *(undefined8 **)(lVar6 + 0x60) = puVar7;\n    uVar8 = FUN_00188760(param_2);\n    lVar11 = *(long *)(param_1 + 0x28);\n    *(undefined8 *)(lVar6 + 0x68) = uVar8;\n    if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }\n  }" { (labeled_statement "LAB_00264586:\n    local_40[0] = param_2 + 3;" statement_identifier : (expression_statement "local_40[0] = param_2 + 3;" (assignment_expression "local_40[0] = param_2 + 3" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (binary_expression "param_2 + 3" identifier + number_literal)) ;)) (expression_statement "lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);" (assignment_expression "lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41)" identifier = (call_expression "FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41)" identifier (argument_list "(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) , identifier , (pointer_expression "&DAT_00355362" & identifier) , identifier , (pointer_expression "&local_41" & identifier) )))) ;) (labeled_statement "LAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" statement_identifier : (if_statement "if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" if (parenthesized_expression "(*(code **)(*param_2 + 0x10) == FUN_0018b220)" ( (binary_expression "*(code **)(*param_2 + 0x10) == FUN_0018b220" (pointer_expression "*(code **)(*param_2 + 0x10)" * (cast_expression "(code **)(*param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n      lVar11 = param_2[7] + 0x28;\n    }" { (expression_statement "lVar11 = param_2[7] + 0x28;" (assignment_expression "lVar11 = param_2[7] + 0x28" identifier = (binary_expression "param_2[7] + 0x28" (subscript_expression "param_2[7]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" else (compound_statement "{\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" { (expression_statement "lVar11 = (**(code **)(*param_2 + 0x10))(param_2);" (assignment_expression "lVar11 = (**(code **)(*param_2 + 0x10))(param_2)" identifier = (call_expression "(**(code **)(*param_2 + 0x10))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x10))" ( (pointer_expression "**(code **)(*param_2 + 0x10)" * (pointer_expression "*(code **)(*param_2 + 0x10)" * (cast_expression "(code **)(*param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) })))) (expression_statement "FUN_002a95a0(lVar6 + 0x40,lVar11);" (call_expression "FUN_002a95a0(lVar6 + 0x40,lVar11)" identifier (argument_list "(lVar6 + 0x40,lVar11)" ( (binary_expression "lVar6 + 0x40" identifier + number_literal) , identifier ))) ;) (expression_statement "puVar7 = (undefined8 *)FUN_002a11b0(0x18);" (assignment_expression "puVar7 = (undefined8 *)FUN_002a11b0(0x18)" identifier = (cast_expression "(undefined8 *)FUN_002a11b0(0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002a11b0(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "*puVar7 = 0;" (assignment_expression "*puVar7 = 0" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined8 **)(lVar6 + 0x60) = puVar7;" (assignment_expression "*(undefined8 **)(lVar6 + 0x60) = puVar7" (pointer_expression "*(undefined8 **)(lVar6 + 0x60)" * (cast_expression "(undefined8 **)(lVar6 + 0x60)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x60)" ( (binary_expression "lVar6 + 0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = FUN_00188760(param_2);" (assignment_expression "uVar8 = FUN_00188760(param_2)" identifier = (call_expression "FUN_00188760(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "lVar11 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x28)" identifier = (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar6 + 0x68) = uVar8;" (assignment_expression "*(undefined8 *)(lVar6 + 0x68) = uVar8" (pointer_expression "*(undefined8 *)(lVar6 + 0x68)" * (cast_expression "(undefined8 *)(lVar6 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x68)" ( (binary_expression "lVar6 + 0x68" identifier + number_literal) )))) = identifier) ;) (if_statement "if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }" if (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) (compound_statement "{\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }" { (expression_statement "local_70 = (void *)param_2[3];" (assignment_expression "local_70 = (void *)param_2[3]" identifier = (cast_expression "(void *)param_2[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = param_2[4];" (assignment_expression "uVar14 = param_2[4]" identifier = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00264639;" goto statement_identifier ;) })) }) (else_clause "else {\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }" else (compound_statement "{\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }" { (expression_statement "local_70 = (void *)param_2[3];" (assignment_expression "local_70 = (void *)param_2[3]" identifier = (cast_expression "(void *)param_2[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = param_2[4];" (assignment_expression "uVar14 = param_2[4]" identifier = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (expression_statement "lVar13 = lVar10;" (assignment_expression "lVar13 = lVar10" identifier = identifier) ;) (expression_statement "lVar12 = lVar11;" (assignment_expression "lVar12 = lVar11" identifier = identifier) ;) (do_statement "do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);" do (compound_statement "{\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    }" { (while_statement "while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }" { (expression_statement "uVar2 = *(ulong *)(lVar12 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar12 + 0x28)" identifier = (pointer_expression "*(ulong *)(lVar12 + 0x28)" * (cast_expression "(ulong *)(lVar12 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x28)" ( (binary_expression "lVar12 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" identifier = identifier) ;) (if_statement "if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }" if (parenthesized_expression "(uVar2 <= uVar14)" ( (binary_expression "uVar2 <= uVar14" identifier <= identifier) )) (compound_statement "{\n          uVar5 = uVar2;\n        }" { (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" identifier = identifier) ;) })) (if_statement "if (uVar5 != 0) break;" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00264472:\n        uVar5 = uVar2 - uVar14;" statement_identifier : (expression_statement "uVar5 = uVar2 - uVar14;" (assignment_expression "uVar5 = uVar2 - uVar14" identifier = (binary_expression "uVar2 - uVar14" identifier - identifier)) ;)) (if_statement "if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }" if (parenthesized_expression "((long)uVar5 < 0x80000000)" ( (binary_expression "(long)uVar5 < 0x80000000" (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }" { (if_statement "if (-0x80000001 < (long)uVar5) goto LAB_00264488;" if (parenthesized_expression "(-0x80000001 < (long)uVar5)" ( (binary_expression "-0x80000001 < (long)uVar5" number_literal < (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_00264488;" goto statement_identifier ;)) (goto_statement "goto LAB_00264430;" goto statement_identifier ;) })) (labeled_statement "LAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);" statement_identifier : (expression_statement "plVar1 = (long *)(lVar12 + 0x10);" (assignment_expression "plVar1 = (long *)(lVar12 + 0x10)" identifier = (cast_expression "(long *)(lVar12 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x10)" ( (binary_expression "lVar12 + 0x10" identifier + number_literal) )))) ;)) (expression_statement "lVar13 = lVar12;" (assignment_expression "lVar13 = lVar12" identifier = identifier) ;) (expression_statement "lVar12 = *plVar1;" (assignment_expression "lVar12 = *plVar1" identifier = (pointer_expression "*plVar1" * identifier)) ;) (if_statement "if (*plVar1 == 0) goto LAB_00264498;" if (parenthesized_expression "(*plVar1 == 0)" ( (binary_expression "*plVar1 == 0" (pointer_expression "*plVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_00264498;" goto statement_identifier ;)) })) (expression_statement "uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);" (assignment_expression "uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5)" identifier = (call_expression "memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5)" identifier (argument_list "(*(void **)(lVar12 + 0x20),local_70,uVar5)" ( (pointer_expression "*(void **)(lVar12 + 0x20)" * (cast_expression "(void **)(lVar12 + 0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar12 + 0x20)" ( (binary_expression "lVar12 + 0x20" identifier + number_literal) )))) , identifier , identifier )))) ;) (expression_statement "uVar5 = (ulong)uVar3;" (assignment_expression "uVar5 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar3 == 0) goto LAB_00264472;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00264472;" goto statement_identifier ;)) (labeled_statement "LAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;" statement_identifier : (if_statement "if (-1 < (int)uVar5) goto LAB_0026448c;" if (parenthesized_expression "(-1 < (int)uVar5)" ( (binary_expression "-1 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0026448c;" goto statement_identifier ;))) (labeled_statement "LAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);" statement_identifier : (expression_statement "lVar12 = *(long *)(lVar12 + 0x18);" (assignment_expression "lVar12 = *(long *)(lVar12 + 0x18)" identifier = (pointer_expression "*(long *)(lVar12 + 0x18)" * (cast_expression "(long *)(lVar12 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x18)" ( (binary_expression "lVar12 + 0x18" identifier + number_literal) ))))) ;)) }) while (parenthesized_expression "(lVar12 != 0)" ( (binary_expression "lVar12 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }" statement_identifier : (if_statement "if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }" if (parenthesized_expression "(lVar10 == lVar13)" ( (binary_expression "lVar10 == lVar13" identifier == identifier) )) (compound_statement "{\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }" { (labeled_statement "LAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);" statement_identifier : (do_statement "do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);" do (compound_statement "{\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      }" { (while_statement "while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }" { (expression_statement "uVar2 = *(ulong *)(lVar11 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar11 + 0x28)" identifier = (pointer_expression "*(ulong *)(lVar11 + 0x28)" * (cast_expression "(ulong *)(lVar11 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x28)" ( (binary_expression "lVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" identifier = identifier) ;) (if_statement "if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }" if (parenthesized_expression "(uVar2 <= uVar14)" ( (binary_expression "uVar2 <= uVar14" identifier <= identifier) )) (compound_statement "{\n            uVar5 = uVar2;\n          }" { (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" identifier = identifier) ;) })) (if_statement "if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;" if (parenthesized_expression "((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             )" ( (binary_expression "(uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)" (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)" ( (comma_expression "iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0" (assignment_expression "iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5)" identifier = (call_expression "memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5)" identifier (argument_list "(*(void **)(lVar11 + 0x20),local_70,uVar5)" ( (pointer_expression "*(void **)(lVar11 + 0x20)" * (cast_expression "(void **)(lVar11 + 0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar11 + 0x20)" ( (binary_expression "lVar11 + 0x20" identifier + number_literal) )))) , identifier , identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = uVar2 - uVar14;" (assignment_expression "lVar12 = uVar2 - uVar14" identifier = (binary_expression "uVar2 - uVar14" identifier - identifier)) ;) (if_statement "if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }" if (parenthesized_expression "(lVar12 < 0x80000000)" ( (binary_expression "lVar12 < 0x80000000" identifier < number_literal) )) (compound_statement "{\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }" { (if_statement "if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }" if (parenthesized_expression "(-0x80000001 < lVar12)" ( (binary_expression "-0x80000001 < lVar12" number_literal < identifier) )) (compound_statement "{\n              iVar4 = (int)lVar12;\n              break;\n            }" { (expression_statement "iVar4 = (int)lVar12;" (assignment_expression "iVar4 = (int)lVar12" identifier = (cast_expression "(int)lVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;) })) (goto_statement "goto LAB_002644f0;" goto statement_identifier ;) })) (labeled_statement "LAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);" statement_identifier : (expression_statement "plVar1 = (long *)(lVar11 + 0x10);" (assignment_expression "plVar1 = (long *)(lVar11 + 0x10)" identifier = (cast_expression "(long *)(lVar11 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x10)" ( (binary_expression "lVar11 + 0x10" identifier + number_literal) )))) ;)) (expression_statement "lVar6 = lVar11;" (assignment_expression "lVar6 = lVar11" identifier = identifier) ;) (expression_statement "lVar11 = *plVar1;" (assignment_expression "lVar11 = *plVar1" identifier = (pointer_expression "*plVar1" * identifier)) ;) (if_statement "if (*plVar1 == 0) goto LAB_00264550;" if (parenthesized_expression "(*plVar1 == 0)" ( (binary_expression "*plVar1 == 0" (pointer_expression "*plVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_00264550;" goto statement_identifier ;)) })) (if_statement "if (-1 < iVar4) goto LAB_00264544;" if (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) (goto_statement "goto LAB_00264544;" goto statement_identifier ;)) (labeled_statement "LAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);" statement_identifier : (expression_statement "lVar11 = *(long *)(lVar11 + 0x18);" (assignment_expression "lVar11 = *(long *)(lVar11 + 0x18)" identifier = (pointer_expression "*(long *)(lVar11 + 0x18)" * (cast_expression "(long *)(lVar11 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x18)" ( (binary_expression "lVar11 + 0x18" identifier + number_literal) ))))) ;)) }) while (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) ;)) (labeled_statement "LAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;" statement_identifier : (if_statement "if (lVar10 == lVar6) goto LAB_00264586;" if (parenthesized_expression "(lVar10 == lVar6)" ( (binary_expression "lVar10 == lVar6" identifier == identifier) )) (goto_statement "goto LAB_00264586;" goto statement_identifier ;))) (expression_statement "uVar2 = *(ulong *)(lVar6 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar6 + 0x28)" identifier = (pointer_expression "*(ulong *)(lVar6 + 0x28)" * (cast_expression "(ulong *)(lVar6 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x28)" ( (binary_expression "lVar6 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" identifier = identifier) ;) (if_statement "if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }" if (parenthesized_expression "(uVar14 <= uVar2)" ( (binary_expression "uVar14 <= uVar2" identifier <= identifier) )) (compound_statement "{\n        uVar5 = uVar14;\n      }" { (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" identifier = identifier) ;) })) (if_statement "if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }" if (parenthesized_expression "((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0))" ( (binary_expression "(uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)" (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)" ( (comma_expression "iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0" (assignment_expression "iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5)" identifier = (call_expression "memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5)" identifier (argument_list "(local_70,*(void **)(lVar6 + 0x20),uVar5)" ( identifier , (pointer_expression "*(void **)(lVar6 + 0x20)" * (cast_expression "(void **)(lVar6 + 0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) , identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }" { (expression_statement "lVar11 = uVar14 - uVar2;" (assignment_expression "lVar11 = uVar14 - uVar2" identifier = (binary_expression "uVar14 - uVar2" identifier - identifier)) ;) (if_statement "if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }" if (parenthesized_expression "(lVar11 < 0x80000000)" ( (binary_expression "lVar11 < 0x80000000" identifier < number_literal) )) (compound_statement "{\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }" { (if_statement "if (lVar11 < -0x80000000) goto LAB_00264586;" if (parenthesized_expression "(lVar11 < -0x80000000)" ( (binary_expression "lVar11 < -0x80000000" identifier < number_literal) )) (goto_statement "goto LAB_00264586;" goto statement_identifier ;)) (expression_statement "iVar4 = (int)lVar11;" (assignment_expression "iVar4 = (int)lVar11" identifier = (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_00264582;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }" else (compound_statement "{\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }" { (labeled_statement "LAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;" statement_identifier : (if_statement "if (iVar4 < 0) goto LAB_00264586;" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00264586;" goto statement_identifier ;))) }))) (goto_statement "goto LAB_002645b1;" goto statement_identifier ;) }))) (expression_statement "uVar2 = *(ulong *)(lVar13 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar13 + 0x28)" identifier = (pointer_expression "*(ulong *)(lVar13 + 0x28)" * (cast_expression "(ulong *)(lVar13 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x28)" ( (binary_expression "lVar13 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" identifier = identifier) ;) (if_statement "if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }" if (parenthesized_expression "(uVar14 <= uVar2)" ( (binary_expression "uVar14 <= uVar2" identifier <= identifier) )) (compound_statement "{\n      uVar5 = uVar14;\n    }" { (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" identifier = identifier) ;) })) (if_statement "if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }" { (labeled_statement "LAB_002644c2:\n      uVar5 = uVar14 - uVar2;" statement_identifier : (expression_statement "uVar5 = uVar14 - uVar2;" (assignment_expression "uVar5 = uVar14 - uVar2" identifier = (binary_expression "uVar14 - uVar2" identifier - identifier)) ;)) (if_statement "if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }" if (parenthesized_expression "((long)uVar5 < 0x80000000)" ( (binary_expression "(long)uVar5 < 0x80000000" (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }" { (if_statement "if ((long)uVar5 < -0x80000000) goto LAB_002644f9;" if (parenthesized_expression "((long)uVar5 < -0x80000000)" ( (binary_expression "(long)uVar5 < -0x80000000" (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (goto_statement "goto LAB_002644f9;" goto statement_identifier ;)) (goto_statement "goto LAB_002644dc;" goto statement_identifier ;) })) }) (else_clause "else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }" else (compound_statement "{\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }" { (expression_statement "uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);" (assignment_expression "uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5)" identifier = (call_expression "memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5)" identifier (argument_list "(local_70,*(void **)(lVar13 + 0x20),uVar5)" ( identifier , (pointer_expression "*(void **)(lVar13 + 0x20)" * (cast_expression "(void **)(lVar13 + 0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar13 + 0x20)" ( (binary_expression "lVar13 + 0x20" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "uVar5 = (ulong)uVar3;" (assignment_expression "uVar5 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar3 == 0) goto LAB_002644c2;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002644c2;" goto statement_identifier ;)) (labeled_statement "LAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;" statement_identifier : (if_statement "if ((int)uVar5 < 0) goto LAB_002644f9;" if (parenthesized_expression "((int)uVar5 < 0)" ( (binary_expression "(int)uVar5 < 0" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_002644f9;" goto statement_identifier ;))) }))) (labeled_statement "LAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);" statement_identifier : (do_statement "do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);" do (compound_statement "{\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    }" { (while_statement "while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }" { (expression_statement "uVar2 = *(ulong *)(lVar11 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar11 + 0x28)" identifier = (pointer_expression "*(ulong *)(lVar11 + 0x28)" * (cast_expression "(ulong *)(lVar11 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x28)" ( (binary_expression "lVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" identifier = identifier) ;) (if_statement "if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }" if (parenthesized_expression "(uVar2 <= uVar14)" ( (binary_expression "uVar2 <= uVar14" identifier <= identifier) )) (compound_statement "{\n          uVar5 = uVar2;\n        }" { (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" identifier = identifier) ;) })) (if_statement "if (uVar5 != 0) break;" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0026465e:\n        uVar5 = uVar2 - uVar14;" statement_identifier : (expression_statement "uVar5 = uVar2 - uVar14;" (assignment_expression "uVar5 = uVar2 - uVar14" identifier = (binary_expression "uVar2 - uVar14" identifier - identifier)) ;)) (if_statement "if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }" if (parenthesized_expression "((long)uVar5 < 0x80000000)" ( (binary_expression "(long)uVar5 < 0x80000000" (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }" { (if_statement "if (-0x80000001 < (long)uVar5) goto LAB_00264674;" if (parenthesized_expression "(-0x80000001 < (long)uVar5)" ( (binary_expression "-0x80000001 < (long)uVar5" number_literal < (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_00264674;" goto statement_identifier ;)) (goto_statement "goto LAB_00264630;" goto statement_identifier ;) })) (labeled_statement "LAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);" statement_identifier : (expression_statement "plVar1 = (long *)(lVar11 + 0x10);" (assignment_expression "plVar1 = (long *)(lVar11 + 0x10)" identifier = (cast_expression "(long *)(lVar11 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x10)" ( (binary_expression "lVar11 + 0x10" identifier + number_literal) )))) ;)) (expression_statement "lVar9 = lVar11;" (assignment_expression "lVar9 = lVar11" identifier = identifier) ;) (expression_statement "lVar11 = *plVar1;" (assignment_expression "lVar11 = *plVar1" identifier = (pointer_expression "*plVar1" * identifier)) ;) (if_statement "if (*plVar1 == 0) goto LAB_00264684;" if (parenthesized_expression "(*plVar1 == 0)" ( (binary_expression "*plVar1 == 0" (pointer_expression "*plVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_00264684;" goto statement_identifier ;)) })) (expression_statement "uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);" (assignment_expression "uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5)" identifier = (call_expression "memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5)" identifier (argument_list "(*(void **)(lVar11 + 0x20),local_70,uVar5)" ( (pointer_expression "*(void **)(lVar11 + 0x20)" * (cast_expression "(void **)(lVar11 + 0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar11 + 0x20)" ( (binary_expression "lVar11 + 0x20" identifier + number_literal) )))) , identifier , identifier )))) ;) (expression_statement "uVar5 = (ulong)uVar3;" (assignment_expression "uVar5 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar3 == 0) goto LAB_0026465e;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0026465e;" goto statement_identifier ;)) (labeled_statement "LAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;" statement_identifier : (if_statement "if (-1 < (int)uVar5) goto LAB_00264678;" if (parenthesized_expression "(-1 < (int)uVar5)" ( (binary_expression "-1 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00264678;" goto statement_identifier ;))) (labeled_statement "LAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);" statement_identifier : (expression_statement "lVar11 = *(long *)(lVar11 + 0x18);" (assignment_expression "lVar11 = *(long *)(lVar11 + 0x18)" identifier = (pointer_expression "*(long *)(lVar11 + 0x18)" * (cast_expression "(long *)(lVar11 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x18)" ( (binary_expression "lVar11 + 0x18" identifier + number_literal) ))))) ;)) }) while (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) ;)) (labeled_statement "LAB_00264684:\n    bVar15 = lVar10 != lVar9;" statement_identifier : (expression_statement "bVar15 = lVar10 != lVar9;" (assignment_expression "bVar15 = lVar10 != lVar9" identifier = (binary_expression "lVar10 != lVar9" identifier != identifier)) ;)) (expression_statement "lVar10 = lVar9;" (assignment_expression "lVar10 = lVar9" identifier = identifier) ;) (if_statement "if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }" { (expression_statement "uVar2 = *(ulong *)(lVar9 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar9 + 0x28)" identifier = (pointer_expression "*(ulong *)(lVar9 + 0x28)" * (cast_expression "(ulong *)(lVar9 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x28)" ( (binary_expression "lVar9 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" identifier = identifier) ;) (if_statement "if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }" if (parenthesized_expression "(uVar14 <= uVar2)" ( (binary_expression "uVar14 <= uVar2" identifier <= identifier) )) (compound_statement "{\n        uVar5 = uVar14;\n      }" { (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" identifier = identifier) ;) })) (if_statement "if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }" if (parenthesized_expression "((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0))" ( (binary_expression "(uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)" (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)" ( (comma_expression "iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0" (assignment_expression "iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5)" identifier = (call_expression "memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5)" identifier (argument_list "(local_70,*(void **)(lVar9 + 0x20),uVar5)" ( identifier , (pointer_expression "*(void **)(lVar9 + 0x20)" * (cast_expression "(void **)(lVar9 + 0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x20)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) )))) , identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }" { (expression_statement "lVar11 = uVar14 - uVar2;" (assignment_expression "lVar11 = uVar14 - uVar2" identifier = (binary_expression "uVar14 - uVar2" identifier - identifier)) ;) (if_statement "if (0x7fffffff < lVar11) goto LAB_002646f8;" if (parenthesized_expression "(0x7fffffff < lVar11)" ( (binary_expression "0x7fffffff < lVar11" number_literal < identifier) )) (goto_statement "goto LAB_002646f8;" goto statement_identifier ;)) (if_statement "if (lVar11 < -0x80000000) goto LAB_002646cd;" if (parenthesized_expression "(lVar11 < -0x80000000)" ( (binary_expression "lVar11 < -0x80000000" identifier < number_literal) )) (goto_statement "goto LAB_002646cd;" goto statement_identifier ;)) (expression_statement "iVar4 = (int)lVar11;" (assignment_expression "iVar4 = (int)lVar11" identifier = (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (-1 < iVar4) goto LAB_002646f8;" if (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) (goto_statement "goto LAB_002646f8;" goto statement_identifier ;)) })) }))) (labeled_statement "LAB_002646cd:\n  local_40[0] = param_2 + 3;" statement_identifier : (expression_statement "local_40[0] = param_2 + 3;" (assignment_expression "local_40[0] = param_2 + 3" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (binary_expression "param_2 + 3" identifier + number_literal)) ;)) (expression_statement "lVar9 = FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41);" (assignment_expression "lVar9 = FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41)" identifier = (call_expression "FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41)" identifier (argument_list "(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) , identifier , (pointer_expression "&DAT_00355362" & identifier) , identifier , (pointer_expression "&local_41" & identifier) )))) ;) (labeled_statement "LAB_002646f8:\n  *(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60);" statement_identifier : (expression_statement "*(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60);" (assignment_expression "*(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60)" (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(lVar9 + 0x60)" * (cast_expression "(undefined8 *)(lVar9 + 0x60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x60)" ( (binary_expression "lVar9 + 0x60" identifier + number_literal) ))))) ;)) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void add_archive_start(Cref_inputs * this, Archive * archive) */\n\nvoid __thiscall gold::Cref_inputs::add_archive_start(Cref_inputs *this,Archive *archive)\n\n{\n  _Base_ptr *pp_Var1;\n  _func_int_varargs *p_Var2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  iterator __pos;\n  undefined8 *puVar6;\n  _Base_ptr p_Var7;\n  iterator iVar8;\n  string *psVar9;\n  _Base_ptr __n;\n  _Base_ptr p_Var10;\n  _Base_ptr p_Var11;\n  const_iterator __pos_00;\n  long lVar12;\n  _Base_ptr p_Var13;\n  _Base_ptr p_Var14;\n  bool bVar15;\n  pointer local_70;\n  tuple<> local_41;\n  _Head_base<0,_const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&,_false>\n  local_40 [2];\n  undefined4 extraout_var;\n  \n  if ((Cref_inputs *)this->current_ != this) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/cref.cc",0x89,"add_archive_start");\n  }\n  p_Var14 = (this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;\n  __pos_00._M_node = &(this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header;\n  __pos._M_node = __pos_00._M_node;\n  iVar8._M_node = __pos_00._M_node;\n  if (p_Var14 == (_Base_ptr)0x0) {\nLAB_00264586:\n    local_40[0]._M_head_impl = &archive->name_;\n    __pos = std::\n            _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n            ::\n            _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>\n                      (&(this->archives_)._M_t,__pos._M_node,\n                       (piecewise_construct_t *)&std::piecewise_construct,\n                       (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                        *)local_40,&local_41);\nLAB_002645b1:\n    p_Var2 = (archive->super_Library_base)._vptr_Library_base[2];\n    if (p_Var2 == Archive::do_filename) {\n      psVar9 = (string *)&archive->input_file_->file_;\n    }\n    else {\n      iVar4 = (*p_Var2)(archive);\n      psVar9 = (string *)CONCAT44(extraout_var,iVar4);\n    }\n    std::string::_M_assign((string *)(__pos._M_node + 2),psVar9);\n    puVar6 = (undefined8 *)operator_new(0x18);\n    *puVar6 = 0;\n    puVar6[1] = 0;\n    puVar6[2] = 0;\n    *(undefined8 **)(__pos._M_node + 3) = puVar6;\n    p_Var7 = (_Base_ptr)Archive::count_members(archive);\n    p_Var14 = (this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;\n    __pos._M_node[3]._M_parent = p_Var7;\n    if (p_Var14 != (_Base_ptr)0x0) {\n      local_70 = (archive->name_)._M_dataplus._M_p;\n      p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;\n      goto LAB_00264639;\n    }\n  }\n  else {\n    local_70 = (archive->name_)._M_dataplus._M_p;\n    p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;\n    p_Var13 = __pos_00._M_node;\n    p_Var11 = p_Var14;\n    do {\n      while( true ) {\n        p_Var10 = p_Var11[1]._M_parent;\n        __n = p_Var7;\n        if (p_Var10 <= p_Var7) {\n          __n = p_Var10;\n        }\n        if (__n != (_Base_ptr)0x0) break;\nLAB_00264472:\n        uVar5 = (long)p_Var10 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        pp_Var1 = &p_Var11->_M_left;\n        p_Var13 = p_Var11;\n        p_Var11 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(p_Var11 + 1),local_70,(size_t)__n);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      p_Var11 = p_Var11->_M_right;\n    } while (p_Var11 != (_Base_ptr)0x0);\nLAB_00264498:\n    if (__pos_00._M_node == p_Var13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          p_Var11 = p_Var14[1]._M_parent;\n          p_Var10 = p_Var7;\n          if (p_Var11 <= p_Var7) {\n            p_Var10 = p_Var11;\n          }\n          if ((p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)) break;\n          lVar12 = (long)p_Var11 - (long)p_Var7;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          pp_Var1 = &p_Var14->_M_left;\n          __pos._M_node = p_Var14;\n          p_Var14 = *pp_Var1;\n          if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        p_Var14 = p_Var14->_M_right;\n      } while (p_Var14 != (_Base_ptr)0x0);\nLAB_00264550:\n      if (__pos_00._M_node == __pos._M_node) goto LAB_00264586;\n      p_Var14 = __pos._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (lVar12 < 0x80000000) {\n          if (lVar12 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar12;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    p_Var11 = p_Var13[1]._M_parent;\n    p_Var10 = p_Var11;\n    if (p_Var7 <= p_Var11) {\n      p_Var10 = p_Var7;\n    }\n    if (p_Var10 == (_Base_ptr)0x0) {\nLAB_002644c2:\n      uVar5 = (long)p_Var7 - (long)p_Var11;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(p_Var13 + 1),(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        p_Var11 = p_Var14[1]._M_parent;\n        p_Var10 = p_Var7;\n        if (p_Var11 <= p_Var7) {\n          p_Var10 = p_Var11;\n        }\n        if (p_Var10 != (_Base_ptr)0x0) break;\nLAB_0026465e:\n        uVar5 = (long)p_Var11 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        pp_Var1 = &p_Var14->_M_left;\n        iVar8._M_node = p_Var14;\n        p_Var14 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      p_Var14 = p_Var14->_M_right;\n    } while (p_Var14 != (_Base_ptr)0x0);\nLAB_00264684:\n    bVar15 = __pos_00._M_node != iVar8._M_node;\n    __pos_00._M_node = iVar8._M_node;\n    if (bVar15) {\n      p_Var14 = iVar8._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (0x7fffffff < lVar12) goto LAB_002646f8;\n        if (lVar12 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar12;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }\nLAB_002646cd:\n  local_40[0]._M_head_impl = &archive->name_;\n  iVar8 = std::\n          _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n          ::\n          _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>\n                    (&(this->archives_)._M_t,__pos_00,\n                     (piecewise_construct_t *)&std::piecewise_construct,\n                     (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                      *)local_40,&local_41);\nLAB_002646f8:\n  this->current_ = *(Objects **)(iVar8._M_node + 3);\n  return;\n}\n\n" comment (function_definition "void __thiscall gold::Cref_inputs::add_archive_start(Cref_inputs *this,Archive *archive)\n\n{\n  _Base_ptr *pp_Var1;\n  _func_int_varargs *p_Var2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  iterator __pos;\n  undefined8 *puVar6;\n  _Base_ptr p_Var7;\n  iterator iVar8;\n  string *psVar9;\n  _Base_ptr __n;\n  _Base_ptr p_Var10;\n  _Base_ptr p_Var11;\n  const_iterator __pos_00;\n  long lVar12;\n  _Base_ptr p_Var13;\n  _Base_ptr p_Var14;\n  bool bVar15;\n  pointer local_70;\n  tuple<> local_41;\n  _Head_base<0,_const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&,_false>\n  local_40 [2];\n  undefined4 extraout_var;\n  \n  if ((Cref_inputs *)this->current_ != this) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/cref.cc",0x89,"add_archive_start");\n  }\n  p_Var14 = (this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;\n  __pos_00._M_node = &(this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header;\n  __pos._M_node = __pos_00._M_node;\n  iVar8._M_node = __pos_00._M_node;\n  if (p_Var14 == (_Base_ptr)0x0) {\nLAB_00264586:\n    local_40[0]._M_head_impl = &archive->name_;\n    __pos = std::\n            _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n            ::\n            _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>\n                      (&(this->archives_)._M_t,__pos._M_node,\n                       (piecewise_construct_t *)&std::piecewise_construct,\n                       (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                        *)local_40,&local_41);\nLAB_002645b1:\n    p_Var2 = (archive->super_Library_base)._vptr_Library_base[2];\n    if (p_Var2 == Archive::do_filename) {\n      psVar9 = (string *)&archive->input_file_->file_;\n    }\n    else {\n      iVar4 = (*p_Var2)(archive);\n      psVar9 = (string *)CONCAT44(extraout_var,iVar4);\n    }\n    std::string::_M_assign((string *)(__pos._M_node + 2),psVar9);\n    puVar6 = (undefined8 *)operator_new(0x18);\n    *puVar6 = 0;\n    puVar6[1] = 0;\n    puVar6[2] = 0;\n    *(undefined8 **)(__pos._M_node + 3) = puVar6;\n    p_Var7 = (_Base_ptr)Archive::count_members(archive);\n    p_Var14 = (this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;\n    __pos._M_node[3]._M_parent = p_Var7;\n    if (p_Var14 != (_Base_ptr)0x0) {\n      local_70 = (archive->name_)._M_dataplus._M_p;\n      p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;\n      goto LAB_00264639;\n    }\n  }\n  else {\n    local_70 = (archive->name_)._M_dataplus._M_p;\n    p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;\n    p_Var13 = __pos_00._M_node;\n    p_Var11 = p_Var14;\n    do {\n      while( true ) {\n        p_Var10 = p_Var11[1]._M_parent;\n        __n = p_Var7;\n        if (p_Var10 <= p_Var7) {\n          __n = p_Var10;\n        }\n        if (__n != (_Base_ptr)0x0) break;\nLAB_00264472:\n        uVar5 = (long)p_Var10 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        pp_Var1 = &p_Var11->_M_left;\n        p_Var13 = p_Var11;\n        p_Var11 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(p_Var11 + 1),local_70,(size_t)__n);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      p_Var11 = p_Var11->_M_right;\n    } while (p_Var11 != (_Base_ptr)0x0);\nLAB_00264498:\n    if (__pos_00._M_node == p_Var13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          p_Var11 = p_Var14[1]._M_parent;\n          p_Var10 = p_Var7;\n          if (p_Var11 <= p_Var7) {\n            p_Var10 = p_Var11;\n          }\n          if ((p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)) break;\n          lVar12 = (long)p_Var11 - (long)p_Var7;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          pp_Var1 = &p_Var14->_M_left;\n          __pos._M_node = p_Var14;\n          p_Var14 = *pp_Var1;\n          if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        p_Var14 = p_Var14->_M_right;\n      } while (p_Var14 != (_Base_ptr)0x0);\nLAB_00264550:\n      if (__pos_00._M_node == __pos._M_node) goto LAB_00264586;\n      p_Var14 = __pos._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (lVar12 < 0x80000000) {\n          if (lVar12 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar12;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    p_Var11 = p_Var13[1]._M_parent;\n    p_Var10 = p_Var11;\n    if (p_Var7 <= p_Var11) {\n      p_Var10 = p_Var7;\n    }\n    if (p_Var10 == (_Base_ptr)0x0) {\nLAB_002644c2:\n      uVar5 = (long)p_Var7 - (long)p_Var11;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(p_Var13 + 1),(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        p_Var11 = p_Var14[1]._M_parent;\n        p_Var10 = p_Var7;\n        if (p_Var11 <= p_Var7) {\n          p_Var10 = p_Var11;\n        }\n        if (p_Var10 != (_Base_ptr)0x0) break;\nLAB_0026465e:\n        uVar5 = (long)p_Var11 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        pp_Var1 = &p_Var14->_M_left;\n        iVar8._M_node = p_Var14;\n        p_Var14 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      p_Var14 = p_Var14->_M_right;\n    } while (p_Var14 != (_Base_ptr)0x0);\nLAB_00264684:\n    bVar15 = __pos_00._M_node != iVar8._M_node;\n    __pos_00._M_node = iVar8._M_node;\n    if (bVar15) {\n      p_Var14 = iVar8._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (0x7fffffff < lVar12) goto LAB_002646f8;\n        if (lVar12 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar12;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }\nLAB_002646cd:\n  local_40[0]._M_head_impl = &archive->name_;\n  iVar8 = std::\n          _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n          ::\n          _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>\n                    (&(this->archives_)._M_t,__pos_00,\n                     (piecewise_construct_t *)&std::piecewise_construct,\n                     (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                      *)local_40,&local_41);\nLAB_002646f8:\n  this->current_ = *(Objects **)(iVar8._M_node + 3);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Cref_inputs::" identifier : : identifier : :) (function_declarator "add_archive_start(Cref_inputs *this,Archive *archive)" identifier (parameter_list "(Cref_inputs *this,Archive *archive)" ( (parameter_declaration "Cref_inputs *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Archive *archive" type_identifier (pointer_declarator "*archive" * identifier)) ))) (compound_statement "{\n  _Base_ptr *pp_Var1;\n  _func_int_varargs *p_Var2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  iterator __pos;\n  undefined8 *puVar6;\n  _Base_ptr p_Var7;\n  iterator iVar8;\n  string *psVar9;\n  _Base_ptr __n;\n  _Base_ptr p_Var10;\n  _Base_ptr p_Var11;\n  const_iterator __pos_00;\n  long lVar12;\n  _Base_ptr p_Var13;\n  _Base_ptr p_Var14;\n  bool bVar15;\n  pointer local_70;\n  tuple<> local_41;\n  _Head_base<0,_const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&,_false>\n  local_40 [2];\n  undefined4 extraout_var;\n  \n  if ((Cref_inputs *)this->current_ != this) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/cref.cc",0x89,"add_archive_start");\n  }\n  p_Var14 = (this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;\n  __pos_00._M_node = &(this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header;\n  __pos._M_node = __pos_00._M_node;\n  iVar8._M_node = __pos_00._M_node;\n  if (p_Var14 == (_Base_ptr)0x0) {\nLAB_00264586:\n    local_40[0]._M_head_impl = &archive->name_;\n    __pos = std::\n            _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n            ::\n            _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>\n                      (&(this->archives_)._M_t,__pos._M_node,\n                       (piecewise_construct_t *)&std::piecewise_construct,\n                       (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                        *)local_40,&local_41);\nLAB_002645b1:\n    p_Var2 = (archive->super_Library_base)._vptr_Library_base[2];\n    if (p_Var2 == Archive::do_filename) {\n      psVar9 = (string *)&archive->input_file_->file_;\n    }\n    else {\n      iVar4 = (*p_Var2)(archive);\n      psVar9 = (string *)CONCAT44(extraout_var,iVar4);\n    }\n    std::string::_M_assign((string *)(__pos._M_node + 2),psVar9);\n    puVar6 = (undefined8 *)operator_new(0x18);\n    *puVar6 = 0;\n    puVar6[1] = 0;\n    puVar6[2] = 0;\n    *(undefined8 **)(__pos._M_node + 3) = puVar6;\n    p_Var7 = (_Base_ptr)Archive::count_members(archive);\n    p_Var14 = (this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;\n    __pos._M_node[3]._M_parent = p_Var7;\n    if (p_Var14 != (_Base_ptr)0x0) {\n      local_70 = (archive->name_)._M_dataplus._M_p;\n      p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;\n      goto LAB_00264639;\n    }\n  }\n  else {\n    local_70 = (archive->name_)._M_dataplus._M_p;\n    p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;\n    p_Var13 = __pos_00._M_node;\n    p_Var11 = p_Var14;\n    do {\n      while( true ) {\n        p_Var10 = p_Var11[1]._M_parent;\n        __n = p_Var7;\n        if (p_Var10 <= p_Var7) {\n          __n = p_Var10;\n        }\n        if (__n != (_Base_ptr)0x0) break;\nLAB_00264472:\n        uVar5 = (long)p_Var10 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        pp_Var1 = &p_Var11->_M_left;\n        p_Var13 = p_Var11;\n        p_Var11 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(p_Var11 + 1),local_70,(size_t)__n);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      p_Var11 = p_Var11->_M_right;\n    } while (p_Var11 != (_Base_ptr)0x0);\nLAB_00264498:\n    if (__pos_00._M_node == p_Var13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          p_Var11 = p_Var14[1]._M_parent;\n          p_Var10 = p_Var7;\n          if (p_Var11 <= p_Var7) {\n            p_Var10 = p_Var11;\n          }\n          if ((p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)) break;\n          lVar12 = (long)p_Var11 - (long)p_Var7;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          pp_Var1 = &p_Var14->_M_left;\n          __pos._M_node = p_Var14;\n          p_Var14 = *pp_Var1;\n          if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        p_Var14 = p_Var14->_M_right;\n      } while (p_Var14 != (_Base_ptr)0x0);\nLAB_00264550:\n      if (__pos_00._M_node == __pos._M_node) goto LAB_00264586;\n      p_Var14 = __pos._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (lVar12 < 0x80000000) {\n          if (lVar12 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar12;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    p_Var11 = p_Var13[1]._M_parent;\n    p_Var10 = p_Var11;\n    if (p_Var7 <= p_Var11) {\n      p_Var10 = p_Var7;\n    }\n    if (p_Var10 == (_Base_ptr)0x0) {\nLAB_002644c2:\n      uVar5 = (long)p_Var7 - (long)p_Var11;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(p_Var13 + 1),(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        p_Var11 = p_Var14[1]._M_parent;\n        p_Var10 = p_Var7;\n        if (p_Var11 <= p_Var7) {\n          p_Var10 = p_Var11;\n        }\n        if (p_Var10 != (_Base_ptr)0x0) break;\nLAB_0026465e:\n        uVar5 = (long)p_Var11 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        pp_Var1 = &p_Var14->_M_left;\n        iVar8._M_node = p_Var14;\n        p_Var14 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      p_Var14 = p_Var14->_M_right;\n    } while (p_Var14 != (_Base_ptr)0x0);\nLAB_00264684:\n    bVar15 = __pos_00._M_node != iVar8._M_node;\n    __pos_00._M_node = iVar8._M_node;\n    if (bVar15) {\n      p_Var14 = iVar8._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (0x7fffffff < lVar12) goto LAB_002646f8;\n        if (lVar12 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar12;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }\nLAB_002646cd:\n  local_40[0]._M_head_impl = &archive->name_;\n  iVar8 = std::\n          _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n          ::\n          _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>\n                    (&(this->archives_)._M_t,__pos_00,\n                     (piecewise_construct_t *)&std::piecewise_construct,\n                     (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                      *)local_40,&local_41);\nLAB_002646f8:\n  this->current_ = *(Objects **)(iVar8._M_node + 3);\n  return;\n}" { (declaration "_Base_ptr *pp_Var1;" type_identifier (pointer_declarator "*pp_Var1" * identifier) ;) (declaration "_func_int_varargs *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "iterator __pos;" type_identifier identifier ;) (declaration "undefined8 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "_Base_ptr p_Var7;" type_identifier identifier ;) (declaration "iterator iVar8;" type_identifier identifier ;) (declaration "string *psVar9;" type_identifier (pointer_declarator "*psVar9" * identifier) ;) (declaration "_Base_ptr __n;" type_identifier identifier ;) (declaration "_Base_ptr p_Var10;" type_identifier identifier ;) (declaration "_Base_ptr p_Var11;" type_identifier identifier ;) (declaration "const_iterator __pos_00;" type_identifier identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "_Base_ptr p_Var13;" type_identifier identifier ;) (declaration "_Base_ptr p_Var14;" type_identifier identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "pointer local_70;" type_identifier identifier ;) (expression_statement "tuple<> local_41;" (binary_expression "tuple<> local_41" identifier < (ERROR ">" >) identifier) ;) (ERROR "_Head_base<0,_const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "_Head_base<0,_const_std" (binary_expression "_Head_base<0" identifier < number_literal) , identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (expression_statement "allocator<char>_>&,_false>\n  local_40 [2];" (binary_expression "allocator<char>_>&,_false>\n  local_40 [2]" (binary_expression "allocator<char>_>&,_false" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "&,_false" & (ERROR "," ,) identifier)) > (subscript_expression "local_40 [2]" identifier [ number_literal ])) ;) (declaration "undefined4 extraout_var;" type_identifier identifier ;) (if_statement "if ((Cref_inputs *)this->current_ != this) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/cref.cc",0x89,"add_archive_start");\n  }" if (parenthesized_expression "((Cref_inputs *)this->current_ != this)" ( (binary_expression "(Cref_inputs *)this->current_ != this" (cast_expression "(Cref_inputs *)this->current_" ( (type_descriptor "Cref_inputs *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->current_" identifier -> field_identifier)) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/cref.cc",0x89,"add_archive_start");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/cref.cc",0x89,"add_archive_start");" (call_expression "do_gold_unreachable("../../gold/cref.cc",0x89,"add_archive_start")" identifier (argument_list "("../../gold/cref.cc",0x89,"add_archive_start")" ( (string_literal ""../../gold/cref.cc"" " string_content ") , number_literal , (string_literal ""add_archive_start"" " string_content ") ))) ;) })) (expression_statement "p_Var14 = (this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;" (assignment_expression "p_Var14 = (this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent" identifier = (field_expression "(this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent" (field_expression "(this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(this->archives_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->archives_)._M_t._M_impl" (field_expression "(this->archives_)._M_t" (parenthesized_expression "(this->archives_)" ( (field_expression "this->archives_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "__pos_00._M_node = &(this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header;" (assignment_expression "__pos_00._M_node = &(this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "__pos_00._M_node" identifier . field_identifier) = (pointer_expression "&(this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header" & (field_expression "(this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(this->archives_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->archives_)._M_t._M_impl" (field_expression "(this->archives_)._M_t" (parenthesized_expression "(this->archives_)" ( (field_expression "this->archives_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "__pos._M_node = __pos_00._M_node;" (assignment_expression "__pos._M_node = __pos_00._M_node" (field_expression "__pos._M_node" identifier . field_identifier) = (field_expression "__pos_00._M_node" identifier . field_identifier)) ;) (expression_statement "iVar8._M_node = __pos_00._M_node;" (assignment_expression "iVar8._M_node = __pos_00._M_node" (field_expression "iVar8._M_node" identifier . field_identifier) = (field_expression "__pos_00._M_node" identifier . field_identifier)) ;) (if_statement "if (p_Var14 == (_Base_ptr)0x0) {\nLAB_00264586:\n    local_40[0]._M_head_impl = &archive->name_;\n    __pos = std::\n            _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n            ::\n            _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>\n                      (&(this->archives_)._M_t,__pos._M_node,\n                       (piecewise_construct_t *)&std::piecewise_construct,\n                       (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                        *)local_40,&local_41);\nLAB_002645b1:\n    p_Var2 = (archive->super_Library_base)._vptr_Library_base[2];\n    if (p_Var2 == Archive::do_filename) {\n      psVar9 = (string *)&archive->input_file_->file_;\n    }\n    else {\n      iVar4 = (*p_Var2)(archive);\n      psVar9 = (string *)CONCAT44(extraout_var,iVar4);\n    }\n    std::string::_M_assign((string *)(__pos._M_node + 2),psVar9);\n    puVar6 = (undefined8 *)operator_new(0x18);\n    *puVar6 = 0;\n    puVar6[1] = 0;\n    puVar6[2] = 0;\n    *(undefined8 **)(__pos._M_node + 3) = puVar6;\n    p_Var7 = (_Base_ptr)Archive::count_members(archive);\n    p_Var14 = (this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;\n    __pos._M_node[3]._M_parent = p_Var7;\n    if (p_Var14 != (_Base_ptr)0x0) {\n      local_70 = (archive->name_)._M_dataplus._M_p;\n      p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;\n      goto LAB_00264639;\n    }\n  }\n  else {\n    local_70 = (archive->name_)._M_dataplus._M_p;\n    p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;\n    p_Var13 = __pos_00._M_node;\n    p_Var11 = p_Var14;\n    do {\n      while( true ) {\n        p_Var10 = p_Var11[1]._M_parent;\n        __n = p_Var7;\n        if (p_Var10 <= p_Var7) {\n          __n = p_Var10;\n        }\n        if (__n != (_Base_ptr)0x0) break;\nLAB_00264472:\n        uVar5 = (long)p_Var10 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        pp_Var1 = &p_Var11->_M_left;\n        p_Var13 = p_Var11;\n        p_Var11 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(p_Var11 + 1),local_70,(size_t)__n);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      p_Var11 = p_Var11->_M_right;\n    } while (p_Var11 != (_Base_ptr)0x0);\nLAB_00264498:\n    if (__pos_00._M_node == p_Var13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          p_Var11 = p_Var14[1]._M_parent;\n          p_Var10 = p_Var7;\n          if (p_Var11 <= p_Var7) {\n            p_Var10 = p_Var11;\n          }\n          if ((p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)) break;\n          lVar12 = (long)p_Var11 - (long)p_Var7;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          pp_Var1 = &p_Var14->_M_left;\n          __pos._M_node = p_Var14;\n          p_Var14 = *pp_Var1;\n          if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        p_Var14 = p_Var14->_M_right;\n      } while (p_Var14 != (_Base_ptr)0x0);\nLAB_00264550:\n      if (__pos_00._M_node == __pos._M_node) goto LAB_00264586;\n      p_Var14 = __pos._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (lVar12 < 0x80000000) {\n          if (lVar12 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar12;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    p_Var11 = p_Var13[1]._M_parent;\n    p_Var10 = p_Var11;\n    if (p_Var7 <= p_Var11) {\n      p_Var10 = p_Var7;\n    }\n    if (p_Var10 == (_Base_ptr)0x0) {\nLAB_002644c2:\n      uVar5 = (long)p_Var7 - (long)p_Var11;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(p_Var13 + 1),(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        p_Var11 = p_Var14[1]._M_parent;\n        p_Var10 = p_Var7;\n        if (p_Var11 <= p_Var7) {\n          p_Var10 = p_Var11;\n        }\n        if (p_Var10 != (_Base_ptr)0x0) break;\nLAB_0026465e:\n        uVar5 = (long)p_Var11 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        pp_Var1 = &p_Var14->_M_left;\n        iVar8._M_node = p_Var14;\n        p_Var14 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      p_Var14 = p_Var14->_M_right;\n    } while (p_Var14 != (_Base_ptr)0x0);\nLAB_00264684:\n    bVar15 = __pos_00._M_node != iVar8._M_node;\n    __pos_00._M_node = iVar8._M_node;\n    if (bVar15) {\n      p_Var14 = iVar8._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (0x7fffffff < lVar12) goto LAB_002646f8;\n        if (lVar12 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar12;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }" if (parenthesized_expression "(p_Var14 == (_Base_ptr)0x0)" ( (binary_expression "p_Var14 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_00264586:\n    local_40[0]._M_head_impl = &archive->name_;\n    __pos = std::\n            _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n            ::\n            _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::tuple<>_>\n                      (&(this->archives_)._M_t,__pos._M_node,\n                       (piecewise_construct_t *)&std::piecewise_construct,\n                       (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                        *)local_40,&local_41);\nLAB_002645b1:\n    p_Var2 = (archive->super_Library_base)._vptr_Library_base[2];\n    if (p_Var2 == Archive::do_filename) {\n      psVar9 = (string *)&archive->input_file_->file_;\n    }\n    else {\n      iVar4 = (*p_Var2)(archive);\n      psVar9 = (string *)CONCAT44(extraout_var,iVar4);\n    }\n    std::string::_M_assign((string *)(__pos._M_node + 2),psVar9);\n    puVar6 = (undefined8 *)operator_new(0x18);\n    *puVar6 = 0;\n    puVar6[1] = 0;\n    puVar6[2] = 0;\n    *(undefined8 **)(__pos._M_node + 3) = puVar6;\n    p_Var7 = (_Base_ptr)Archive::count_members(archive);\n    p_Var14 = (this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;\n    __pos._M_node[3]._M_parent = p_Var7;\n    if (p_Var14 != (_Base_ptr)0x0) {\n      local_70 = (archive->name_)._M_dataplus._M_p;\n      p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;\n      goto LAB_00264639;\n    }\n  }" { (labeled_statement "LAB_00264586:\n    local_40[0]._M_head_impl = &archive->name_;" statement_identifier : (expression_statement "local_40[0]._M_head_impl = &archive->name_;" (assignment_expression "local_40[0]._M_head_impl = &archive->name_" (field_expression "local_40[0]._M_head_impl" (subscript_expression "local_40[0]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "&archive->name_" & (field_expression "archive->name_" identifier -> field_identifier))) ;)) (ERROR "__pos = std::\n            _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n            ::\n            _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::" (assignment_expression "__pos = std" identifier = identifier) : : (binary_expression "_Rb_tree<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Cref_inputs::Archive_info>,_std" identifier (ERROR "::Archive_info>" : : identifier >) , identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Cref_inputs::Archive_info>_>,_std" identifier (ERROR "::Archive_info>_>" : : (binary_expression "Archive_info>_" identifier > identifier) >) , identifier) : : (binary_expression "less<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Cref_inputs::Archive_info>_>_>\n            ::\n            _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std" identifier (ERROR "::Archive_info>_>_>\n            ::\n            _M_emplace_hint_unique<const_std::piecewise_construct_t&" : : (binary_expression "Archive_info>_>_" (binary_expression "Archive_info>_" identifier > identifier) > identifier) > : : (binary_expression "_M_emplace_hint_unique<const_std" identifier < identifier) : : identifier &) , identifier) : : (binary_expression "tuple<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>&>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "&>,_std" & (ERROR ">," > ,) identifier)) : :) (expression_statement "tuple<>_>\n                      (&(this->archives_)._M_t,__pos._M_node,\n                       (piecewise_construct_t *)&std::piecewise_construct,\n                       (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                        *)local_40,&local_41);" (binary_expression "tuple<>_>\n                      (&(this->archives_)._M_t,__pos._M_node,\n                       (piecewise_construct_t *)&std::piecewise_construct,\n                       (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                        *)local_40,&local_41)" (binary_expression "tuple<>_" identifier < (ERROR ">" >) identifier) > (parenthesized_expression "(&(this->archives_)._M_t,__pos._M_node,\n                       (piecewise_construct_t *)&std::piecewise_construct,\n                       (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                        *)local_40,&local_41)" ( (ERROR "&(this->archives_)._M_t,__pos._M_node,\n                       (piecewise_construct_t *)&std::" (comma_expression "&(this->archives_)._M_t,__pos._M_node,\n                       (piecewise_construct_t *)&std" (pointer_expression "&(this->archives_)._M_t" & (field_expression "(this->archives_)._M_t" (parenthesized_expression "(this->archives_)" ( (field_expression "this->archives_" identifier -> field_identifier) )) . field_identifier)) , (comma_expression "__pos._M_node,\n                       (piecewise_construct_t *)&std" (field_expression "__pos._M_node" identifier . field_identifier) , (cast_expression "(piecewise_construct_t *)&std" ( (type_descriptor "piecewise_construct_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&std" & identifier)))) : :) (comma_expression "piecewise_construct,\n                       (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                        *)local_40,&local_41)" identifier , (parenthesized_expression "(tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                        *)local_40,&local_41)" ( (ERROR "tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "tuple<const_std::__cxx11::basic_string<char,_std" (binary_expression "tuple<const_std::__cxx11::basic_string<char" (binary_expression "tuple<const_std" identifier < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (comma_expression "allocator<char>_>&>\n                        *)local_40,&local_41" (binary_expression "allocator<char>_>&>\n                        *)local_40" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "&>\n                        *)local_40" & (ERROR ">" >) (pointer_expression "*)local_40" * (ERROR ")" )) identifier))) , (pointer_expression "&local_41" & identifier)) ))) ))) ;) (labeled_statement "LAB_002645b1:\n    p_Var2 = (archive->super_Library_base)._vptr_Library_base[2];" statement_identifier : (expression_statement "p_Var2 = (archive->super_Library_base)._vptr_Library_base[2];" (assignment_expression "p_Var2 = (archive->super_Library_base)._vptr_Library_base[2]" identifier = (subscript_expression "(archive->super_Library_base)._vptr_Library_base[2]" (field_expression "(archive->super_Library_base)._vptr_Library_base" (parenthesized_expression "(archive->super_Library_base)" ( (field_expression "archive->super_Library_base" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;)) (if_statement "if (p_Var2 == Archive::do_filename) {\n      psVar9 = (string *)&archive->input_file_->file_;\n    }\n    else {\n      iVar4 = (*p_Var2)(archive);\n      psVar9 = (string *)CONCAT44(extraout_var,iVar4);\n    }" if (parenthesized_expression "(p_Var2 == Archive::do_filename)" ( (binary_expression "p_Var2 == Archive" identifier == identifier) (ERROR "::do_filename" : : identifier) )) (compound_statement "{\n      psVar9 = (string *)&archive->input_file_->file_;\n    }" { (expression_statement "psVar9 = (string *)&archive->input_file_->file_;" (assignment_expression "psVar9 = (string *)&archive->input_file_->file_" identifier = (cast_expression "(string *)&archive->input_file_->file_" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&archive->input_file_->file_" & (field_expression "archive->input_file_->file_" (field_expression "archive->input_file_" identifier -> field_identifier) -> field_identifier)))) ;) }) (else_clause "else {\n      iVar4 = (*p_Var2)(archive);\n      psVar9 = (string *)CONCAT44(extraout_var,iVar4);\n    }" else (compound_statement "{\n      iVar4 = (*p_Var2)(archive);\n      psVar9 = (string *)CONCAT44(extraout_var,iVar4);\n    }" { (expression_statement "iVar4 = (*p_Var2)(archive);" (assignment_expression "iVar4 = (*p_Var2)(archive)" identifier = (call_expression "(*p_Var2)(archive)" (parenthesized_expression "(*p_Var2)" ( (pointer_expression "*p_Var2" * identifier) )) (argument_list "(archive)" ( identifier )))) ;) (expression_statement "psVar9 = (string *)CONCAT44(extraout_var,iVar4);" (assignment_expression "psVar9 = (string *)CONCAT44(extraout_var,iVar4)" identifier = (cast_expression "(string *)CONCAT44(extraout_var,iVar4)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(extraout_var,iVar4)" identifier (argument_list "(extraout_var,iVar4)" ( identifier , identifier ))))) ;) }))) (labeled_statement "std::string::_M_assign((string *)(__pos._M_node + 2),psVar9);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_assign((string *)(__pos._M_node + 2),psVar9);" statement_identifier : (ERROR ":" :) (expression_statement "_M_assign((string *)(__pos._M_node + 2),psVar9);" (call_expression "_M_assign((string *)(__pos._M_node + 2),psVar9)" identifier (argument_list "((string *)(__pos._M_node + 2),psVar9)" ( (cast_expression "(string *)(__pos._M_node + 2)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__pos._M_node + 2)" ( (binary_expression "__pos._M_node + 2" (field_expression "__pos._M_node" identifier . field_identifier) + number_literal) ))) , identifier ))) ;))) (expression_statement "puVar6 = (undefined8 *)operator_new(0x18);" (assignment_expression "puVar6 = (undefined8 *)operator_new(0x18)" identifier = (cast_expression "(undefined8 *)operator_new(0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "puVar6[1] = 0;" (assignment_expression "puVar6[1] = 0" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[2] = 0;" (assignment_expression "puVar6[2] = 0" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined8 **)(__pos._M_node + 3) = puVar6;" (assignment_expression "*(undefined8 **)(__pos._M_node + 3) = puVar6" (pointer_expression "*(undefined8 **)(__pos._M_node + 3)" * (cast_expression "(undefined8 **)(__pos._M_node + 3)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(__pos._M_node + 3)" ( (binary_expression "__pos._M_node + 3" (field_expression "__pos._M_node" identifier . field_identifier) + number_literal) )))) = identifier) ;) (ERROR "p_Var7 = (_Base_ptr)Archive::" (assignment_expression "p_Var7 = (_Base_ptr)Archive" identifier = (cast_expression "(_Base_ptr)Archive" ( (type_descriptor "_Base_ptr" type_identifier) ) identifier)) : :) (expression_statement "count_members(archive);" (call_expression "count_members(archive)" identifier (argument_list "(archive)" ( identifier ))) ;) (expression_statement "p_Var14 = (this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;" (assignment_expression "p_Var14 = (this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent" identifier = (field_expression "(this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent" (field_expression "(this->archives_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(this->archives_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->archives_)._M_t._M_impl" (field_expression "(this->archives_)._M_t" (parenthesized_expression "(this->archives_)" ( (field_expression "this->archives_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "__pos._M_node[3]._M_parent = p_Var7;" (assignment_expression "__pos._M_node[3]._M_parent = p_Var7" (field_expression "__pos._M_node[3]._M_parent" (subscript_expression "__pos._M_node[3]" (field_expression "__pos._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (if_statement "if (p_Var14 != (_Base_ptr)0x0) {\n      local_70 = (archive->name_)._M_dataplus._M_p;\n      p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;\n      goto LAB_00264639;\n    }" if (parenthesized_expression "(p_Var14 != (_Base_ptr)0x0)" ( (binary_expression "p_Var14 != (_Base_ptr)0x0" identifier != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\n      local_70 = (archive->name_)._M_dataplus._M_p;\n      p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;\n      goto LAB_00264639;\n    }" { (expression_statement "local_70 = (archive->name_)._M_dataplus._M_p;" (assignment_expression "local_70 = (archive->name_)._M_dataplus._M_p" identifier = (field_expression "(archive->name_)._M_dataplus._M_p" (field_expression "(archive->name_)._M_dataplus" (parenthesized_expression "(archive->name_)" ( (field_expression "archive->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;" (assignment_expression "p_Var7 = (_Base_ptr)(archive->name_)._M_string_length" identifier = (field_expression "(_Base_ptr)(archive->name_)._M_string_length" (call_expression "(_Base_ptr)(archive->name_)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "(archive->name_)" ( (field_expression "archive->name_" identifier -> field_identifier) ))) . field_identifier)) ;) (goto_statement "goto LAB_00264639;" goto statement_identifier ;) })) }) (else_clause "else {\n    local_70 = (archive->name_)._M_dataplus._M_p;\n    p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;\n    p_Var13 = __pos_00._M_node;\n    p_Var11 = p_Var14;\n    do {\n      while( true ) {\n        p_Var10 = p_Var11[1]._M_parent;\n        __n = p_Var7;\n        if (p_Var10 <= p_Var7) {\n          __n = p_Var10;\n        }\n        if (__n != (_Base_ptr)0x0) break;\nLAB_00264472:\n        uVar5 = (long)p_Var10 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        pp_Var1 = &p_Var11->_M_left;\n        p_Var13 = p_Var11;\n        p_Var11 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(p_Var11 + 1),local_70,(size_t)__n);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      p_Var11 = p_Var11->_M_right;\n    } while (p_Var11 != (_Base_ptr)0x0);\nLAB_00264498:\n    if (__pos_00._M_node == p_Var13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          p_Var11 = p_Var14[1]._M_parent;\n          p_Var10 = p_Var7;\n          if (p_Var11 <= p_Var7) {\n            p_Var10 = p_Var11;\n          }\n          if ((p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)) break;\n          lVar12 = (long)p_Var11 - (long)p_Var7;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          pp_Var1 = &p_Var14->_M_left;\n          __pos._M_node = p_Var14;\n          p_Var14 = *pp_Var1;\n          if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        p_Var14 = p_Var14->_M_right;\n      } while (p_Var14 != (_Base_ptr)0x0);\nLAB_00264550:\n      if (__pos_00._M_node == __pos._M_node) goto LAB_00264586;\n      p_Var14 = __pos._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (lVar12 < 0x80000000) {\n          if (lVar12 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar12;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    p_Var11 = p_Var13[1]._M_parent;\n    p_Var10 = p_Var11;\n    if (p_Var7 <= p_Var11) {\n      p_Var10 = p_Var7;\n    }\n    if (p_Var10 == (_Base_ptr)0x0) {\nLAB_002644c2:\n      uVar5 = (long)p_Var7 - (long)p_Var11;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(p_Var13 + 1),(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        p_Var11 = p_Var14[1]._M_parent;\n        p_Var10 = p_Var7;\n        if (p_Var11 <= p_Var7) {\n          p_Var10 = p_Var11;\n        }\n        if (p_Var10 != (_Base_ptr)0x0) break;\nLAB_0026465e:\n        uVar5 = (long)p_Var11 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        pp_Var1 = &p_Var14->_M_left;\n        iVar8._M_node = p_Var14;\n        p_Var14 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      p_Var14 = p_Var14->_M_right;\n    } while (p_Var14 != (_Base_ptr)0x0);\nLAB_00264684:\n    bVar15 = __pos_00._M_node != iVar8._M_node;\n    __pos_00._M_node = iVar8._M_node;\n    if (bVar15) {\n      p_Var14 = iVar8._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (0x7fffffff < lVar12) goto LAB_002646f8;\n        if (lVar12 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar12;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }" else (compound_statement "{\n    local_70 = (archive->name_)._M_dataplus._M_p;\n    p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;\n    p_Var13 = __pos_00._M_node;\n    p_Var11 = p_Var14;\n    do {\n      while( true ) {\n        p_Var10 = p_Var11[1]._M_parent;\n        __n = p_Var7;\n        if (p_Var10 <= p_Var7) {\n          __n = p_Var10;\n        }\n        if (__n != (_Base_ptr)0x0) break;\nLAB_00264472:\n        uVar5 = (long)p_Var10 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        pp_Var1 = &p_Var11->_M_left;\n        p_Var13 = p_Var11;\n        p_Var11 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(p_Var11 + 1),local_70,(size_t)__n);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      p_Var11 = p_Var11->_M_right;\n    } while (p_Var11 != (_Base_ptr)0x0);\nLAB_00264498:\n    if (__pos_00._M_node == p_Var13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          p_Var11 = p_Var14[1]._M_parent;\n          p_Var10 = p_Var7;\n          if (p_Var11 <= p_Var7) {\n            p_Var10 = p_Var11;\n          }\n          if ((p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)) break;\n          lVar12 = (long)p_Var11 - (long)p_Var7;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          pp_Var1 = &p_Var14->_M_left;\n          __pos._M_node = p_Var14;\n          p_Var14 = *pp_Var1;\n          if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        p_Var14 = p_Var14->_M_right;\n      } while (p_Var14 != (_Base_ptr)0x0);\nLAB_00264550:\n      if (__pos_00._M_node == __pos._M_node) goto LAB_00264586;\n      p_Var14 = __pos._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (lVar12 < 0x80000000) {\n          if (lVar12 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar12;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    p_Var11 = p_Var13[1]._M_parent;\n    p_Var10 = p_Var11;\n    if (p_Var7 <= p_Var11) {\n      p_Var10 = p_Var7;\n    }\n    if (p_Var10 == (_Base_ptr)0x0) {\nLAB_002644c2:\n      uVar5 = (long)p_Var7 - (long)p_Var11;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(p_Var13 + 1),(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        p_Var11 = p_Var14[1]._M_parent;\n        p_Var10 = p_Var7;\n        if (p_Var11 <= p_Var7) {\n          p_Var10 = p_Var11;\n        }\n        if (p_Var10 != (_Base_ptr)0x0) break;\nLAB_0026465e:\n        uVar5 = (long)p_Var11 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        pp_Var1 = &p_Var14->_M_left;\n        iVar8._M_node = p_Var14;\n        p_Var14 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      p_Var14 = p_Var14->_M_right;\n    } while (p_Var14 != (_Base_ptr)0x0);\nLAB_00264684:\n    bVar15 = __pos_00._M_node != iVar8._M_node;\n    __pos_00._M_node = iVar8._M_node;\n    if (bVar15) {\n      p_Var14 = iVar8._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (0x7fffffff < lVar12) goto LAB_002646f8;\n        if (lVar12 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar12;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }" { (expression_statement "local_70 = (archive->name_)._M_dataplus._M_p;" (assignment_expression "local_70 = (archive->name_)._M_dataplus._M_p" identifier = (field_expression "(archive->name_)._M_dataplus._M_p" (field_expression "(archive->name_)._M_dataplus" (parenthesized_expression "(archive->name_)" ( (field_expression "archive->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "p_Var7 = (_Base_ptr)(archive->name_)._M_string_length;" (assignment_expression "p_Var7 = (_Base_ptr)(archive->name_)._M_string_length" identifier = (field_expression "(_Base_ptr)(archive->name_)._M_string_length" (call_expression "(_Base_ptr)(archive->name_)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "(archive->name_)" ( (field_expression "archive->name_" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "p_Var13 = __pos_00._M_node;" (assignment_expression "p_Var13 = __pos_00._M_node" identifier = (field_expression "__pos_00._M_node" identifier . field_identifier)) ;) (expression_statement "p_Var11 = p_Var14;" (assignment_expression "p_Var11 = p_Var14" identifier = identifier) ;) (do_statement "do {\n      while( true ) {\n        p_Var10 = p_Var11[1]._M_parent;\n        __n = p_Var7;\n        if (p_Var10 <= p_Var7) {\n          __n = p_Var10;\n        }\n        if (__n != (_Base_ptr)0x0) break;\nLAB_00264472:\n        uVar5 = (long)p_Var10 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        pp_Var1 = &p_Var11->_M_left;\n        p_Var13 = p_Var11;\n        p_Var11 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(p_Var11 + 1),local_70,(size_t)__n);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      p_Var11 = p_Var11->_M_right;\n    } while (p_Var11 != (_Base_ptr)0x0);" do (compound_statement "{\n      while( true ) {\n        p_Var10 = p_Var11[1]._M_parent;\n        __n = p_Var7;\n        if (p_Var10 <= p_Var7) {\n          __n = p_Var10;\n        }\n        if (__n != (_Base_ptr)0x0) break;\nLAB_00264472:\n        uVar5 = (long)p_Var10 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        pp_Var1 = &p_Var11->_M_left;\n        p_Var13 = p_Var11;\n        p_Var11 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(p_Var11 + 1),local_70,(size_t)__n);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      p_Var11 = p_Var11->_M_right;\n    }" { (while_statement "while( true ) {\n        p_Var10 = p_Var11[1]._M_parent;\n        __n = p_Var7;\n        if (p_Var10 <= p_Var7) {\n          __n = p_Var10;\n        }\n        if (__n != (_Base_ptr)0x0) break;\nLAB_00264472:\n        uVar5 = (long)p_Var10 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        pp_Var1 = &p_Var11->_M_left;\n        p_Var13 = p_Var11;\n        p_Var11 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264498;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        p_Var10 = p_Var11[1]._M_parent;\n        __n = p_Var7;\n        if (p_Var10 <= p_Var7) {\n          __n = p_Var10;\n        }\n        if (__n != (_Base_ptr)0x0) break;\nLAB_00264472:\n        uVar5 = (long)p_Var10 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        pp_Var1 = &p_Var11->_M_left;\n        p_Var13 = p_Var11;\n        p_Var11 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264498;\n      }" { (expression_statement "p_Var10 = p_Var11[1]._M_parent;" (assignment_expression "p_Var10 = p_Var11[1]._M_parent" identifier = (field_expression "p_Var11[1]._M_parent" (subscript_expression "p_Var11[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "__n = p_Var7;" (assignment_expression "__n = p_Var7" identifier = identifier) ;) (if_statement "if (p_Var10 <= p_Var7) {\n          __n = p_Var10;\n        }" if (parenthesized_expression "(p_Var10 <= p_Var7)" ( (binary_expression "p_Var10 <= p_Var7" identifier <= identifier) )) (compound_statement "{\n          __n = p_Var10;\n        }" { (expression_statement "__n = p_Var10;" (assignment_expression "__n = p_Var10" identifier = identifier) ;) })) (if_statement "if (__n != (_Base_ptr)0x0) break;" if (parenthesized_expression "(__n != (_Base_ptr)0x0)" ( (binary_expression "__n != (_Base_ptr)0x0" identifier != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00264472:\n        uVar5 = (long)p_Var10 - (long)p_Var7;" statement_identifier : (expression_statement "uVar5 = (long)p_Var10 - (long)p_Var7;" (assignment_expression "uVar5 = (long)p_Var10 - (long)p_Var7" identifier = (binary_expression "(long)p_Var10 - (long)p_Var7" (cast_expression "(long)p_Var10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)p_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;)) (if_statement "if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }" if (parenthesized_expression "((long)uVar5 < 0x80000000)" ( (binary_expression "(long)uVar5 < 0x80000000" (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }" { (if_statement "if (-0x80000001 < (long)uVar5) goto LAB_00264488;" if (parenthesized_expression "(-0x80000001 < (long)uVar5)" ( (binary_expression "-0x80000001 < (long)uVar5" number_literal < (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_00264488;" goto statement_identifier ;)) (goto_statement "goto LAB_00264430;" goto statement_identifier ;) })) (labeled_statement "LAB_0026448c:\n        pp_Var1 = &p_Var11->_M_left;" statement_identifier : (expression_statement "pp_Var1 = &p_Var11->_M_left;" (assignment_expression "pp_Var1 = &p_Var11->_M_left" identifier = (pointer_expression "&p_Var11->_M_left" & (field_expression "p_Var11->_M_left" identifier -> field_identifier))) ;)) (expression_statement "p_Var13 = p_Var11;" (assignment_expression "p_Var13 = p_Var11" identifier = identifier) ;) (expression_statement "p_Var11 = *pp_Var1;" (assignment_expression "p_Var11 = *pp_Var1" identifier = (pointer_expression "*pp_Var1" * identifier)) ;) (if_statement "if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264498;" if (parenthesized_expression "(*pp_Var1 == (_Base_ptr)0x0)" ( (binary_expression "*pp_Var1 == (_Base_ptr)0x0" (pointer_expression "*pp_Var1" * identifier) == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00264498;" goto statement_identifier ;)) })) (expression_statement "uVar3 = memcmp(*(void **)(p_Var11 + 1),local_70,(size_t)__n);" (assignment_expression "uVar3 = memcmp(*(void **)(p_Var11 + 1),local_70,(size_t)__n)" identifier = (call_expression "memcmp(*(void **)(p_Var11 + 1),local_70,(size_t)__n)" identifier (argument_list "(*(void **)(p_Var11 + 1),local_70,(size_t)__n)" ( (pointer_expression "*(void **)(p_Var11 + 1)" * (cast_expression "(void **)(p_Var11 + 1)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Var11 + 1)" ( (binary_expression "p_Var11 + 1" identifier + number_literal) )))) , identifier , (cast_expression "(size_t)__n" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (expression_statement "uVar5 = (ulong)uVar3;" (assignment_expression "uVar5 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar3 == 0) goto LAB_00264472;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00264472;" goto statement_identifier ;)) (labeled_statement "LAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;" statement_identifier : (if_statement "if (-1 < (int)uVar5) goto LAB_0026448c;" if (parenthesized_expression "(-1 < (int)uVar5)" ( (binary_expression "-1 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0026448c;" goto statement_identifier ;))) (labeled_statement "LAB_00264430:\n      p_Var11 = p_Var11->_M_right;" statement_identifier : (expression_statement "p_Var11 = p_Var11->_M_right;" (assignment_expression "p_Var11 = p_Var11->_M_right" identifier = (field_expression "p_Var11->_M_right" identifier -> field_identifier)) ;)) }) while (parenthesized_expression "(p_Var11 != (_Base_ptr)0x0)" ( (binary_expression "p_Var11 != (_Base_ptr)0x0" identifier != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_00264498:\n    if (__pos_00._M_node == p_Var13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          p_Var11 = p_Var14[1]._M_parent;\n          p_Var10 = p_Var7;\n          if (p_Var11 <= p_Var7) {\n            p_Var10 = p_Var11;\n          }\n          if ((p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)) break;\n          lVar12 = (long)p_Var11 - (long)p_Var7;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          pp_Var1 = &p_Var14->_M_left;\n          __pos._M_node = p_Var14;\n          p_Var14 = *pp_Var1;\n          if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        p_Var14 = p_Var14->_M_right;\n      } while (p_Var14 != (_Base_ptr)0x0);\nLAB_00264550:\n      if (__pos_00._M_node == __pos._M_node) goto LAB_00264586;\n      p_Var14 = __pos._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (lVar12 < 0x80000000) {\n          if (lVar12 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar12;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }" statement_identifier : (if_statement "if (__pos_00._M_node == p_Var13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          p_Var11 = p_Var14[1]._M_parent;\n          p_Var10 = p_Var7;\n          if (p_Var11 <= p_Var7) {\n            p_Var10 = p_Var11;\n          }\n          if ((p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)) break;\n          lVar12 = (long)p_Var11 - (long)p_Var7;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          pp_Var1 = &p_Var14->_M_left;\n          __pos._M_node = p_Var14;\n          p_Var14 = *pp_Var1;\n          if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        p_Var14 = p_Var14->_M_right;\n      } while (p_Var14 != (_Base_ptr)0x0);\nLAB_00264550:\n      if (__pos_00._M_node == __pos._M_node) goto LAB_00264586;\n      p_Var14 = __pos._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (lVar12 < 0x80000000) {\n          if (lVar12 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar12;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }" if (parenthesized_expression "(__pos_00._M_node == p_Var13)" ( (binary_expression "__pos_00._M_node == p_Var13" (field_expression "__pos_00._M_node" identifier . field_identifier) == identifier) )) (compound_statement "{\nLAB_002644f9:\n      do {\n        while( true ) {\n          p_Var11 = p_Var14[1]._M_parent;\n          p_Var10 = p_Var7;\n          if (p_Var11 <= p_Var7) {\n            p_Var10 = p_Var11;\n          }\n          if ((p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)) break;\n          lVar12 = (long)p_Var11 - (long)p_Var7;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          pp_Var1 = &p_Var14->_M_left;\n          __pos._M_node = p_Var14;\n          p_Var14 = *pp_Var1;\n          if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        p_Var14 = p_Var14->_M_right;\n      } while (p_Var14 != (_Base_ptr)0x0);\nLAB_00264550:\n      if (__pos_00._M_node == __pos._M_node) goto LAB_00264586;\n      p_Var14 = __pos._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (lVar12 < 0x80000000) {\n          if (lVar12 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar12;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }" { (labeled_statement "LAB_002644f9:\n      do {\n        while( true ) {\n          p_Var11 = p_Var14[1]._M_parent;\n          p_Var10 = p_Var7;\n          if (p_Var11 <= p_Var7) {\n            p_Var10 = p_Var11;\n          }\n          if ((p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)) break;\n          lVar12 = (long)p_Var11 - (long)p_Var7;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          pp_Var1 = &p_Var14->_M_left;\n          __pos._M_node = p_Var14;\n          p_Var14 = *pp_Var1;\n          if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        p_Var14 = p_Var14->_M_right;\n      } while (p_Var14 != (_Base_ptr)0x0);" statement_identifier : (do_statement "do {\n        while( true ) {\n          p_Var11 = p_Var14[1]._M_parent;\n          p_Var10 = p_Var7;\n          if (p_Var11 <= p_Var7) {\n            p_Var10 = p_Var11;\n          }\n          if ((p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)) break;\n          lVar12 = (long)p_Var11 - (long)p_Var7;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          pp_Var1 = &p_Var14->_M_left;\n          __pos._M_node = p_Var14;\n          p_Var14 = *pp_Var1;\n          if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        p_Var14 = p_Var14->_M_right;\n      } while (p_Var14 != (_Base_ptr)0x0);" do (compound_statement "{\n        while( true ) {\n          p_Var11 = p_Var14[1]._M_parent;\n          p_Var10 = p_Var7;\n          if (p_Var11 <= p_Var7) {\n            p_Var10 = p_Var11;\n          }\n          if ((p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)) break;\n          lVar12 = (long)p_Var11 - (long)p_Var7;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          pp_Var1 = &p_Var14->_M_left;\n          __pos._M_node = p_Var14;\n          p_Var14 = *pp_Var1;\n          if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        p_Var14 = p_Var14->_M_right;\n      }" { (while_statement "while( true ) {\n          p_Var11 = p_Var14[1]._M_parent;\n          p_Var10 = p_Var7;\n          if (p_Var11 <= p_Var7) {\n            p_Var10 = p_Var11;\n          }\n          if ((p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)) break;\n          lVar12 = (long)p_Var11 - (long)p_Var7;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          pp_Var1 = &p_Var14->_M_left;\n          __pos._M_node = p_Var14;\n          p_Var14 = *pp_Var1;\n          if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264550;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          p_Var11 = p_Var14[1]._M_parent;\n          p_Var10 = p_Var7;\n          if (p_Var11 <= p_Var7) {\n            p_Var10 = p_Var11;\n          }\n          if ((p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)) break;\n          lVar12 = (long)p_Var11 - (long)p_Var7;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          pp_Var1 = &p_Var14->_M_left;\n          __pos._M_node = p_Var14;\n          p_Var14 = *pp_Var1;\n          if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264550;\n        }" { (expression_statement "p_Var11 = p_Var14[1]._M_parent;" (assignment_expression "p_Var11 = p_Var14[1]._M_parent" identifier = (field_expression "p_Var14[1]._M_parent" (subscript_expression "p_Var14[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var10 = p_Var7;" (assignment_expression "p_Var10 = p_Var7" identifier = identifier) ;) (if_statement "if (p_Var11 <= p_Var7) {\n            p_Var10 = p_Var11;\n          }" if (parenthesized_expression "(p_Var11 <= p_Var7)" ( (binary_expression "p_Var11 <= p_Var7" identifier <= identifier) )) (compound_statement "{\n            p_Var10 = p_Var11;\n          }" { (expression_statement "p_Var10 = p_Var11;" (assignment_expression "p_Var10 = p_Var11" identifier = identifier) ;) })) (if_statement "if ((p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)) break;" if (parenthesized_expression "((p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0))" ( (binary_expression "(p_Var10 != (_Base_ptr)0x0) &&\n             (iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)" (parenthesized_expression "(p_Var10 != (_Base_ptr)0x0)" ( (binary_expression "p_Var10 != (_Base_ptr)0x0" identifier != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) && (parenthesized_expression "(iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0)" ( (comma_expression "iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10), iVar4 != 0" (assignment_expression "iVar4 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10)" identifier = (call_expression "memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10)" identifier (argument_list "(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10)" ( (pointer_expression "*(void **)(p_Var14 + 1)" * (cast_expression "(void **)(p_Var14 + 1)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Var14 + 1)" ( (binary_expression "p_Var14 + 1" identifier + number_literal) )))) , identifier , (cast_expression "(size_t)p_Var10" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = (long)p_Var11 - (long)p_Var7;" (assignment_expression "lVar12 = (long)p_Var11 - (long)p_Var7" identifier = (binary_expression "(long)p_Var11 - (long)p_Var7" (cast_expression "(long)p_Var11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)p_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }" if (parenthesized_expression "(lVar12 < 0x80000000)" ( (binary_expression "lVar12 < 0x80000000" identifier < number_literal) )) (compound_statement "{\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }" { (if_statement "if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }" if (parenthesized_expression "(-0x80000001 < lVar12)" ( (binary_expression "-0x80000001 < lVar12" number_literal < identifier) )) (compound_statement "{\n              iVar4 = (int)lVar12;\n              break;\n            }" { (expression_statement "iVar4 = (int)lVar12;" (assignment_expression "iVar4 = (int)lVar12" identifier = (cast_expression "(int)lVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;) })) (goto_statement "goto LAB_002644f0;" goto statement_identifier ;) })) (labeled_statement "LAB_00264544:\n          pp_Var1 = &p_Var14->_M_left;" statement_identifier : (expression_statement "pp_Var1 = &p_Var14->_M_left;" (assignment_expression "pp_Var1 = &p_Var14->_M_left" identifier = (pointer_expression "&p_Var14->_M_left" & (field_expression "p_Var14->_M_left" identifier -> field_identifier))) ;)) (expression_statement "__pos._M_node = p_Var14;" (assignment_expression "__pos._M_node = p_Var14" (field_expression "__pos._M_node" identifier . field_identifier) = identifier) ;) (expression_statement "p_Var14 = *pp_Var1;" (assignment_expression "p_Var14 = *pp_Var1" identifier = (pointer_expression "*pp_Var1" * identifier)) ;) (if_statement "if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264550;" if (parenthesized_expression "(*pp_Var1 == (_Base_ptr)0x0)" ( (binary_expression "*pp_Var1 == (_Base_ptr)0x0" (pointer_expression "*pp_Var1" * identifier) == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00264550;" goto statement_identifier ;)) })) (if_statement "if (-1 < iVar4) goto LAB_00264544;" if (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) (goto_statement "goto LAB_00264544;" goto statement_identifier ;)) (labeled_statement "LAB_002644f0:\n        p_Var14 = p_Var14->_M_right;" statement_identifier : (expression_statement "p_Var14 = p_Var14->_M_right;" (assignment_expression "p_Var14 = p_Var14->_M_right" identifier = (field_expression "p_Var14->_M_right" identifier -> field_identifier)) ;)) }) while (parenthesized_expression "(p_Var14 != (_Base_ptr)0x0)" ( (binary_expression "p_Var14 != (_Base_ptr)0x0" identifier != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;)) (labeled_statement "LAB_00264550:\n      if (__pos_00._M_node == __pos._M_node) goto LAB_00264586;" statement_identifier : (if_statement "if (__pos_00._M_node == __pos._M_node) goto LAB_00264586;" if (parenthesized_expression "(__pos_00._M_node == __pos._M_node)" ( (binary_expression "__pos_00._M_node == __pos._M_node" (field_expression "__pos_00._M_node" identifier . field_identifier) == (field_expression "__pos._M_node" identifier . field_identifier)) )) (goto_statement "goto LAB_00264586;" goto statement_identifier ;))) (expression_statement "p_Var14 = __pos._M_node[1]._M_parent;" (assignment_expression "p_Var14 = __pos._M_node[1]._M_parent" identifier = (field_expression "__pos._M_node[1]._M_parent" (subscript_expression "__pos._M_node[1]" (field_expression "__pos._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var11 = p_Var14;" (assignment_expression "p_Var11 = p_Var14" identifier = identifier) ;) (if_statement "if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }" if (parenthesized_expression "(p_Var7 <= p_Var14)" ( (binary_expression "p_Var7 <= p_Var14" identifier <= identifier) )) (compound_statement "{\n        p_Var11 = p_Var7;\n      }" { (expression_statement "p_Var11 = p_Var7;" (assignment_expression "p_Var11 = p_Var7" identifier = identifier) ;) })) (if_statement "if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (lVar12 < 0x80000000) {\n          if (lVar12 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar12;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }" if (parenthesized_expression "((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11), iVar4 == 0))" ( (binary_expression "(p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11), iVar4 == 0)" (parenthesized_expression "(p_Var11 == (_Base_ptr)0x0)" ( (binary_expression "p_Var11 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) || (parenthesized_expression "(iVar4 = memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11), iVar4 == 0)" ( (comma_expression "iVar4 = memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11), iVar4 == 0" (assignment_expression "iVar4 = memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11)" identifier = (call_expression "memcmp(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11)" identifier (argument_list "(local_70,*(void **)(__pos._M_node + 1),(size_t)p_Var11)" ( identifier , (pointer_expression "*(void **)(__pos._M_node + 1)" * (cast_expression "(void **)(__pos._M_node + 1)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(__pos._M_node + 1)" ( (binary_expression "__pos._M_node + 1" (field_expression "__pos._M_node" identifier . field_identifier) + number_literal) )))) , (cast_expression "(size_t)p_Var11" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (lVar12 < 0x80000000) {\n          if (lVar12 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar12;\n          goto LAB_00264582;\n        }\n      }" { (expression_statement "lVar12 = (long)p_Var7 - (long)p_Var14;" (assignment_expression "lVar12 = (long)p_Var7 - (long)p_Var14" identifier = (binary_expression "(long)p_Var7 - (long)p_Var14" (cast_expression "(long)p_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)p_Var14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (lVar12 < 0x80000000) {\n          if (lVar12 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar12;\n          goto LAB_00264582;\n        }" if (parenthesized_expression "(lVar12 < 0x80000000)" ( (binary_expression "lVar12 < 0x80000000" identifier < number_literal) )) (compound_statement "{\n          if (lVar12 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar12;\n          goto LAB_00264582;\n        }" { (if_statement "if (lVar12 < -0x80000000) goto LAB_00264586;" if (parenthesized_expression "(lVar12 < -0x80000000)" ( (binary_expression "lVar12 < -0x80000000" identifier < number_literal) )) (goto_statement "goto LAB_00264586;" goto statement_identifier ;)) (expression_statement "iVar4 = (int)lVar12;" (assignment_expression "iVar4 = (int)lVar12" identifier = (cast_expression "(int)lVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_00264582;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }" else (compound_statement "{\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }" { (labeled_statement "LAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;" statement_identifier : (if_statement "if (iVar4 < 0) goto LAB_00264586;" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00264586;" goto statement_identifier ;))) }))) (goto_statement "goto LAB_002645b1;" goto statement_identifier ;) }))) (expression_statement "p_Var11 = p_Var13[1]._M_parent;" (assignment_expression "p_Var11 = p_Var13[1]._M_parent" identifier = (field_expression "p_Var13[1]._M_parent" (subscript_expression "p_Var13[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var10 = p_Var11;" (assignment_expression "p_Var10 = p_Var11" identifier = identifier) ;) (if_statement "if (p_Var7 <= p_Var11) {\n      p_Var10 = p_Var7;\n    }" if (parenthesized_expression "(p_Var7 <= p_Var11)" ( (binary_expression "p_Var7 <= p_Var11" identifier <= identifier) )) (compound_statement "{\n      p_Var10 = p_Var7;\n    }" { (expression_statement "p_Var10 = p_Var7;" (assignment_expression "p_Var10 = p_Var7" identifier = identifier) ;) })) (if_statement "if (p_Var10 == (_Base_ptr)0x0) {\nLAB_002644c2:\n      uVar5 = (long)p_Var7 - (long)p_Var11;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(p_Var13 + 1),(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }" if (parenthesized_expression "(p_Var10 == (_Base_ptr)0x0)" ( (binary_expression "p_Var10 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_002644c2:\n      uVar5 = (long)p_Var7 - (long)p_Var11;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }" { (labeled_statement "LAB_002644c2:\n      uVar5 = (long)p_Var7 - (long)p_Var11;" statement_identifier : (expression_statement "uVar5 = (long)p_Var7 - (long)p_Var11;" (assignment_expression "uVar5 = (long)p_Var7 - (long)p_Var11" identifier = (binary_expression "(long)p_Var7 - (long)p_Var11" (cast_expression "(long)p_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)p_Var11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;)) (if_statement "if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }" if (parenthesized_expression "((long)uVar5 < 0x80000000)" ( (binary_expression "(long)uVar5 < 0x80000000" (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }" { (if_statement "if ((long)uVar5 < -0x80000000) goto LAB_002644f9;" if (parenthesized_expression "((long)uVar5 < -0x80000000)" ( (binary_expression "(long)uVar5 < -0x80000000" (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (goto_statement "goto LAB_002644f9;" goto statement_identifier ;)) (goto_statement "goto LAB_002644dc;" goto statement_identifier ;) })) }) (else_clause "else {\n      uVar3 = memcmp(local_70,*(void **)(p_Var13 + 1),(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }" else (compound_statement "{\n      uVar3 = memcmp(local_70,*(void **)(p_Var13 + 1),(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }" { (expression_statement "uVar3 = memcmp(local_70,*(void **)(p_Var13 + 1),(size_t)p_Var10);" (assignment_expression "uVar3 = memcmp(local_70,*(void **)(p_Var13 + 1),(size_t)p_Var10)" identifier = (call_expression "memcmp(local_70,*(void **)(p_Var13 + 1),(size_t)p_Var10)" identifier (argument_list "(local_70,*(void **)(p_Var13 + 1),(size_t)p_Var10)" ( identifier , (pointer_expression "*(void **)(p_Var13 + 1)" * (cast_expression "(void **)(p_Var13 + 1)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Var13 + 1)" ( (binary_expression "p_Var13 + 1" identifier + number_literal) )))) , (cast_expression "(size_t)p_Var10" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (expression_statement "uVar5 = (ulong)uVar3;" (assignment_expression "uVar5 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar3 == 0) goto LAB_002644c2;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002644c2;" goto statement_identifier ;)) (labeled_statement "LAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;" statement_identifier : (if_statement "if ((int)uVar5 < 0) goto LAB_002644f9;" if (parenthesized_expression "((int)uVar5 < 0)" ( (binary_expression "(int)uVar5 < 0" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_002644f9;" goto statement_identifier ;))) }))) (labeled_statement "LAB_00264639:\n    do {\n      while( true ) {\n        p_Var11 = p_Var14[1]._M_parent;\n        p_Var10 = p_Var7;\n        if (p_Var11 <= p_Var7) {\n          p_Var10 = p_Var11;\n        }\n        if (p_Var10 != (_Base_ptr)0x0) break;\nLAB_0026465e:\n        uVar5 = (long)p_Var11 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        pp_Var1 = &p_Var14->_M_left;\n        iVar8._M_node = p_Var14;\n        p_Var14 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      p_Var14 = p_Var14->_M_right;\n    } while (p_Var14 != (_Base_ptr)0x0);" statement_identifier : (do_statement "do {\n      while( true ) {\n        p_Var11 = p_Var14[1]._M_parent;\n        p_Var10 = p_Var7;\n        if (p_Var11 <= p_Var7) {\n          p_Var10 = p_Var11;\n        }\n        if (p_Var10 != (_Base_ptr)0x0) break;\nLAB_0026465e:\n        uVar5 = (long)p_Var11 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        pp_Var1 = &p_Var14->_M_left;\n        iVar8._M_node = p_Var14;\n        p_Var14 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      p_Var14 = p_Var14->_M_right;\n    } while (p_Var14 != (_Base_ptr)0x0);" do (compound_statement "{\n      while( true ) {\n        p_Var11 = p_Var14[1]._M_parent;\n        p_Var10 = p_Var7;\n        if (p_Var11 <= p_Var7) {\n          p_Var10 = p_Var11;\n        }\n        if (p_Var10 != (_Base_ptr)0x0) break;\nLAB_0026465e:\n        uVar5 = (long)p_Var11 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        pp_Var1 = &p_Var14->_M_left;\n        iVar8._M_node = p_Var14;\n        p_Var14 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      p_Var14 = p_Var14->_M_right;\n    }" { (while_statement "while( true ) {\n        p_Var11 = p_Var14[1]._M_parent;\n        p_Var10 = p_Var7;\n        if (p_Var11 <= p_Var7) {\n          p_Var10 = p_Var11;\n        }\n        if (p_Var10 != (_Base_ptr)0x0) break;\nLAB_0026465e:\n        uVar5 = (long)p_Var11 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        pp_Var1 = &p_Var14->_M_left;\n        iVar8._M_node = p_Var14;\n        p_Var14 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264684;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        p_Var11 = p_Var14[1]._M_parent;\n        p_Var10 = p_Var7;\n        if (p_Var11 <= p_Var7) {\n          p_Var10 = p_Var11;\n        }\n        if (p_Var10 != (_Base_ptr)0x0) break;\nLAB_0026465e:\n        uVar5 = (long)p_Var11 - (long)p_Var7;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        pp_Var1 = &p_Var14->_M_left;\n        iVar8._M_node = p_Var14;\n        p_Var14 = *pp_Var1;\n        if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264684;\n      }" { (expression_statement "p_Var11 = p_Var14[1]._M_parent;" (assignment_expression "p_Var11 = p_Var14[1]._M_parent" identifier = (field_expression "p_Var14[1]._M_parent" (subscript_expression "p_Var14[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var10 = p_Var7;" (assignment_expression "p_Var10 = p_Var7" identifier = identifier) ;) (if_statement "if (p_Var11 <= p_Var7) {\n          p_Var10 = p_Var11;\n        }" if (parenthesized_expression "(p_Var11 <= p_Var7)" ( (binary_expression "p_Var11 <= p_Var7" identifier <= identifier) )) (compound_statement "{\n          p_Var10 = p_Var11;\n        }" { (expression_statement "p_Var10 = p_Var11;" (assignment_expression "p_Var10 = p_Var11" identifier = identifier) ;) })) (if_statement "if (p_Var10 != (_Base_ptr)0x0) break;" if (parenthesized_expression "(p_Var10 != (_Base_ptr)0x0)" ( (binary_expression "p_Var10 != (_Base_ptr)0x0" identifier != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0026465e:\n        uVar5 = (long)p_Var11 - (long)p_Var7;" statement_identifier : (expression_statement "uVar5 = (long)p_Var11 - (long)p_Var7;" (assignment_expression "uVar5 = (long)p_Var11 - (long)p_Var7" identifier = (binary_expression "(long)p_Var11 - (long)p_Var7" (cast_expression "(long)p_Var11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)p_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;)) (if_statement "if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }" if (parenthesized_expression "((long)uVar5 < 0x80000000)" ( (binary_expression "(long)uVar5 < 0x80000000" (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }" { (if_statement "if (-0x80000001 < (long)uVar5) goto LAB_00264674;" if (parenthesized_expression "(-0x80000001 < (long)uVar5)" ( (binary_expression "-0x80000001 < (long)uVar5" number_literal < (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_00264674;" goto statement_identifier ;)) (goto_statement "goto LAB_00264630;" goto statement_identifier ;) })) (labeled_statement "LAB_00264678:\n        pp_Var1 = &p_Var14->_M_left;" statement_identifier : (expression_statement "pp_Var1 = &p_Var14->_M_left;" (assignment_expression "pp_Var1 = &p_Var14->_M_left" identifier = (pointer_expression "&p_Var14->_M_left" & (field_expression "p_Var14->_M_left" identifier -> field_identifier))) ;)) (expression_statement "iVar8._M_node = p_Var14;" (assignment_expression "iVar8._M_node = p_Var14" (field_expression "iVar8._M_node" identifier . field_identifier) = identifier) ;) (expression_statement "p_Var14 = *pp_Var1;" (assignment_expression "p_Var14 = *pp_Var1" identifier = (pointer_expression "*pp_Var1" * identifier)) ;) (if_statement "if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_00264684;" if (parenthesized_expression "(*pp_Var1 == (_Base_ptr)0x0)" ( (binary_expression "*pp_Var1 == (_Base_ptr)0x0" (pointer_expression "*pp_Var1" * identifier) == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00264684;" goto statement_identifier ;)) })) (expression_statement "uVar3 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10);" (assignment_expression "uVar3 = memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10)" identifier = (call_expression "memcmp(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10)" identifier (argument_list "(*(void **)(p_Var14 + 1),local_70,(size_t)p_Var10)" ( (pointer_expression "*(void **)(p_Var14 + 1)" * (cast_expression "(void **)(p_Var14 + 1)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Var14 + 1)" ( (binary_expression "p_Var14 + 1" identifier + number_literal) )))) , identifier , (cast_expression "(size_t)p_Var10" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (expression_statement "uVar5 = (ulong)uVar3;" (assignment_expression "uVar5 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar3 == 0) goto LAB_0026465e;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0026465e;" goto statement_identifier ;)) (labeled_statement "LAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;" statement_identifier : (if_statement "if (-1 < (int)uVar5) goto LAB_00264678;" if (parenthesized_expression "(-1 < (int)uVar5)" ( (binary_expression "-1 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00264678;" goto statement_identifier ;))) (labeled_statement "LAB_00264630:\n      p_Var14 = p_Var14->_M_right;" statement_identifier : (expression_statement "p_Var14 = p_Var14->_M_right;" (assignment_expression "p_Var14 = p_Var14->_M_right" identifier = (field_expression "p_Var14->_M_right" identifier -> field_identifier)) ;)) }) while (parenthesized_expression "(p_Var14 != (_Base_ptr)0x0)" ( (binary_expression "p_Var14 != (_Base_ptr)0x0" identifier != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;)) (labeled_statement "LAB_00264684:\n    bVar15 = __pos_00._M_node != iVar8._M_node;" statement_identifier : (expression_statement "bVar15 = __pos_00._M_node != iVar8._M_node;" (assignment_expression "bVar15 = __pos_00._M_node != iVar8._M_node" identifier = (binary_expression "__pos_00._M_node != iVar8._M_node" (field_expression "__pos_00._M_node" identifier . field_identifier) != (field_expression "iVar8._M_node" identifier . field_identifier))) ;)) (expression_statement "__pos_00._M_node = iVar8._M_node;" (assignment_expression "__pos_00._M_node = iVar8._M_node" (field_expression "__pos_00._M_node" identifier . field_identifier) = (field_expression "iVar8._M_node" identifier . field_identifier)) ;) (if_statement "if (bVar15) {\n      p_Var14 = iVar8._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (0x7fffffff < lVar12) goto LAB_002646f8;\n        if (lVar12 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar12;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      p_Var14 = iVar8._M_node[1]._M_parent;\n      p_Var11 = p_Var14;\n      if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }\n      if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (0x7fffffff < lVar12) goto LAB_002646f8;\n        if (lVar12 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar12;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }" { (expression_statement "p_Var14 = iVar8._M_node[1]._M_parent;" (assignment_expression "p_Var14 = iVar8._M_node[1]._M_parent" identifier = (field_expression "iVar8._M_node[1]._M_parent" (subscript_expression "iVar8._M_node[1]" (field_expression "iVar8._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var11 = p_Var14;" (assignment_expression "p_Var11 = p_Var14" identifier = identifier) ;) (if_statement "if (p_Var7 <= p_Var14) {\n        p_Var11 = p_Var7;\n      }" if (parenthesized_expression "(p_Var7 <= p_Var14)" ( (binary_expression "p_Var7 <= p_Var14" identifier <= identifier) )) (compound_statement "{\n        p_Var11 = p_Var7;\n      }" { (expression_statement "p_Var11 = p_Var7;" (assignment_expression "p_Var11 = p_Var7" identifier = identifier) ;) })) (if_statement "if ((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11), iVar4 == 0)) {\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (0x7fffffff < lVar12) goto LAB_002646f8;\n        if (lVar12 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar12;\n      }" if (parenthesized_expression "((p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11), iVar4 == 0))" ( (binary_expression "(p_Var11 == (_Base_ptr)0x0) ||\n         (iVar4 = memcmp(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11), iVar4 == 0)" (parenthesized_expression "(p_Var11 == (_Base_ptr)0x0)" ( (binary_expression "p_Var11 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) || (parenthesized_expression "(iVar4 = memcmp(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11), iVar4 == 0)" ( (comma_expression "iVar4 = memcmp(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11), iVar4 == 0" (assignment_expression "iVar4 = memcmp(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11)" identifier = (call_expression "memcmp(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11)" identifier (argument_list "(local_70,*(void **)(iVar8._M_node + 1),(size_t)p_Var11)" ( identifier , (pointer_expression "*(void **)(iVar8._M_node + 1)" * (cast_expression "(void **)(iVar8._M_node + 1)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8._M_node + 1)" ( (binary_expression "iVar8._M_node + 1" (field_expression "iVar8._M_node" identifier . field_identifier) + number_literal) )))) , (cast_expression "(size_t)p_Var11" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        lVar12 = (long)p_Var7 - (long)p_Var14;\n        if (0x7fffffff < lVar12) goto LAB_002646f8;\n        if (lVar12 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar12;\n      }" { (expression_statement "lVar12 = (long)p_Var7 - (long)p_Var14;" (assignment_expression "lVar12 = (long)p_Var7 - (long)p_Var14" identifier = (binary_expression "(long)p_Var7 - (long)p_Var14" (cast_expression "(long)p_Var7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)p_Var14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (0x7fffffff < lVar12) goto LAB_002646f8;" if (parenthesized_expression "(0x7fffffff < lVar12)" ( (binary_expression "0x7fffffff < lVar12" number_literal < identifier) )) (goto_statement "goto LAB_002646f8;" goto statement_identifier ;)) (if_statement "if (lVar12 < -0x80000000) goto LAB_002646cd;" if (parenthesized_expression "(lVar12 < -0x80000000)" ( (binary_expression "lVar12 < -0x80000000" identifier < number_literal) )) (goto_statement "goto LAB_002646cd;" goto statement_identifier ;)) (expression_statement "iVar4 = (int)lVar12;" (assignment_expression "iVar4 = (int)lVar12" identifier = (cast_expression "(int)lVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (-1 < iVar4) goto LAB_002646f8;" if (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) (goto_statement "goto LAB_002646f8;" goto statement_identifier ;)) })) }))) (labeled_statement "LAB_002646cd:\n  local_40[0]._M_head_impl = &archive->name_;" statement_identifier : (expression_statement "local_40[0]._M_head_impl = &archive->name_;" (assignment_expression "local_40[0]._M_head_impl = &archive->name_" (field_expression "local_40[0]._M_head_impl" (subscript_expression "local_40[0]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "&archive->name_" & (field_expression "archive->name_" identifier -> field_identifier))) ;)) (ERROR "iVar8 = std::\n          _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Cref_inputs::Archive_info>_>_>\n          ::\n          _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>,_std::" (assignment_expression "iVar8 = std" identifier = identifier) : : (binary_expression "_Rb_tree<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Cref_inputs::Archive_info>,_std" identifier (ERROR "::Archive_info>" : : identifier >) , identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Cref_inputs::Archive_info>_>,_std" identifier (ERROR "::Archive_info>_>" : : (binary_expression "Archive_info>_" identifier > identifier) >) , identifier) : : (binary_expression "less<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Cref_inputs::Archive_info>_>_>\n          ::\n          _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std" identifier (ERROR "::Archive_info>_>_>\n          ::\n          _M_emplace_hint_unique<const_std::piecewise_construct_t&" : : (binary_expression "Archive_info>_>_" (binary_expression "Archive_info>_" identifier > identifier) > identifier) > : : (binary_expression "_M_emplace_hint_unique<const_std" identifier < identifier) : : identifier &) , identifier) : : (binary_expression "tuple<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>&>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "&>,_std" & (ERROR ">," > ,) identifier)) : :) (expression_statement "tuple<>_>\n                    (&(this->archives_)._M_t,__pos_00,\n                     (piecewise_construct_t *)&std::piecewise_construct,\n                     (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                      *)local_40,&local_41);" (binary_expression "tuple<>_>\n                    (&(this->archives_)._M_t,__pos_00,\n                     (piecewise_construct_t *)&std::piecewise_construct,\n                     (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                      *)local_40,&local_41)" (binary_expression "tuple<>_" identifier < (ERROR ">" >) identifier) > (parenthesized_expression "(&(this->archives_)._M_t,__pos_00,\n                     (piecewise_construct_t *)&std::piecewise_construct,\n                     (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                      *)local_40,&local_41)" ( (ERROR "&(this->archives_)._M_t,__pos_00,\n                     (piecewise_construct_t *)&std::" (comma_expression "&(this->archives_)._M_t,__pos_00,\n                     (piecewise_construct_t *)&std" (pointer_expression "&(this->archives_)._M_t" & (field_expression "(this->archives_)._M_t" (parenthesized_expression "(this->archives_)" ( (field_expression "this->archives_" identifier -> field_identifier) )) . field_identifier)) , (comma_expression "__pos_00,\n                     (piecewise_construct_t *)&std" identifier , (cast_expression "(piecewise_construct_t *)&std" ( (type_descriptor "piecewise_construct_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&std" & identifier)))) : :) (comma_expression "piecewise_construct,\n                     (tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                      *)local_40,&local_41)" identifier , (parenthesized_expression "(tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>&>\n                      *)local_40,&local_41)" ( (ERROR "tuple<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "tuple<const_std::__cxx11::basic_string<char,_std" (binary_expression "tuple<const_std::__cxx11::basic_string<char" (binary_expression "tuple<const_std" identifier < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (comma_expression "allocator<char>_>&>\n                      *)local_40,&local_41" (binary_expression "allocator<char>_>&>\n                      *)local_40" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "&>\n                      *)local_40" & (ERROR ">" >) (pointer_expression "*)local_40" * (ERROR ")" )) identifier))) , (pointer_expression "&local_41" & identifier)) ))) ))) ;) (labeled_statement "LAB_002646f8:\n  this->current_ = *(Objects **)(iVar8._M_node + 3);" statement_identifier : (expression_statement "this->current_ = *(Objects **)(iVar8._M_node + 3);" (assignment_expression "this->current_ = *(Objects **)(iVar8._M_node + 3)" (field_expression "this->current_" identifier -> field_identifier) = (pointer_expression "*(Objects **)(iVar8._M_node + 3)" * (cast_expression "(Objects **)(iVar8._M_node + 3)" ( (type_descriptor "Objects **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8._M_node + 3)" ( (binary_expression "iVar8._M_node + 3" (field_expression "iVar8._M_node" identifier . field_identifier) + number_literal) ))))) ;)) (return_statement "return;" return ;) })))
(translation_unit "void FUN_002643d0(long param_1,long *param_2)\n\n{\n  long *plVar1;\n  ulong uVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  undefined8 uVar8;\n  long lVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  ulong uVar14;\n  bool bVar15;\n  void *local_70;\n  undefined1 local_41;\n  long *local_40 [2];\n  \n  if (*(long *)(param_1 + 0x48) != param_1) {\n                    \n    FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");\n  }\n  lVar11 = *(long *)(param_1 + 0x28);\n  lVar10 = param_1 + 0x20;\n  lVar6 = lVar10;\n  lVar9 = lVar10;\n  if (lVar11 == 0) {\nLAB_00264586:\n    local_40[0] = param_2 + 3;\n    lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);\nLAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    FUN_002a95a0(lVar6 + 0x40,lVar11);\n    puVar7 = (undefined8 *)FUN_002a11b0(0x18);\n    *puVar7 = 0;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    *(undefined8 **)(lVar6 + 0x60) = puVar7;\n    uVar8 = FUN_00188760(param_2);\n    lVar11 = *(long *)(param_1 + 0x28);\n    *(undefined8 *)(lVar6 + 0x68) = uVar8;\n    if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }\n  }\n  else {\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }\nLAB_002646cd:\n  local_40[0] = param_2 + 3;\n  lVar9 = FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41);\nLAB_002646f8:\n  *(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60);\n  return;\n}\n\n" (function_definition "void FUN_002643d0(long param_1,long *param_2)\n\n{\n  long *plVar1;\n  ulong uVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  undefined8 uVar8;\n  long lVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  ulong uVar14;\n  bool bVar15;\n  void *local_70;\n  undefined1 local_41;\n  long *local_40 [2];\n  \n  if (*(long *)(param_1 + 0x48) != param_1) {\n                    \n    FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");\n  }\n  lVar11 = *(long *)(param_1 + 0x28);\n  lVar10 = param_1 + 0x20;\n  lVar6 = lVar10;\n  lVar9 = lVar10;\n  if (lVar11 == 0) {\nLAB_00264586:\n    local_40[0] = param_2 + 3;\n    lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);\nLAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    FUN_002a95a0(lVar6 + 0x40,lVar11);\n    puVar7 = (undefined8 *)FUN_002a11b0(0x18);\n    *puVar7 = 0;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    *(undefined8 **)(lVar6 + 0x60) = puVar7;\n    uVar8 = FUN_00188760(param_2);\n    lVar11 = *(long *)(param_1 + 0x28);\n    *(undefined8 *)(lVar6 + 0x68) = uVar8;\n    if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }\n  }\n  else {\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }\nLAB_002646cd:\n  local_40[0] = param_2 + 3;\n  lVar9 = FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41);\nLAB_002646f8:\n  *(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60);\n  return;\n}" primitive_type (function_declarator "FUN_002643d0(long param_1,long *param_2)" identifier (parameter_list "(long param_1,long *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  long *plVar1;\n  ulong uVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  undefined8 uVar8;\n  long lVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  ulong uVar14;\n  bool bVar15;\n  void *local_70;\n  undefined1 local_41;\n  long *local_40 [2];\n  \n  if (*(long *)(param_1 + 0x48) != param_1) {\n                    \n    FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");\n  }\n  lVar11 = *(long *)(param_1 + 0x28);\n  lVar10 = param_1 + 0x20;\n  lVar6 = lVar10;\n  lVar9 = lVar10;\n  if (lVar11 == 0) {\nLAB_00264586:\n    local_40[0] = param_2 + 3;\n    lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);\nLAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    FUN_002a95a0(lVar6 + 0x40,lVar11);\n    puVar7 = (undefined8 *)FUN_002a11b0(0x18);\n    *puVar7 = 0;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    *(undefined8 **)(lVar6 + 0x60) = puVar7;\n    uVar8 = FUN_00188760(param_2);\n    lVar11 = *(long *)(param_1 + 0x28);\n    *(undefined8 *)(lVar6 + 0x68) = uVar8;\n    if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }\n  }\n  else {\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }\nLAB_002646cd:\n  local_40[0] = param_2 + 3;\n  lVar9 = FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41);\nLAB_002646f8:\n  *(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60);\n  return;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "void *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined1 local_41;" type_identifier identifier ;) (declaration "long *local_40 [2];" (sized_type_specifier "long" long) (pointer_declarator "*local_40 [2]" * (array_declarator "local_40 [2]" identifier [ number_literal ])) ;) (if_statement "if (*(long *)(param_1 + 0x48) != param_1) {\n                    \n    FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x48) != param_1)" ( (binary_expression "*(long *)(param_1 + 0x48) != param_1" (pointer_expression "*(long *)(param_1 + 0x48)" * (cast_expression "(long *)(param_1 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n                    \n    FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");\n  }" { (expression_statement "FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");" (call_expression "FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start")" identifier (argument_list "("../../gold/cref.cc",0x89,"add_archive_start")" ( (string_literal ""../../gold/cref.cc"" " string_content ") , number_literal , (string_literal ""add_archive_start"" " string_content ") ))) ;) })) (expression_statement "lVar11 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x28)" identifier = (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar10 = param_1 + 0x20;" (assignment_expression "lVar10 = param_1 + 0x20" identifier = (binary_expression "param_1 + 0x20" identifier + number_literal)) ;) (expression_statement "lVar6 = lVar10;" (assignment_expression "lVar6 = lVar10" identifier = identifier) ;) (expression_statement "lVar9 = lVar10;" (assignment_expression "lVar9 = lVar10" identifier = identifier) ;) (if_statement "if (lVar11 == 0) {\nLAB_00264586:\n    local_40[0] = param_2 + 3;\n    lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);\nLAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    FUN_002a95a0(lVar6 + 0x40,lVar11);\n    puVar7 = (undefined8 *)FUN_002a11b0(0x18);\n    *puVar7 = 0;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    *(undefined8 **)(lVar6 + 0x60) = puVar7;\n    uVar8 = FUN_00188760(param_2);\n    lVar11 = *(long *)(param_1 + 0x28);\n    *(undefined8 *)(lVar6 + 0x68) = uVar8;\n    if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }\n  }\n  else {\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00264586:\n    local_40[0] = param_2 + 3;\n    lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);\nLAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    FUN_002a95a0(lVar6 + 0x40,lVar11);\n    puVar7 = (undefined8 *)FUN_002a11b0(0x18);\n    *puVar7 = 0;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    *(undefined8 **)(lVar6 + 0x60) = puVar7;\n    uVar8 = FUN_00188760(param_2);\n    lVar11 = *(long *)(param_1 + 0x28);\n    *(undefined8 *)(lVar6 + 0x68) = uVar8;\n    if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }\n  }" { (labeled_statement "LAB_00264586:\n    local_40[0] = param_2 + 3;" statement_identifier : (expression_statement "local_40[0] = param_2 + 3;" (assignment_expression "local_40[0] = param_2 + 3" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (binary_expression "param_2 + 3" identifier + number_literal)) ;)) (expression_statement "lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);" (assignment_expression "lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41)" identifier = (call_expression "FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41)" identifier (argument_list "(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) , identifier , (pointer_expression "&DAT_00355362" & identifier) , identifier , (pointer_expression "&local_41" & identifier) )))) ;) (labeled_statement "LAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" statement_identifier : (if_statement "if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" if (parenthesized_expression "(*(code **)(*param_2 + 0x10) == FUN_0018b220)" ( (binary_expression "*(code **)(*param_2 + 0x10) == FUN_0018b220" (pointer_expression "*(code **)(*param_2 + 0x10)" * (cast_expression "(code **)(*param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n      lVar11 = param_2[7] + 0x28;\n    }" { (expression_statement "lVar11 = param_2[7] + 0x28;" (assignment_expression "lVar11 = param_2[7] + 0x28" identifier = (binary_expression "param_2[7] + 0x28" (subscript_expression "param_2[7]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" else (compound_statement "{\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" { (expression_statement "lVar11 = (**(code **)(*param_2 + 0x10))(param_2);" (assignment_expression "lVar11 = (**(code **)(*param_2 + 0x10))(param_2)" identifier = (call_expression "(**(code **)(*param_2 + 0x10))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x10))" ( (pointer_expression "**(code **)(*param_2 + 0x10)" * (pointer_expression "*(code **)(*param_2 + 0x10)" * (cast_expression "(code **)(*param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) })))) (expression_statement "FUN_002a95a0(lVar6 + 0x40,lVar11);" (call_expression "FUN_002a95a0(lVar6 + 0x40,lVar11)" identifier (argument_list "(lVar6 + 0x40,lVar11)" ( (binary_expression "lVar6 + 0x40" identifier + number_literal) , identifier ))) ;) (expression_statement "puVar7 = (undefined8 *)FUN_002a11b0(0x18);" (assignment_expression "puVar7 = (undefined8 *)FUN_002a11b0(0x18)" identifier = (cast_expression "(undefined8 *)FUN_002a11b0(0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002a11b0(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "*puVar7 = 0;" (assignment_expression "*puVar7 = 0" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined8 **)(lVar6 + 0x60) = puVar7;" (assignment_expression "*(undefined8 **)(lVar6 + 0x60) = puVar7" (pointer_expression "*(undefined8 **)(lVar6 + 0x60)" * (cast_expression "(undefined8 **)(lVar6 + 0x60)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x60)" ( (binary_expression "lVar6 + 0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = FUN_00188760(param_2);" (assignment_expression "uVar8 = FUN_00188760(param_2)" identifier = (call_expression "FUN_00188760(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "lVar11 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x28)" identifier = (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar6 + 0x68) = uVar8;" (assignment_expression "*(undefined8 *)(lVar6 + 0x68) = uVar8" (pointer_expression "*(undefined8 *)(lVar6 + 0x68)" * (cast_expression "(undefined8 *)(lVar6 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x68)" ( (binary_expression "lVar6 + 0x68" identifier + number_literal) )))) = identifier) ;) (if_statement "if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }" if (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) (compound_statement "{\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }" { (expression_statement "local_70 = (void *)param_2[3];" (assignment_expression "local_70 = (void *)param_2[3]" identifier = (cast_expression "(void *)param_2[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = param_2[4];" (assignment_expression "uVar14 = param_2[4]" identifier = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00264639;" goto statement_identifier ;) })) }) (else_clause "else {\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }" else (compound_statement "{\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }" { (expression_statement "local_70 = (void *)param_2[3];" (assignment_expression "local_70 = (void *)param_2[3]" identifier = (cast_expression "(void *)param_2[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = param_2[4];" (assignment_expression "uVar14 = param_2[4]" identifier = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (expression_statement "lVar13 = lVar10;" (assignment_expression "lVar13 = lVar10" identifier = identifier) ;) (expression_statement "lVar12 = lVar11;" (assignment_expression "lVar12 = lVar11" identifier = identifier) ;) (do_statement "do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);" do (compound_statement "{\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    }" { (while_statement "while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }" { (expression_statement "uVar2 = *(ulong *)(lVar12 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar12 + 0x28)" identifier = (pointer_expression "*(ulong *)(lVar12 + 0x28)" * (cast_expression "(ulong *)(lVar12 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x28)" ( (binary_expression "lVar12 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" identifier = identifier) ;) (if_statement "if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }" if (parenthesized_expression "(uVar2 <= uVar14)" ( (binary_expression "uVar2 <= uVar14" identifier <= identifier) )) (compound_statement "{\n          uVar5 = uVar2;\n        }" { (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" identifier = identifier) ;) })) (if_statement "if (uVar5 != 0) break;" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00264472:\n        uVar5 = uVar2 - uVar14;" statement_identifier : (expression_statement "uVar5 = uVar2 - uVar14;" (assignment_expression "uVar5 = uVar2 - uVar14" identifier = (binary_expression "uVar2 - uVar14" identifier - identifier)) ;)) (if_statement "if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }" if (parenthesized_expression "((long)uVar5 < 0x80000000)" ( (binary_expression "(long)uVar5 < 0x80000000" (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }" { (if_statement "if (-0x80000001 < (long)uVar5) goto LAB_00264488;" if (parenthesized_expression "(-0x80000001 < (long)uVar5)" ( (binary_expression "-0x80000001 < (long)uVar5" number_literal < (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_00264488;" goto statement_identifier ;)) (goto_statement "goto LAB_00264430;" goto statement_identifier ;) })) (labeled_statement "LAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);" statement_identifier : (expression_statement "plVar1 = (long *)(lVar12 + 0x10);" (assignment_expression "plVar1 = (long *)(lVar12 + 0x10)" identifier = (cast_expression "(long *)(lVar12 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x10)" ( (binary_expression "lVar12 + 0x10" identifier + number_literal) )))) ;)) (expression_statement "lVar13 = lVar12;" (assignment_expression "lVar13 = lVar12" identifier = identifier) ;) (expression_statement "lVar12 = *plVar1;" (assignment_expression "lVar12 = *plVar1" identifier = (pointer_expression "*plVar1" * identifier)) ;) (if_statement "if (*plVar1 == 0) goto LAB_00264498;" if (parenthesized_expression "(*plVar1 == 0)" ( (binary_expression "*plVar1 == 0" (pointer_expression "*plVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_00264498;" goto statement_identifier ;)) })) (expression_statement "uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);" (assignment_expression "uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5)" identifier = (call_expression "memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5)" identifier (argument_list "(*(void **)(lVar12 + 0x20),local_70,uVar5)" ( (pointer_expression "*(void **)(lVar12 + 0x20)" * (cast_expression "(void **)(lVar12 + 0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar12 + 0x20)" ( (binary_expression "lVar12 + 0x20" identifier + number_literal) )))) , identifier , identifier )))) ;) (expression_statement "uVar5 = (ulong)uVar3;" (assignment_expression "uVar5 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar3 == 0) goto LAB_00264472;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00264472;" goto statement_identifier ;)) (labeled_statement "LAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;" statement_identifier : (if_statement "if (-1 < (int)uVar5) goto LAB_0026448c;" if (parenthesized_expression "(-1 < (int)uVar5)" ( (binary_expression "-1 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0026448c;" goto statement_identifier ;))) (labeled_statement "LAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);" statement_identifier : (expression_statement "lVar12 = *(long *)(lVar12 + 0x18);" (assignment_expression "lVar12 = *(long *)(lVar12 + 0x18)" identifier = (pointer_expression "*(long *)(lVar12 + 0x18)" * (cast_expression "(long *)(lVar12 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x18)" ( (binary_expression "lVar12 + 0x18" identifier + number_literal) ))))) ;)) }) while (parenthesized_expression "(lVar12 != 0)" ( (binary_expression "lVar12 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }" statement_identifier : (if_statement "if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }" if (parenthesized_expression "(lVar10 == lVar13)" ( (binary_expression "lVar10 == lVar13" identifier == identifier) )) (compound_statement "{\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }" { (labeled_statement "LAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);" statement_identifier : (do_statement "do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);" do (compound_statement "{\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      }" { (while_statement "while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }" { (expression_statement "uVar2 = *(ulong *)(lVar11 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar11 + 0x28)" identifier = (pointer_expression "*(ulong *)(lVar11 + 0x28)" * (cast_expression "(ulong *)(lVar11 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x28)" ( (binary_expression "lVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" identifier = identifier) ;) (if_statement "if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }" if (parenthesized_expression "(uVar2 <= uVar14)" ( (binary_expression "uVar2 <= uVar14" identifier <= identifier) )) (compound_statement "{\n            uVar5 = uVar2;\n          }" { (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" identifier = identifier) ;) })) (if_statement "if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;" if (parenthesized_expression "((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             )" ( (binary_expression "(uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)" (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)" ( (comma_expression "iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0" (assignment_expression "iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5)" identifier = (call_expression "memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5)" identifier (argument_list "(*(void **)(lVar11 + 0x20),local_70,uVar5)" ( (pointer_expression "*(void **)(lVar11 + 0x20)" * (cast_expression "(void **)(lVar11 + 0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar11 + 0x20)" ( (binary_expression "lVar11 + 0x20" identifier + number_literal) )))) , identifier , identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = uVar2 - uVar14;" (assignment_expression "lVar12 = uVar2 - uVar14" identifier = (binary_expression "uVar2 - uVar14" identifier - identifier)) ;) (if_statement "if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }" if (parenthesized_expression "(lVar12 < 0x80000000)" ( (binary_expression "lVar12 < 0x80000000" identifier < number_literal) )) (compound_statement "{\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }" { (if_statement "if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }" if (parenthesized_expression "(-0x80000001 < lVar12)" ( (binary_expression "-0x80000001 < lVar12" number_literal < identifier) )) (compound_statement "{\n              iVar4 = (int)lVar12;\n              break;\n            }" { (expression_statement "iVar4 = (int)lVar12;" (assignment_expression "iVar4 = (int)lVar12" identifier = (cast_expression "(int)lVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;) })) (goto_statement "goto LAB_002644f0;" goto statement_identifier ;) })) (labeled_statement "LAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);" statement_identifier : (expression_statement "plVar1 = (long *)(lVar11 + 0x10);" (assignment_expression "plVar1 = (long *)(lVar11 + 0x10)" identifier = (cast_expression "(long *)(lVar11 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x10)" ( (binary_expression "lVar11 + 0x10" identifier + number_literal) )))) ;)) (expression_statement "lVar6 = lVar11;" (assignment_expression "lVar6 = lVar11" identifier = identifier) ;) (expression_statement "lVar11 = *plVar1;" (assignment_expression "lVar11 = *plVar1" identifier = (pointer_expression "*plVar1" * identifier)) ;) (if_statement "if (*plVar1 == 0) goto LAB_00264550;" if (parenthesized_expression "(*plVar1 == 0)" ( (binary_expression "*plVar1 == 0" (pointer_expression "*plVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_00264550;" goto statement_identifier ;)) })) (if_statement "if (-1 < iVar4) goto LAB_00264544;" if (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) (goto_statement "goto LAB_00264544;" goto statement_identifier ;)) (labeled_statement "LAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);" statement_identifier : (expression_statement "lVar11 = *(long *)(lVar11 + 0x18);" (assignment_expression "lVar11 = *(long *)(lVar11 + 0x18)" identifier = (pointer_expression "*(long *)(lVar11 + 0x18)" * (cast_expression "(long *)(lVar11 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x18)" ( (binary_expression "lVar11 + 0x18" identifier + number_literal) ))))) ;)) }) while (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) ;)) (labeled_statement "LAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;" statement_identifier : (if_statement "if (lVar10 == lVar6) goto LAB_00264586;" if (parenthesized_expression "(lVar10 == lVar6)" ( (binary_expression "lVar10 == lVar6" identifier == identifier) )) (goto_statement "goto LAB_00264586;" goto statement_identifier ;))) (expression_statement "uVar2 = *(ulong *)(lVar6 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar6 + 0x28)" identifier = (pointer_expression "*(ulong *)(lVar6 + 0x28)" * (cast_expression "(ulong *)(lVar6 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x28)" ( (binary_expression "lVar6 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" identifier = identifier) ;) (if_statement "if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }" if (parenthesized_expression "(uVar14 <= uVar2)" ( (binary_expression "uVar14 <= uVar2" identifier <= identifier) )) (compound_statement "{\n        uVar5 = uVar14;\n      }" { (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" identifier = identifier) ;) })) (if_statement "if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }" if (parenthesized_expression "((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0))" ( (binary_expression "(uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)" (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)" ( (comma_expression "iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0" (assignment_expression "iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5)" identifier = (call_expression "memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5)" identifier (argument_list "(local_70,*(void **)(lVar6 + 0x20),uVar5)" ( identifier , (pointer_expression "*(void **)(lVar6 + 0x20)" * (cast_expression "(void **)(lVar6 + 0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) , identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }" { (expression_statement "lVar11 = uVar14 - uVar2;" (assignment_expression "lVar11 = uVar14 - uVar2" identifier = (binary_expression "uVar14 - uVar2" identifier - identifier)) ;) (if_statement "if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }" if (parenthesized_expression "(lVar11 < 0x80000000)" ( (binary_expression "lVar11 < 0x80000000" identifier < number_literal) )) (compound_statement "{\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }" { (if_statement "if (lVar11 < -0x80000000) goto LAB_00264586;" if (parenthesized_expression "(lVar11 < -0x80000000)" ( (binary_expression "lVar11 < -0x80000000" identifier < number_literal) )) (goto_statement "goto LAB_00264586;" goto statement_identifier ;)) (expression_statement "iVar4 = (int)lVar11;" (assignment_expression "iVar4 = (int)lVar11" identifier = (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_00264582;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }" else (compound_statement "{\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }" { (labeled_statement "LAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;" statement_identifier : (if_statement "if (iVar4 < 0) goto LAB_00264586;" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00264586;" goto statement_identifier ;))) }))) (goto_statement "goto LAB_002645b1;" goto statement_identifier ;) }))) (expression_statement "uVar2 = *(ulong *)(lVar13 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar13 + 0x28)" identifier = (pointer_expression "*(ulong *)(lVar13 + 0x28)" * (cast_expression "(ulong *)(lVar13 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x28)" ( (binary_expression "lVar13 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" identifier = identifier) ;) (if_statement "if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }" if (parenthesized_expression "(uVar14 <= uVar2)" ( (binary_expression "uVar14 <= uVar2" identifier <= identifier) )) (compound_statement "{\n      uVar5 = uVar14;\n    }" { (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" identifier = identifier) ;) })) (if_statement "if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }" { (labeled_statement "LAB_002644c2:\n      uVar5 = uVar14 - uVar2;" statement_identifier : (expression_statement "uVar5 = uVar14 - uVar2;" (assignment_expression "uVar5 = uVar14 - uVar2" identifier = (binary_expression "uVar14 - uVar2" identifier - identifier)) ;)) (if_statement "if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }" if (parenthesized_expression "((long)uVar5 < 0x80000000)" ( (binary_expression "(long)uVar5 < 0x80000000" (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }" { (if_statement "if ((long)uVar5 < -0x80000000) goto LAB_002644f9;" if (parenthesized_expression "((long)uVar5 < -0x80000000)" ( (binary_expression "(long)uVar5 < -0x80000000" (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (goto_statement "goto LAB_002644f9;" goto statement_identifier ;)) (goto_statement "goto LAB_002644dc;" goto statement_identifier ;) })) }) (else_clause "else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }" else (compound_statement "{\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }" { (expression_statement "uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);" (assignment_expression "uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5)" identifier = (call_expression "memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5)" identifier (argument_list "(local_70,*(void **)(lVar13 + 0x20),uVar5)" ( identifier , (pointer_expression "*(void **)(lVar13 + 0x20)" * (cast_expression "(void **)(lVar13 + 0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar13 + 0x20)" ( (binary_expression "lVar13 + 0x20" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "uVar5 = (ulong)uVar3;" (assignment_expression "uVar5 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar3 == 0) goto LAB_002644c2;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002644c2;" goto statement_identifier ;)) (labeled_statement "LAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;" statement_identifier : (if_statement "if ((int)uVar5 < 0) goto LAB_002644f9;" if (parenthesized_expression "((int)uVar5 < 0)" ( (binary_expression "(int)uVar5 < 0" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_002644f9;" goto statement_identifier ;))) }))) (labeled_statement "LAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);" statement_identifier : (do_statement "do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);" do (compound_statement "{\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    }" { (while_statement "while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }" { (expression_statement "uVar2 = *(ulong *)(lVar11 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar11 + 0x28)" identifier = (pointer_expression "*(ulong *)(lVar11 + 0x28)" * (cast_expression "(ulong *)(lVar11 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x28)" ( (binary_expression "lVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" identifier = identifier) ;) (if_statement "if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }" if (parenthesized_expression "(uVar2 <= uVar14)" ( (binary_expression "uVar2 <= uVar14" identifier <= identifier) )) (compound_statement "{\n          uVar5 = uVar2;\n        }" { (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" identifier = identifier) ;) })) (if_statement "if (uVar5 != 0) break;" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0026465e:\n        uVar5 = uVar2 - uVar14;" statement_identifier : (expression_statement "uVar5 = uVar2 - uVar14;" (assignment_expression "uVar5 = uVar2 - uVar14" identifier = (binary_expression "uVar2 - uVar14" identifier - identifier)) ;)) (if_statement "if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }" if (parenthesized_expression "((long)uVar5 < 0x80000000)" ( (binary_expression "(long)uVar5 < 0x80000000" (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }" { (if_statement "if (-0x80000001 < (long)uVar5) goto LAB_00264674;" if (parenthesized_expression "(-0x80000001 < (long)uVar5)" ( (binary_expression "-0x80000001 < (long)uVar5" number_literal < (cast_expression "(long)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_00264674;" goto statement_identifier ;)) (goto_statement "goto LAB_00264630;" goto statement_identifier ;) })) (labeled_statement "LAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);" statement_identifier : (expression_statement "plVar1 = (long *)(lVar11 + 0x10);" (assignment_expression "plVar1 = (long *)(lVar11 + 0x10)" identifier = (cast_expression "(long *)(lVar11 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x10)" ( (binary_expression "lVar11 + 0x10" identifier + number_literal) )))) ;)) (expression_statement "lVar9 = lVar11;" (assignment_expression "lVar9 = lVar11" identifier = identifier) ;) (expression_statement "lVar11 = *plVar1;" (assignment_expression "lVar11 = *plVar1" identifier = (pointer_expression "*plVar1" * identifier)) ;) (if_statement "if (*plVar1 == 0) goto LAB_00264684;" if (parenthesized_expression "(*plVar1 == 0)" ( (binary_expression "*plVar1 == 0" (pointer_expression "*plVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_00264684;" goto statement_identifier ;)) })) (expression_statement "uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);" (assignment_expression "uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5)" identifier = (call_expression "memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5)" identifier (argument_list "(*(void **)(lVar11 + 0x20),local_70,uVar5)" ( (pointer_expression "*(void **)(lVar11 + 0x20)" * (cast_expression "(void **)(lVar11 + 0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar11 + 0x20)" ( (binary_expression "lVar11 + 0x20" identifier + number_literal) )))) , identifier , identifier )))) ;) (expression_statement "uVar5 = (ulong)uVar3;" (assignment_expression "uVar5 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar3 == 0) goto LAB_0026465e;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0026465e;" goto statement_identifier ;)) (labeled_statement "LAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;" statement_identifier : (if_statement "if (-1 < (int)uVar5) goto LAB_00264678;" if (parenthesized_expression "(-1 < (int)uVar5)" ( (binary_expression "-1 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00264678;" goto statement_identifier ;))) (labeled_statement "LAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);" statement_identifier : (expression_statement "lVar11 = *(long *)(lVar11 + 0x18);" (assignment_expression "lVar11 = *(long *)(lVar11 + 0x18)" identifier = (pointer_expression "*(long *)(lVar11 + 0x18)" * (cast_expression "(long *)(lVar11 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x18)" ( (binary_expression "lVar11 + 0x18" identifier + number_literal) ))))) ;)) }) while (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) ;)) (labeled_statement "LAB_00264684:\n    bVar15 = lVar10 != lVar9;" statement_identifier : (expression_statement "bVar15 = lVar10 != lVar9;" (assignment_expression "bVar15 = lVar10 != lVar9" identifier = (binary_expression "lVar10 != lVar9" identifier != identifier)) ;)) (expression_statement "lVar10 = lVar9;" (assignment_expression "lVar10 = lVar9" identifier = identifier) ;) (if_statement "if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }" { (expression_statement "uVar2 = *(ulong *)(lVar9 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar9 + 0x28)" identifier = (pointer_expression "*(ulong *)(lVar9 + 0x28)" * (cast_expression "(ulong *)(lVar9 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x28)" ( (binary_expression "lVar9 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" identifier = identifier) ;) (if_statement "if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }" if (parenthesized_expression "(uVar14 <= uVar2)" ( (binary_expression "uVar14 <= uVar2" identifier <= identifier) )) (compound_statement "{\n        uVar5 = uVar14;\n      }" { (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" identifier = identifier) ;) })) (if_statement "if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }" if (parenthesized_expression "((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0))" ( (binary_expression "(uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)" (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)" ( (comma_expression "iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0" (assignment_expression "iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5)" identifier = (call_expression "memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5)" identifier (argument_list "(local_70,*(void **)(lVar9 + 0x20),uVar5)" ( identifier , (pointer_expression "*(void **)(lVar9 + 0x20)" * (cast_expression "(void **)(lVar9 + 0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x20)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) )))) , identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }" { (expression_statement "lVar11 = uVar14 - uVar2;" (assignment_expression "lVar11 = uVar14 - uVar2" identifier = (binary_expression "uVar14 - uVar2" identifier - identifier)) ;) (if_statement "if (0x7fffffff < lVar11) goto LAB_002646f8;" if (parenthesized_expression "(0x7fffffff < lVar11)" ( (binary_expression "0x7fffffff < lVar11" number_literal < identifier) )) (goto_statement "goto LAB_002646f8;" goto statement_identifier ;)) (if_statement "if (lVar11 < -0x80000000) goto LAB_002646cd;" if (parenthesized_expression "(lVar11 < -0x80000000)" ( (binary_expression "lVar11 < -0x80000000" identifier < number_literal) )) (goto_statement "goto LAB_002646cd;" goto statement_identifier ;)) (expression_statement "iVar4 = (int)lVar11;" (assignment_expression "iVar4 = (int)lVar11" identifier = (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (-1 < iVar4) goto LAB_002646f8;" if (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) (goto_statement "goto LAB_002646f8;" goto statement_identifier ;)) })) }))) (labeled_statement "LAB_002646cd:\n  local_40[0] = param_2 + 3;" statement_identifier : (expression_statement "local_40[0] = param_2 + 3;" (assignment_expression "local_40[0] = param_2 + 3" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (binary_expression "param_2 + 3" identifier + number_literal)) ;)) (expression_statement "lVar9 = FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41);" (assignment_expression "lVar9 = FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41)" identifier = (call_expression "FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41)" identifier (argument_list "(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) , identifier , (pointer_expression "&DAT_00355362" & identifier) , identifier , (pointer_expression "&local_41" & identifier) )))) ;) (labeled_statement "LAB_002646f8:\n  *(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60);" statement_identifier : (expression_statement "*(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60);" (assignment_expression "*(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60)" (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(lVar9 + 0x60)" * (cast_expression "(undefined8 *)(lVar9 + 0x60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x60)" ( (binary_expression "lVar9 + 0x60" identifier + number_literal) ))))) ;)) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) ))) (compound_statement { (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) })))) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression 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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (break_statement break ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression 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 ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;))) }))) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;))) }))) (labeled_statement statement_identifier : (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT != IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression 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 ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (return_statement return ;) })))
(function_definition "void FUN_002643d0(long param_1,long *param_2)\n\n{\n  long *plVar1;\n  ulong uVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  undefined8 uVar8;\n  long lVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  ulong uVar14;\n  bool bVar15;\n  void *local_70;\n  undefined1 local_41;\n  long *local_40 [2];\n  \n  if (*(long *)(param_1 + 0x48) != param_1) {\n                    \n    FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");\n  }\n  lVar11 = *(long *)(param_1 + 0x28);\n  lVar10 = param_1 + 0x20;\n  lVar6 = lVar10;\n  lVar9 = lVar10;\n  if (lVar11 == 0) {\nLAB_00264586:\n    local_40[0] = param_2 + 3;\n    lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);\nLAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    FUN_002a95a0(lVar6 + 0x40,lVar11);\n    puVar7 = (undefined8 *)FUN_002a11b0(0x18);\n    *puVar7 = 0;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    *(undefined8 **)(lVar6 + 0x60) = puVar7;\n    uVar8 = FUN_00188760(param_2);\n    lVar11 = *(long *)(param_1 + 0x28);\n    *(undefined8 *)(lVar6 + 0x68) = uVar8;\n    if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }\n  }\n  else {\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }\nLAB_002646cd:\n  local_40[0] = param_2 + 3;\n  lVar9 = FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41);\nLAB_002646f8:\n  *(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_002643d0(long param_1,long *param_2)" (identifier "FUN_002643d0") (parameter_list "(long param_1,long *param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  long *plVar1;\n  ulong uVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  undefined8 uVar8;\n  long lVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  long lVar13;\n  ulong uVar14;\n  bool bVar15;\n  void *local_70;\n  undefined1 local_41;\n  long *local_40 [2];\n  \n  if (*(long *)(param_1 + 0x48) != param_1) {\n                    \n    FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");\n  }\n  lVar11 = *(long *)(param_1 + 0x28);\n  lVar10 = param_1 + 0x20;\n  lVar6 = lVar10;\n  lVar9 = lVar10;\n  if (lVar11 == 0) {\nLAB_00264586:\n    local_40[0] = param_2 + 3;\n    lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);\nLAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    FUN_002a95a0(lVar6 + 0x40,lVar11);\n    puVar7 = (undefined8 *)FUN_002a11b0(0x18);\n    *puVar7 = 0;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    *(undefined8 **)(lVar6 + 0x60) = puVar7;\n    uVar8 = FUN_00188760(param_2);\n    lVar11 = *(long *)(param_1 + 0x28);\n    *(undefined8 *)(lVar6 + 0x68) = uVar8;\n    if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }\n  }\n  else {\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }\nLAB_002646cd:\n  local_40[0] = param_2 + 3;\n  lVar9 = FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41);\nLAB_002646f8:\n  *(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60);\n  return;\n}" ({ "{") (declaration "long *plVar1;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar1" (* "*") (identifier "plVar1")) (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "undefined8 *puVar7;" (type_identifier "undefined8") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "long lVar13;" (sized_type_specifier "long" (long "long")) (identifier "lVar13") (; ";")) (declaration "ulong uVar14;" (type_identifier "ulong") (identifier "uVar14") (; ";")) (declaration "bool bVar15;" (primitive_type "bool") (identifier "bVar15") (; ";")) (declaration "void *local_70;" (primitive_type "void") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "undefined1 local_41;" (type_identifier "undefined1") (identifier "local_41") (; ";")) (declaration "long *local_40 [2];" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_40 [2]" (* "*") (array_declarator "local_40 [2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (*(long *)(param_1 + 0x48) != param_1) {\n                    \n    FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");\n  }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x48) != param_1)" (( "(") (binary_expression "*(long *)(param_1 + 0x48) != param_1" (pointer_expression "*(long *)(param_1 + 0x48)" (* "*") (cast_expression "(long *)(param_1 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))) (!= "!=") (identifier "param_1")) () ")")) (compound_statement "{\n                    \n    FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");\n  }" ({ "{") (expression_statement "FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");" (call_expression "FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start")" (identifier "FUN_00199900") (argument_list "("../../gold/cref.cc",0x89,"add_archive_start")" (( "(") (string_literal ""../../gold/cref.cc"" (" """) (string_content "../../gold/cref.cc") (" """)) (, ",") (number_literal "0x89") (, ",") (string_literal ""add_archive_start"" (" """) (string_content "add_archive_start") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar11 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x28)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "lVar10 = param_1 + 0x20;" (assignment_expression "lVar10 = param_1 + 0x20" (identifier "lVar10") (= "=") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "lVar6 = lVar10;" (assignment_expression "lVar6 = lVar10" (identifier "lVar6") (= "=") (identifier "lVar10")) (; ";")) (expression_statement "lVar9 = lVar10;" (assignment_expression "lVar9 = lVar10" (identifier "lVar9") (= "=") (identifier "lVar10")) (; ";")) (if_statement "if (lVar11 == 0) {\nLAB_00264586:\n    local_40[0] = param_2 + 3;\n    lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);\nLAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    FUN_002a95a0(lVar6 + 0x40,lVar11);\n    puVar7 = (undefined8 *)FUN_002a11b0(0x18);\n    *puVar7 = 0;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    *(undefined8 **)(lVar6 + 0x60) = puVar7;\n    uVar8 = FUN_00188760(param_2);\n    lVar11 = *(long *)(param_1 + 0x28);\n    *(undefined8 *)(lVar6 + 0x68) = uVar8;\n    if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }\n  }\n  else {\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00264586:\n    local_40[0] = param_2 + 3;\n    lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);\nLAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }\n    FUN_002a95a0(lVar6 + 0x40,lVar11);\n    puVar7 = (undefined8 *)FUN_002a11b0(0x18);\n    *puVar7 = 0;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    *(undefined8 **)(lVar6 + 0x60) = puVar7;\n    uVar8 = FUN_00188760(param_2);\n    lVar11 = *(long *)(param_1 + 0x28);\n    *(undefined8 *)(lVar6 + 0x68) = uVar8;\n    if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }\n  }" ({ "{") (labeled_statement "LAB_00264586:\n    local_40[0] = param_2 + 3;" (statement_identifier "LAB_00264586") (: ":") (expression_statement "local_40[0] = param_2 + 3;" (assignment_expression "local_40[0] = param_2 + 3" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3"))) (; ";"))) (expression_statement "lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);" (assignment_expression "lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41)" (identifier "lVar6") (= "=") (call_expression "FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41)" (identifier "FUN_00264d50") (argument_list "(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) (, ",") (identifier "lVar6") (, ",") (pointer_expression "&DAT_00355362" (& "&") (identifier "DAT_00355362")) (, ",") (identifier "local_40") (, ",") (pointer_expression "&local_41" (& "&") (identifier "local_41")) () ")")))) (; ";")) (labeled_statement "LAB_002645b1:\n    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" (statement_identifier "LAB_002645b1") (: ":") (if_statement "if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {\n      lVar11 = param_2[7] + 0x28;\n    }\n    else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" (if "if") (parenthesized_expression "(*(code **)(*param_2 + 0x10) == FUN_0018b220)" (( "(") (binary_expression "*(code **)(*param_2 + 0x10) == FUN_0018b220" (pointer_expression "*(code **)(*param_2 + 0x10)" (* "*") (cast_expression "(code **)(*param_2 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x10)" (( "(") (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x10")) () ")")))) (== "==") (identifier "FUN_0018b220")) () ")")) (compound_statement "{\n      lVar11 = param_2[7] + 0x28;\n    }" ({ "{") (expression_statement "lVar11 = param_2[7] + 0x28;" (assignment_expression "lVar11 = param_2[7] + 0x28" (identifier "lVar11") (= "=") (binary_expression "param_2[7] + 0x28" (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (+ "+") (number_literal "0x28"))) (; ";")) (} "}")) (else_clause "else {\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" (else "else") (compound_statement "{\n      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);\n    }" ({ "{") (expression_statement "lVar11 = (**(code **)(*param_2 + 0x10))(param_2);" (assignment_expression "lVar11 = (**(code **)(*param_2 + 0x10))(param_2)" (identifier "lVar11") (= "=") (call_expression "(**(code **)(*param_2 + 0x10))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x10))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x10)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x10)" (* "*") (cast_expression "(code **)(*param_2 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x10)" (( "(") (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (} "}"))))) (expression_statement "FUN_002a95a0(lVar6 + 0x40,lVar11);" (call_expression "FUN_002a95a0(lVar6 + 0x40,lVar11)" (identifier "FUN_002a95a0") (argument_list "(lVar6 + 0x40,lVar11)" (( "(") (binary_expression "lVar6 + 0x40" (identifier "lVar6") (+ "+") (number_literal "0x40")) (, ",") (identifier "lVar11") () ")"))) (; ";")) (expression_statement "puVar7 = (undefined8 *)FUN_002a11b0(0x18);" (assignment_expression "puVar7 = (undefined8 *)FUN_002a11b0(0x18)" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)FUN_002a11b0(0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002a11b0(0x18)" (identifier "FUN_002a11b0") (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")"))))) (; ";")) (expression_statement "*puVar7 = 0;" (assignment_expression "*puVar7 = 0" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 **)(lVar6 + 0x60) = puVar7;" (assignment_expression "*(undefined8 **)(lVar6 + 0x60) = puVar7" (pointer_expression "*(undefined8 **)(lVar6 + 0x60)" (* "*") (cast_expression "(undefined8 **)(lVar6 + 0x60)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar6 + 0x60)" (( "(") (binary_expression "lVar6 + 0x60" (identifier "lVar6") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "uVar8 = FUN_00188760(param_2);" (assignment_expression "uVar8 = FUN_00188760(param_2)" (identifier "uVar8") (= "=") (call_expression "FUN_00188760(param_2)" (identifier "FUN_00188760") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "lVar11 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x28)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(lVar6 + 0x68) = uVar8;" (assignment_expression "*(undefined8 *)(lVar6 + 0x68) = uVar8" (pointer_expression "*(undefined8 *)(lVar6 + 0x68)" (* "*") (cast_expression "(undefined8 *)(lVar6 + 0x68)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x68)" (( "(") (binary_expression "lVar6 + 0x68" (identifier "lVar6") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (if_statement "if (lVar11 != 0) {\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }" (if "if") (parenthesized_expression "(lVar11 != 0)" (( "(") (binary_expression "lVar11 != 0" (identifier "lVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_70 = (void *)param_2[3];\n      uVar14 = param_2[4];\n      goto LAB_00264639;\n    }" ({ "{") (expression_statement "local_70 = (void *)param_2[3];" (assignment_expression "local_70 = (void *)param_2[3]" (identifier "local_70") (= "=") (cast_expression "(void *)param_2[3]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "uVar14 = param_2[4];" (assignment_expression "uVar14 = param_2[4]" (identifier "uVar14") (= "=") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]"))) (; ";")) (goto_statement "goto LAB_00264639;" (goto "goto") (statement_identifier "LAB_00264639") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }" (else "else") (compound_statement "{\n    local_70 = (void *)param_2[3];\n    uVar14 = param_2[4];\n    lVar13 = lVar10;\n    lVar12 = lVar11;\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);\nLAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }\n    uVar2 = *(ulong *)(lVar13 + 0x28);\n    uVar5 = uVar2;\n    if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }\n    if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }\nLAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);\nLAB_00264684:\n    bVar15 = lVar10 != lVar9;\n    lVar10 = lVar9;\n    if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }\n  }" ({ "{") (expression_statement "local_70 = (void *)param_2[3];" (assignment_expression "local_70 = (void *)param_2[3]" (identifier "local_70") (= "=") (cast_expression "(void *)param_2[3]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "uVar14 = param_2[4];" (assignment_expression "uVar14 = param_2[4]" (identifier "uVar14") (= "=") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "lVar13 = lVar10;" (assignment_expression "lVar13 = lVar10" (identifier "lVar13") (= "=") (identifier "lVar10")) (; ";")) (expression_statement "lVar12 = lVar11;" (assignment_expression "lVar12 = lVar11" (identifier "lVar12") (= "=") (identifier "lVar11")) (; ";")) (do_statement "do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    } while (lVar12 != 0);" (do "do") (compound_statement "{\n      while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }\n      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_00264472;\nLAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;\nLAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);\n    }" ({ "{") (while_statement "while( true ) {\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        uVar2 = *(ulong *)(lVar12 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_00264472:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }\nLAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);\n        lVar13 = lVar12;\n        lVar12 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264498;\n      }" ({ "{") (expression_statement "uVar2 = *(ulong *)(lVar12 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar12 + 0x28)" (identifier "uVar2") (= "=") (pointer_expression "*(ulong *)(lVar12 + 0x28)" (* "*") (cast_expression "(ulong *)(lVar12 + 0x28)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x28)" (( "(") (binary_expression "lVar12 + 0x28" (identifier "lVar12") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" (identifier "uVar5") (= "=") (identifier "uVar14")) (; ";")) (if_statement "if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }" (if "if") (parenthesized_expression "(uVar2 <= uVar14)" (( "(") (binary_expression "uVar2 <= uVar14" (identifier "uVar2") (<= "<=") (identifier "uVar14")) () ")")) (compound_statement "{\n          uVar5 = uVar2;\n        }" ({ "{") (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" (identifier "uVar5") (= "=") (identifier "uVar2")) (; ";")) (} "}"))) (if_statement "if (uVar5 != 0) break;" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00264472:\n        uVar5 = uVar2 - uVar14;" (statement_identifier "LAB_00264472") (: ":") (expression_statement "uVar5 = uVar2 - uVar14;" (assignment_expression "uVar5 = uVar2 - uVar14" (identifier "uVar5") (= "=") (binary_expression "uVar2 - uVar14" (identifier "uVar2") (- "-") (identifier "uVar14"))) (; ";"))) (if_statement "if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }" (if "if") (parenthesized_expression "((long)uVar5 < 0x80000000)" (( "(") (binary_expression "(long)uVar5 < 0x80000000" (cast_expression "(long)uVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar5")) (< "<") (number_literal "0x80000000")) () ")")) (compound_statement "{\n          if (-0x80000001 < (long)uVar5) goto LAB_00264488;\n          goto LAB_00264430;\n        }" ({ "{") (if_statement "if (-0x80000001 < (long)uVar5) goto LAB_00264488;" (if "if") (parenthesized_expression "(-0x80000001 < (long)uVar5)" (( "(") (binary_expression "-0x80000001 < (long)uVar5" (number_literal "-0x80000001") (< "<") (cast_expression "(long)uVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar5"))) () ")")) (goto_statement "goto LAB_00264488;" (goto "goto") (statement_identifier "LAB_00264488") (; ";"))) (goto_statement "goto LAB_00264430;" (goto "goto") (statement_identifier "LAB_00264430") (; ";")) (} "}"))) (labeled_statement "LAB_0026448c:\n        plVar1 = (long *)(lVar12 + 0x10);" (statement_identifier "LAB_0026448c") (: ":") (expression_statement "plVar1 = (long *)(lVar12 + 0x10);" (assignment_expression "plVar1 = (long *)(lVar12 + 0x10)" (identifier "plVar1") (= "=") (cast_expression "(long *)(lVar12 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x10)" (( "(") (binary_expression "lVar12 + 0x10" (identifier "lVar12") (+ "+") (number_literal "0x10")) () ")")))) (; ";"))) (expression_statement "lVar13 = lVar12;" (assignment_expression "lVar13 = lVar12" (identifier "lVar13") (= "=") (identifier "lVar12")) (; ";")) (expression_statement "lVar12 = *plVar1;" (assignment_expression "lVar12 = *plVar1" (identifier "lVar12") (= "=") (pointer_expression "*plVar1" (* "*") (identifier "plVar1"))) (; ";")) (if_statement "if (*plVar1 == 0) goto LAB_00264498;" (if "if") (parenthesized_expression "(*plVar1 == 0)" (( "(") (binary_expression "*plVar1 == 0" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00264498;" (goto "goto") (statement_identifier "LAB_00264498") (; ";"))) (} "}"))) (expression_statement "uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);" (assignment_expression "uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5)" (identifier "uVar3") (= "=") (call_expression "memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5)" (identifier "memcmp") (argument_list "(*(void **)(lVar12 + 0x20),local_70,uVar5)" (( "(") (pointer_expression "*(void **)(lVar12 + 0x20)" (* "*") (cast_expression "(void **)(lVar12 + 0x20)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar12 + 0x20)" (( "(") (binary_expression "lVar12 + 0x20" (identifier "lVar12") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (identifier "local_70") (, ",") (identifier "uVar5") () ")")))) (; ";")) (expression_statement "uVar5 = (ulong)uVar3;" (assignment_expression "uVar5 = (ulong)uVar3" (identifier "uVar5") (= "=") (cast_expression "(ulong)uVar3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar3"))) (; ";")) (if_statement "if (uVar3 == 0) goto LAB_00264472;" (if "if") (parenthesized_expression "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00264472;" (goto "goto") (statement_identifier "LAB_00264472") (; ";"))) (labeled_statement "LAB_00264488:\n      if (-1 < (int)uVar5) goto LAB_0026448c;" (statement_identifier "LAB_00264488") (: ":") (if_statement "if (-1 < (int)uVar5) goto LAB_0026448c;" (if "if") (parenthesized_expression "(-1 < (int)uVar5)" (( "(") (binary_expression "-1 < (int)uVar5" (number_literal "-1") (< "<") (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5"))) () ")")) (goto_statement "goto LAB_0026448c;" (goto "goto") (statement_identifier "LAB_0026448c") (; ";")))) (labeled_statement "LAB_00264430:\n      lVar12 = *(long *)(lVar12 + 0x18);" (statement_identifier "LAB_00264430") (: ":") (expression_statement "lVar12 = *(long *)(lVar12 + 0x18);" (assignment_expression "lVar12 = *(long *)(lVar12 + 0x18)" (identifier "lVar12") (= "=") (pointer_expression "*(long *)(lVar12 + 0x18)" (* "*") (cast_expression "(long *)(lVar12 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x18)" (( "(") (binary_expression "lVar12 + 0x18" (identifier "lVar12") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(lVar12 != 0)" (( "(") (binary_expression "lVar12 != 0" (identifier "lVar12") (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_00264498:\n    if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }" (statement_identifier "LAB_00264498") (: ":") (if_statement "if (lVar10 == lVar13) {\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }" (if "if") (parenthesized_expression "(lVar10 == lVar13)" (( "(") (binary_expression "lVar10 == lVar13" (identifier "lVar10") (== "==") (identifier "lVar13")) () ")")) (compound_statement "{\nLAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);\nLAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;\n      uVar2 = *(ulong *)(lVar6 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }\n      goto LAB_002645b1;\n    }" ({ "{") (labeled_statement "LAB_002644f9:\n      do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);" (statement_identifier "LAB_002644f9") (: ":") (do_statement "do {\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      } while (lVar11 != 0);" (do "do") (compound_statement "{\n        while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }\n        if (-1 < iVar4) goto LAB_00264544;\nLAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);\n      }" ({ "{") (while_statement "while( true ) {\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          uVar2 = *(ulong *)(lVar11 + 0x28);\n          uVar5 = uVar14;\n          if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }\n          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;\n          lVar12 = uVar2 - uVar14;\n          if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }\nLAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);\n          lVar6 = lVar11;\n          lVar11 = *plVar1;\n          if (*plVar1 == 0) goto LAB_00264550;\n        }" ({ "{") (expression_statement "uVar2 = *(ulong *)(lVar11 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar11 + 0x28)" (identifier "uVar2") (= "=") (pointer_expression "*(ulong *)(lVar11 + 0x28)" (* "*") (cast_expression "(ulong *)(lVar11 + 0x28)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x28)" (( "(") (binary_expression "lVar11 + 0x28" (identifier "lVar11") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" (identifier "uVar5") (= "=") (identifier "uVar14")) (; ";")) (if_statement "if (uVar2 <= uVar14) {\n            uVar5 = uVar2;\n          }" (if "if") (parenthesized_expression "(uVar2 <= uVar14)" (( "(") (binary_expression "uVar2 <= uVar14" (identifier "uVar2") (<= "<=") (identifier "uVar14")) () ")")) (compound_statement "{\n            uVar5 = uVar2;\n          }" ({ "{") (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" (identifier "uVar5") (= "=") (identifier "uVar2")) (; ";")) (} "}"))) (if_statement "if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             ) break;" (if "if") (parenthesized_expression "((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)\n             )" (( "(") (binary_expression "(uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)" (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)" (( "(") (comma_expression "iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0" (assignment_expression "iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5)" (identifier "iVar4") (= "=") (call_expression "memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5)" (identifier "memcmp") (argument_list "(*(void **)(lVar11 + 0x20),local_70,uVar5)" (( "(") (pointer_expression "*(void **)(lVar11 + 0x20)" (* "*") (cast_expression "(void **)(lVar11 + 0x20)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar11 + 0x20)" (( "(") (binary_expression "lVar11 + 0x20" (identifier "lVar11") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (identifier "local_70") (, ",") (identifier "uVar5") () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar12 = uVar2 - uVar14;" (assignment_expression "lVar12 = uVar2 - uVar14" (identifier "lVar12") (= "=") (binary_expression "uVar2 - uVar14" (identifier "uVar2") (- "-") (identifier "uVar14"))) (; ";")) (if_statement "if (lVar12 < 0x80000000) {\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }" (if "if") (parenthesized_expression "(lVar12 < 0x80000000)" (( "(") (binary_expression "lVar12 < 0x80000000" (identifier "lVar12") (< "<") (number_literal "0x80000000")) () ")")) (compound_statement "{\n            if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }\n            goto LAB_002644f0;\n          }" ({ "{") (if_statement "if (-0x80000001 < lVar12) {\n              iVar4 = (int)lVar12;\n              break;\n            }" (if "if") (parenthesized_expression "(-0x80000001 < lVar12)" (( "(") (binary_expression "-0x80000001 < lVar12" (number_literal "-0x80000001") (< "<") (identifier "lVar12")) () ")")) (compound_statement "{\n              iVar4 = (int)lVar12;\n              break;\n            }" ({ "{") (expression_statement "iVar4 = (int)lVar12;" (assignment_expression "iVar4 = (int)lVar12" (identifier "iVar4") (= "=") (cast_expression "(int)lVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar12"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (goto_statement "goto LAB_002644f0;" (goto "goto") (statement_identifier "LAB_002644f0") (; ";")) (} "}"))) (labeled_statement "LAB_00264544:\n          plVar1 = (long *)(lVar11 + 0x10);" (statement_identifier "LAB_00264544") (: ":") (expression_statement "plVar1 = (long *)(lVar11 + 0x10);" (assignment_expression "plVar1 = (long *)(lVar11 + 0x10)" (identifier "plVar1") (= "=") (cast_expression "(long *)(lVar11 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x10)" (( "(") (binary_expression "lVar11 + 0x10" (identifier "lVar11") (+ "+") (number_literal "0x10")) () ")")))) (; ";"))) (expression_statement "lVar6 = lVar11;" (assignment_expression "lVar6 = lVar11" (identifier "lVar6") (= "=") (identifier "lVar11")) (; ";")) (expression_statement "lVar11 = *plVar1;" (assignment_expression "lVar11 = *plVar1" (identifier "lVar11") (= "=") (pointer_expression "*plVar1" (* "*") (identifier "plVar1"))) (; ";")) (if_statement "if (*plVar1 == 0) goto LAB_00264550;" (if "if") (parenthesized_expression "(*plVar1 == 0)" (( "(") (binary_expression "*plVar1 == 0" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00264550;" (goto "goto") (statement_identifier "LAB_00264550") (; ";"))) (} "}"))) (if_statement "if (-1 < iVar4) goto LAB_00264544;" (if "if") (parenthesized_expression "(-1 < iVar4)" (( "(") (binary_expression "-1 < iVar4" (number_literal "-1") (< "<") (identifier "iVar4")) () ")")) (goto_statement "goto LAB_00264544;" (goto "goto") (statement_identifier "LAB_00264544") (; ";"))) (labeled_statement "LAB_002644f0:\n        lVar11 = *(long *)(lVar11 + 0x18);" (statement_identifier "LAB_002644f0") (: ":") (expression_statement "lVar11 = *(long *)(lVar11 + 0x18);" (assignment_expression "lVar11 = *(long *)(lVar11 + 0x18)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(lVar11 + 0x18)" (* "*") (cast_expression "(long *)(lVar11 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x18)" (( "(") (binary_expression "lVar11 + 0x18" (identifier "lVar11") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(lVar11 != 0)" (( "(") (binary_expression "lVar11 != 0" (identifier "lVar11") (!= "!=") (number_literal "0")) () ")")) (; ";"))) (labeled_statement "LAB_00264550:\n      if (lVar10 == lVar6) goto LAB_00264586;" (statement_identifier "LAB_00264550") (: ":") (if_statement "if (lVar10 == lVar6) goto LAB_00264586;" (if "if") (parenthesized_expression "(lVar10 == lVar6)" (( "(") (binary_expression "lVar10 == lVar6" (identifier "lVar10") (== "==") (identifier "lVar6")) () ")")) (goto_statement "goto LAB_00264586;" (goto "goto") (statement_identifier "LAB_00264586") (; ";")))) (expression_statement "uVar2 = *(ulong *)(lVar6 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar6 + 0x28)" (identifier "uVar2") (= "=") (pointer_expression "*(ulong *)(lVar6 + 0x28)" (* "*") (cast_expression "(ulong *)(lVar6 + 0x28)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x28)" (( "(") (binary_expression "lVar6 + 0x28" (identifier "lVar6") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" (identifier "uVar5") (= "=") (identifier "uVar2")) (; ";")) (if_statement "if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }" (if "if") (parenthesized_expression "(uVar14 <= uVar2)" (( "(") (binary_expression "uVar14 <= uVar2" (identifier "uVar14") (<= "<=") (identifier "uVar2")) () ")")) (compound_statement "{\n        uVar5 = uVar14;\n      }" ({ "{") (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" (identifier "uVar5") (= "=") (identifier "uVar14")) (; ";")) (} "}"))) (if_statement "if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }\n      else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }" (if "if") (parenthesized_expression "((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0))" (( "(") (binary_expression "(uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)" (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)" (( "(") (comma_expression "iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0" (assignment_expression "iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5)" (identifier "iVar4") (= "=") (call_expression "memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5)" (identifier "memcmp") (argument_list "(local_70,*(void **)(lVar6 + 0x20),uVar5)" (( "(") (identifier "local_70") (, ",") (pointer_expression "*(void **)(lVar6 + 0x20)" (* "*") (cast_expression "(void **)(lVar6 + 0x20)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar6 + 0x20)" (( "(") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (identifier "uVar5") () ")")))) (, ",") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        lVar11 = uVar14 - uVar2;\n        if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }\n      }" ({ "{") (expression_statement "lVar11 = uVar14 - uVar2;" (assignment_expression "lVar11 = uVar14 - uVar2" (identifier "lVar11") (= "=") (binary_expression "uVar14 - uVar2" (identifier "uVar14") (- "-") (identifier "uVar2"))) (; ";")) (if_statement "if (lVar11 < 0x80000000) {\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }" (if "if") (parenthesized_expression "(lVar11 < 0x80000000)" (( "(") (binary_expression "lVar11 < 0x80000000" (identifier "lVar11") (< "<") (number_literal "0x80000000")) () ")")) (compound_statement "{\n          if (lVar11 < -0x80000000) goto LAB_00264586;\n          iVar4 = (int)lVar11;\n          goto LAB_00264582;\n        }" ({ "{") (if_statement "if (lVar11 < -0x80000000) goto LAB_00264586;" (if "if") (parenthesized_expression "(lVar11 < -0x80000000)" (( "(") (binary_expression "lVar11 < -0x80000000" (identifier "lVar11") (< "<") (number_literal "-0x80000000")) () ")")) (goto_statement "goto LAB_00264586;" (goto "goto") (statement_identifier "LAB_00264586") (; ";"))) (expression_statement "iVar4 = (int)lVar11;" (assignment_expression "iVar4 = (int)lVar11" (identifier "iVar4") (= "=") (cast_expression "(int)lVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar11"))) (; ";")) (goto_statement "goto LAB_00264582;" (goto "goto") (statement_identifier "LAB_00264582") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }" (else "else") (compound_statement "{\nLAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;\n      }" ({ "{") (labeled_statement "LAB_00264582:\n        if (iVar4 < 0) goto LAB_00264586;" (statement_identifier "LAB_00264582") (: ":") (if_statement "if (iVar4 < 0) goto LAB_00264586;" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00264586;" (goto "goto") (statement_identifier "LAB_00264586") (; ";")))) (} "}")))) (goto_statement "goto LAB_002645b1;" (goto "goto") (statement_identifier "LAB_002645b1") (; ";")) (} "}")))) (expression_statement "uVar2 = *(ulong *)(lVar13 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar13 + 0x28)" (identifier "uVar2") (= "=") (pointer_expression "*(ulong *)(lVar13 + 0x28)" (* "*") (cast_expression "(ulong *)(lVar13 + 0x28)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x28)" (( "(") (binary_expression "lVar13 + 0x28" (identifier "lVar13") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" (identifier "uVar5") (= "=") (identifier "uVar2")) (; ";")) (if_statement "if (uVar14 <= uVar2) {\n      uVar5 = uVar14;\n    }" (if "if") (parenthesized_expression "(uVar14 <= uVar2)" (( "(") (binary_expression "uVar14 <= uVar2" (identifier "uVar14") (<= "<=") (identifier "uVar2")) () ")")) (compound_statement "{\n      uVar5 = uVar14;\n    }" ({ "{") (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" (identifier "uVar5") (= "=") (identifier "uVar14")) (; ";")) (} "}"))) (if_statement "if (uVar5 == 0) {\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }\n    else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }" (if "if") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_002644c2:\n      uVar5 = uVar14 - uVar2;\n      if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }\n    }" ({ "{") (labeled_statement "LAB_002644c2:\n      uVar5 = uVar14 - uVar2;" (statement_identifier "LAB_002644c2") (: ":") (expression_statement "uVar5 = uVar14 - uVar2;" (assignment_expression "uVar5 = uVar14 - uVar2" (identifier "uVar5") (= "=") (binary_expression "uVar14 - uVar2" (identifier "uVar14") (- "-") (identifier "uVar2"))) (; ";"))) (if_statement "if ((long)uVar5 < 0x80000000) {\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }" (if "if") (parenthesized_expression "((long)uVar5 < 0x80000000)" (( "(") (binary_expression "(long)uVar5 < 0x80000000" (cast_expression "(long)uVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar5")) (< "<") (number_literal "0x80000000")) () ")")) (compound_statement "{\n        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;\n        goto LAB_002644dc;\n      }" ({ "{") (if_statement "if ((long)uVar5 < -0x80000000) goto LAB_002644f9;" (if "if") (parenthesized_expression "((long)uVar5 < -0x80000000)" (( "(") (binary_expression "(long)uVar5 < -0x80000000" (cast_expression "(long)uVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar5")) (< "<") (number_literal "-0x80000000")) () ")")) (goto_statement "goto LAB_002644f9;" (goto "goto") (statement_identifier "LAB_002644f9") (; ";"))) (goto_statement "goto LAB_002644dc;" (goto "goto") (statement_identifier "LAB_002644dc") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }" (else "else") (compound_statement "{\n      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_002644c2;\nLAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;\n    }" ({ "{") (expression_statement "uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);" (assignment_expression "uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5)" (identifier "uVar3") (= "=") (call_expression "memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5)" (identifier "memcmp") (argument_list "(local_70,*(void **)(lVar13 + 0x20),uVar5)" (( "(") (identifier "local_70") (, ",") (pointer_expression "*(void **)(lVar13 + 0x20)" (* "*") (cast_expression "(void **)(lVar13 + 0x20)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar13 + 0x20)" (( "(") (binary_expression "lVar13 + 0x20" (identifier "lVar13") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (identifier "uVar5") () ")")))) (; ";")) (expression_statement "uVar5 = (ulong)uVar3;" (assignment_expression "uVar5 = (ulong)uVar3" (identifier "uVar5") (= "=") (cast_expression "(ulong)uVar3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar3"))) (; ";")) (if_statement "if (uVar3 == 0) goto LAB_002644c2;" (if "if") (parenthesized_expression "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002644c2;" (goto "goto") (statement_identifier "LAB_002644c2") (; ";"))) (labeled_statement "LAB_002644dc:\n      if ((int)uVar5 < 0) goto LAB_002644f9;" (statement_identifier "LAB_002644dc") (: ":") (if_statement "if ((int)uVar5 < 0) goto LAB_002644f9;" (if "if") (parenthesized_expression "((int)uVar5 < 0)" (( "(") (binary_expression "(int)uVar5 < 0" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_002644f9;" (goto "goto") (statement_identifier "LAB_002644f9") (; ";")))) (} "}")))) (labeled_statement "LAB_00264639:\n    do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);" (statement_identifier "LAB_00264639") (: ":") (do_statement "do {\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    } while (lVar11 != 0);" (do "do") (compound_statement "{\n      while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }\n      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);\n      uVar5 = (ulong)uVar3;\n      if (uVar3 == 0) goto LAB_0026465e;\nLAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;\nLAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);\n    }" ({ "{") (while_statement "while( true ) {\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        uVar2 = *(ulong *)(lVar11 + 0x28);\n        uVar5 = uVar14;\n        if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }\n        if (uVar5 != 0) break;\nLAB_0026465e:\n        uVar5 = uVar2 - uVar14;\n        if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }\nLAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);\n        lVar9 = lVar11;\n        lVar11 = *plVar1;\n        if (*plVar1 == 0) goto LAB_00264684;\n      }" ({ "{") (expression_statement "uVar2 = *(ulong *)(lVar11 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar11 + 0x28)" (identifier "uVar2") (= "=") (pointer_expression "*(ulong *)(lVar11 + 0x28)" (* "*") (cast_expression "(ulong *)(lVar11 + 0x28)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x28)" (( "(") (binary_expression "lVar11 + 0x28" (identifier "lVar11") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" (identifier "uVar5") (= "=") (identifier "uVar14")) (; ";")) (if_statement "if (uVar2 <= uVar14) {\n          uVar5 = uVar2;\n        }" (if "if") (parenthesized_expression "(uVar2 <= uVar14)" (( "(") (binary_expression "uVar2 <= uVar14" (identifier "uVar2") (<= "<=") (identifier "uVar14")) () ")")) (compound_statement "{\n          uVar5 = uVar2;\n        }" ({ "{") (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" (identifier "uVar5") (= "=") (identifier "uVar2")) (; ";")) (} "}"))) (if_statement "if (uVar5 != 0) break;" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0026465e:\n        uVar5 = uVar2 - uVar14;" (statement_identifier "LAB_0026465e") (: ":") (expression_statement "uVar5 = uVar2 - uVar14;" (assignment_expression "uVar5 = uVar2 - uVar14" (identifier "uVar5") (= "=") (binary_expression "uVar2 - uVar14" (identifier "uVar2") (- "-") (identifier "uVar14"))) (; ";"))) (if_statement "if ((long)uVar5 < 0x80000000) {\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }" (if "if") (parenthesized_expression "((long)uVar5 < 0x80000000)" (( "(") (binary_expression "(long)uVar5 < 0x80000000" (cast_expression "(long)uVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar5")) (< "<") (number_literal "0x80000000")) () ")")) (compound_statement "{\n          if (-0x80000001 < (long)uVar5) goto LAB_00264674;\n          goto LAB_00264630;\n        }" ({ "{") (if_statement "if (-0x80000001 < (long)uVar5) goto LAB_00264674;" (if "if") (parenthesized_expression "(-0x80000001 < (long)uVar5)" (( "(") (binary_expression "-0x80000001 < (long)uVar5" (number_literal "-0x80000001") (< "<") (cast_expression "(long)uVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar5"))) () ")")) (goto_statement "goto LAB_00264674;" (goto "goto") (statement_identifier "LAB_00264674") (; ";"))) (goto_statement "goto LAB_00264630;" (goto "goto") (statement_identifier "LAB_00264630") (; ";")) (} "}"))) (labeled_statement "LAB_00264678:\n        plVar1 = (long *)(lVar11 + 0x10);" (statement_identifier "LAB_00264678") (: ":") (expression_statement "plVar1 = (long *)(lVar11 + 0x10);" (assignment_expression "plVar1 = (long *)(lVar11 + 0x10)" (identifier "plVar1") (= "=") (cast_expression "(long *)(lVar11 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x10)" (( "(") (binary_expression "lVar11 + 0x10" (identifier "lVar11") (+ "+") (number_literal "0x10")) () ")")))) (; ";"))) (expression_statement "lVar9 = lVar11;" (assignment_expression "lVar9 = lVar11" (identifier "lVar9") (= "=") (identifier "lVar11")) (; ";")) (expression_statement "lVar11 = *plVar1;" (assignment_expression "lVar11 = *plVar1" (identifier "lVar11") (= "=") (pointer_expression "*plVar1" (* "*") (identifier "plVar1"))) (; ";")) (if_statement "if (*plVar1 == 0) goto LAB_00264684;" (if "if") (parenthesized_expression "(*plVar1 == 0)" (( "(") (binary_expression "*plVar1 == 0" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00264684;" (goto "goto") (statement_identifier "LAB_00264684") (; ";"))) (} "}"))) (expression_statement "uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);" (assignment_expression "uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5)" (identifier "uVar3") (= "=") (call_expression "memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5)" (identifier "memcmp") (argument_list "(*(void **)(lVar11 + 0x20),local_70,uVar5)" (( "(") (pointer_expression "*(void **)(lVar11 + 0x20)" (* "*") (cast_expression "(void **)(lVar11 + 0x20)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar11 + 0x20)" (( "(") (binary_expression "lVar11 + 0x20" (identifier "lVar11") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (identifier "local_70") (, ",") (identifier "uVar5") () ")")))) (; ";")) (expression_statement "uVar5 = (ulong)uVar3;" (assignment_expression "uVar5 = (ulong)uVar3" (identifier "uVar5") (= "=") (cast_expression "(ulong)uVar3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar3"))) (; ";")) (if_statement "if (uVar3 == 0) goto LAB_0026465e;" (if "if") (parenthesized_expression "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0026465e;" (goto "goto") (statement_identifier "LAB_0026465e") (; ";"))) (labeled_statement "LAB_00264674:\n      if (-1 < (int)uVar5) goto LAB_00264678;" (statement_identifier "LAB_00264674") (: ":") (if_statement "if (-1 < (int)uVar5) goto LAB_00264678;" (if "if") (parenthesized_expression "(-1 < (int)uVar5)" (( "(") (binary_expression "-1 < (int)uVar5" (number_literal "-1") (< "<") (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5"))) () ")")) (goto_statement "goto LAB_00264678;" (goto "goto") (statement_identifier "LAB_00264678") (; ";")))) (labeled_statement "LAB_00264630:\n      lVar11 = *(long *)(lVar11 + 0x18);" (statement_identifier "LAB_00264630") (: ":") (expression_statement "lVar11 = *(long *)(lVar11 + 0x18);" (assignment_expression "lVar11 = *(long *)(lVar11 + 0x18)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(lVar11 + 0x18)" (* "*") (cast_expression "(long *)(lVar11 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x18)" (( "(") (binary_expression "lVar11 + 0x18" (identifier "lVar11") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(lVar11 != 0)" (( "(") (binary_expression "lVar11 != 0" (identifier "lVar11") (!= "!=") (number_literal "0")) () ")")) (; ";"))) (labeled_statement "LAB_00264684:\n    bVar15 = lVar10 != lVar9;" (statement_identifier "LAB_00264684") (: ":") (expression_statement "bVar15 = lVar10 != lVar9;" (assignment_expression "bVar15 = lVar10 != lVar9" (identifier "bVar15") (= "=") (binary_expression "lVar10 != lVar9" (identifier "lVar10") (!= "!=") (identifier "lVar9"))) (; ";"))) (expression_statement "lVar10 = lVar9;" (assignment_expression "lVar10 = lVar9" (identifier "lVar10") (= "=") (identifier "lVar9")) (; ";")) (if_statement "if (bVar15) {\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n      uVar2 = *(ulong *)(lVar9 + 0x28);\n      uVar5 = uVar2;\n      if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }\n      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }\n      if (-1 < iVar4) goto LAB_002646f8;\n    }" ({ "{") (expression_statement "uVar2 = *(ulong *)(lVar9 + 0x28);" (assignment_expression "uVar2 = *(ulong *)(lVar9 + 0x28)" (identifier "uVar2") (= "=") (pointer_expression "*(ulong *)(lVar9 + 0x28)" (* "*") (cast_expression "(ulong *)(lVar9 + 0x28)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x28)" (( "(") (binary_expression "lVar9 + 0x28" (identifier "lVar9") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" (identifier "uVar5") (= "=") (identifier "uVar2")) (; ";")) (if_statement "if (uVar14 <= uVar2) {\n        uVar5 = uVar14;\n      }" (if "if") (parenthesized_expression "(uVar14 <= uVar2)" (( "(") (binary_expression "uVar14 <= uVar2" (identifier "uVar14") (<= "<=") (identifier "uVar2")) () ")")) (compound_statement "{\n        uVar5 = uVar14;\n      }" ({ "{") (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" (identifier "uVar5") (= "=") (identifier "uVar14")) (; ";")) (} "}"))) (if_statement "if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }" (if "if") (parenthesized_expression "((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0))" (( "(") (binary_expression "(uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)" (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)" (( "(") (comma_expression "iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0" (assignment_expression "iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5)" (identifier "iVar4") (= "=") (call_expression "memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5)" (identifier "memcmp") (argument_list "(local_70,*(void **)(lVar9 + 0x20),uVar5)" (( "(") (identifier "local_70") (, ",") (pointer_expression "*(void **)(lVar9 + 0x20)" (* "*") (cast_expression "(void **)(lVar9 + 0x20)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x20)" (( "(") (binary_expression "lVar9 + 0x20" (identifier "lVar9") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (identifier "uVar5") () ")")))) (, ",") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        lVar11 = uVar14 - uVar2;\n        if (0x7fffffff < lVar11) goto LAB_002646f8;\n        if (lVar11 < -0x80000000) goto LAB_002646cd;\n        iVar4 = (int)lVar11;\n      }" ({ "{") (expression_statement "lVar11 = uVar14 - uVar2;" (assignment_expression "lVar11 = uVar14 - uVar2" (identifier "lVar11") (= "=") (binary_expression "uVar14 - uVar2" (identifier "uVar14") (- "-") (identifier "uVar2"))) (; ";")) (if_statement "if (0x7fffffff < lVar11) goto LAB_002646f8;" (if "if") (parenthesized_expression "(0x7fffffff < lVar11)" (( "(") (binary_expression "0x7fffffff < lVar11" (number_literal "0x7fffffff") (< "<") (identifier "lVar11")) () ")")) (goto_statement "goto LAB_002646f8;" (goto "goto") (statement_identifier "LAB_002646f8") (; ";"))) (if_statement "if (lVar11 < -0x80000000) goto LAB_002646cd;" (if "if") (parenthesized_expression "(lVar11 < -0x80000000)" (( "(") (binary_expression "lVar11 < -0x80000000" (identifier "lVar11") (< "<") (number_literal "-0x80000000")) () ")")) (goto_statement "goto LAB_002646cd;" (goto "goto") (statement_identifier "LAB_002646cd") (; ";"))) (expression_statement "iVar4 = (int)lVar11;" (assignment_expression "iVar4 = (int)lVar11" (identifier "iVar4") (= "=") (cast_expression "(int)lVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar11"))) (; ";")) (} "}"))) (if_statement "if (-1 < iVar4) goto LAB_002646f8;" (if "if") (parenthesized_expression "(-1 < iVar4)" (( "(") (binary_expression "-1 < iVar4" (number_literal "-1") (< "<") (identifier "iVar4")) () ")")) (goto_statement "goto LAB_002646f8;" (goto "goto") (statement_identifier "LAB_002646f8") (; ";"))) (} "}"))) (} "}")))) (labeled_statement "LAB_002646cd:\n  local_40[0] = param_2 + 3;" (statement_identifier "LAB_002646cd") (: ":") (expression_statement "local_40[0] = param_2 + 3;" (assignment_expression "local_40[0] = param_2 + 3" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3"))) (; ";"))) (expression_statement "lVar9 = FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41);" (assignment_expression "lVar9 = FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41)" (identifier "lVar9") (= "=") (call_expression "FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41)" (identifier "FUN_00264d50") (argument_list "(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) (, ",") (identifier "lVar10") (, ",") (pointer_expression "&DAT_00355362" (& "&") (identifier "DAT_00355362")) (, ",") (identifier "local_40") (, ",") (pointer_expression "&local_41" (& "&") (identifier "local_41")) () ")")))) (; ";")) (labeled_statement "LAB_002646f8:\n  *(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60);" (statement_identifier "LAB_002646f8") (: ":") (expression_statement "*(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60);" (assignment_expression "*(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60)" (pointer_expression "*(undefined8 *)(param_1 + 0x48)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(lVar9 + 0x60)" (* "*") (cast_expression "(undefined8 *)(lVar9 + 0x60)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x60)" (( "(") (binary_expression "lVar9 + 0x60" (identifier "lVar9") (+ "+") (number_literal "0x60")) () ")"))))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void add_archive_start(Cref_inputs * this, Archive * archive) */

void __thiscall gold::type_1::function_1(type_1 *var_6,type_2 *archive)

{
  type_3 *pp_Var1;
  type_4 *var_9;
  type_5 var_19;
  int var_21;
  type_6 uVar5;
  type_7 __pos;
  type_8 *puVar6;
  type_3 var_15;
  type_7 iVar8;
  type_9 *psVar9;
  type_3 var_16;
  type_3 var_14;
  type_3 var_18;
  type_10 __pos_00;
  long var_22;
  type_3 var_20;
  type_3 var_8;
  bool bVar15;
  type_11 local_70;
  var_1<> var_2;
  _Head_base<0,_const_std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>&,_false>
  local_40 [2];
  type_12 extraout_var;
  
  if ((type_1 *)var_6->current_ != var_6) {
                    /* WARNING: Subroutine does not return */
    var_7("../../gold/cref.cc",0x89,"add_archive_start");
  }
  var_8 = (var_6->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;
  __pos_00._M_node = &(var_6->archives_)._M_t._M_impl.super__Rb_tree_header._M_header;
  __pos._M_node = __pos_00._M_node;
  iVar8._M_node = __pos_00._M_node;
  if (var_8 == (type_3)0x0) {
LAB_00264586:
    local_40[0]._M_head_impl = &archive->name_;
    __pos = std::
            _Rb_tree<std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>,_std::pair<const_std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>,_gold::type_1::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>,_gold::type_1::Archive_info>var_5>,_std::less<std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>var_5>,_std::var_3<std::pair<const_std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>,_gold::type_1::Archive_info>var_5>var_5>
            ::
            _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::var_1<const_std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>&>,_std::var_1<>var_5>
                      (&(var_6->archives_)._M_t,__pos._M_node,
                       (piecewise_construct_t *)&std::piecewise_construct,
                       (var_1<const_std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>&>
                        *)local_40,&var_2);
LAB_002645b1:
    var_9 = (archive->super_Library_base)._vptr_Library_base[2];
    if (var_9 == type_2::do_filename) {
      psVar9 = (type_9 *)&archive->input_file_->file_;
    }
    else {
      var_21 = (*var_9)(archive);
      psVar9 = (type_9 *)var_10(extraout_var,var_21);
    }
    std::string::var_11((type_9 *)(__pos._M_node + 2),psVar9);
    puVar6 = (type_8 *)var_12(0x18);
    *puVar6 = 0;
    puVar6[1] = 0;
    puVar6[2] = 0;
    *(type_8 **)(__pos._M_node + 3) = puVar6;
    var_15 = (type_3)type_2::var_13(archive);
    var_8 = (var_6->archives_)._M_t._M_impl.super__Rb_tree_header._M_header._M_parent;
    __pos._M_node[3]._M_parent = var_15;
    if (var_8 != (type_3)0x0) {
      local_70 = (archive->name_)._M_dataplus._M_p;
      var_15 = (type_3)(archive->name_)._M_string_length;
      goto LAB_00264639;
    }
  }
  else {
    local_70 = (archive->name_)._M_dataplus._M_p;
    var_15 = (type_3)(archive->name_)._M_string_length;
    var_20 = __pos_00._M_node;
    var_18 = var_8;
    do {
      while( true ) {
        var_14 = var_18[1]._M_parent;
        var_16 = var_15;
        if (var_14 <= var_15) {
          var_16 = var_14;
        }
        if (var_16 != (type_3)0x0) break;
LAB_00264472:
        uVar5 = (long)var_14 - (long)var_15;
        if ((long)uVar5 < 0x80000000) {
          if (-0x80000001 < (long)uVar5) goto LAB_00264488;
          goto LAB_00264430;
        }
LAB_0026448c:
        pp_Var1 = &var_18->_M_left;
        var_20 = var_18;
        var_18 = *pp_Var1;
        if (*pp_Var1 == (type_3)0x0) goto LAB_00264498;
      }
      var_19 = var_17(*(void **)(var_18 + 1),local_70,(size_t)var_16);
      uVar5 = (type_6)var_19;
      if (var_19 == 0) goto LAB_00264472;
LAB_00264488:
      if (-1 < (int)uVar5) goto LAB_0026448c;
LAB_00264430:
      var_18 = var_18->_M_right;
    } while (var_18 != (type_3)0x0);
LAB_00264498:
    if (__pos_00._M_node == var_20) {
LAB_002644f9:
      do {
        while( true ) {
          var_18 = var_8[1]._M_parent;
          var_14 = var_15;
          if (var_18 <= var_15) {
            var_14 = var_18;
          }
          if ((var_14 != (type_3)0x0) &&
             (var_21 = var_17(*(void **)(var_8 + 1),local_70,(size_t)var_14), var_21 != 0)) break;
          var_22 = (long)var_18 - (long)var_15;
          if (var_22 < 0x80000000) {
            if (-0x80000001 < var_22) {
              var_21 = (int)var_22;
              break;
            }
            goto LAB_002644f0;
          }
LAB_00264544:
          pp_Var1 = &var_8->_M_left;
          __pos._M_node = var_8;
          var_8 = *pp_Var1;
          if (*pp_Var1 == (type_3)0x0) goto LAB_00264550;
        }
        if (-1 < var_21) goto LAB_00264544;
LAB_002644f0:
        var_8 = var_8->_M_right;
      } while (var_8 != (type_3)0x0);
LAB_00264550:
      if (__pos_00._M_node == __pos._M_node) goto LAB_00264586;
      var_8 = __pos._M_node[1]._M_parent;
      var_18 = var_8;
      if (var_15 <= var_8) {
        var_18 = var_15;
      }
      if ((var_18 == (type_3)0x0) ||
         (var_21 = var_17(local_70,*(void **)(__pos._M_node + 1),(size_t)var_18), var_21 == 0)) {
        var_22 = (long)var_15 - (long)var_8;
        if (var_22 < 0x80000000) {
          if (var_22 < -0x80000000) goto LAB_00264586;
          var_21 = (int)var_22;
          goto LAB_00264582;
        }
      }
      else {
LAB_00264582:
        if (var_21 < 0) goto LAB_00264586;
      }
      goto LAB_002645b1;
    }
    var_18 = var_20[1]._M_parent;
    var_14 = var_18;
    if (var_15 <= var_18) {
      var_14 = var_15;
    }
    if (var_14 == (type_3)0x0) {
LAB_002644c2:
      uVar5 = (long)var_15 - (long)var_18;
      if ((long)uVar5 < 0x80000000) {
        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;
        goto LAB_002644dc;
      }
    }
    else {
      var_19 = var_17(local_70,*(void **)(var_20 + 1),(size_t)var_14);
      uVar5 = (type_6)var_19;
      if (var_19 == 0) goto LAB_002644c2;
LAB_002644dc:
      if ((int)uVar5 < 0) goto LAB_002644f9;
    }
LAB_00264639:
    do {
      while( true ) {
        var_18 = var_8[1]._M_parent;
        var_14 = var_15;
        if (var_18 <= var_15) {
          var_14 = var_18;
        }
        if (var_14 != (type_3)0x0) break;
LAB_0026465e:
        uVar5 = (long)var_18 - (long)var_15;
        if ((long)uVar5 < 0x80000000) {
          if (-0x80000001 < (long)uVar5) goto LAB_00264674;
          goto LAB_00264630;
        }
LAB_00264678:
        pp_Var1 = &var_8->_M_left;
        iVar8._M_node = var_8;
        var_8 = *pp_Var1;
        if (*pp_Var1 == (type_3)0x0) goto LAB_00264684;
      }
      var_19 = var_17(*(void **)(var_8 + 1),local_70,(size_t)var_14);
      uVar5 = (type_6)var_19;
      if (var_19 == 0) goto LAB_0026465e;
LAB_00264674:
      if (-1 < (int)uVar5) goto LAB_00264678;
LAB_00264630:
      var_8 = var_8->_M_right;
    } while (var_8 != (type_3)0x0);
LAB_00264684:
    bVar15 = __pos_00._M_node != iVar8._M_node;
    __pos_00._M_node = iVar8._M_node;
    if (bVar15) {
      var_8 = iVar8._M_node[1]._M_parent;
      var_18 = var_8;
      if (var_15 <= var_8) {
        var_18 = var_15;
      }
      if ((var_18 == (type_3)0x0) ||
         (var_21 = var_17(local_70,*(void **)(iVar8._M_node + 1),(size_t)var_18), var_21 == 0)) {
        var_22 = (long)var_15 - (long)var_8;
        if (0x7fffffff < var_22) goto LAB_002646f8;
        if (var_22 < -0x80000000) goto LAB_002646cd;
        var_21 = (int)var_22;
      }
      if (-1 < var_21) goto LAB_002646f8;
    }
  }
LAB_002646cd:
  local_40[0]._M_head_impl = &archive->name_;
  iVar8 = std::
          _Rb_tree<std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>,_std::pair<const_std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>,_gold::type_1::Archive_info>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>,_gold::type_1::Archive_info>var_5>,_std::less<std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>var_5>,_std::var_3<std::pair<const_std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>,_gold::type_1::Archive_info>var_5>var_5>
          ::
          _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::var_1<const_std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>&>,_std::var_1<>var_5>
                    (&(var_6->archives_)._M_t,__pos_00,
                     (piecewise_construct_t *)&std::piecewise_construct,
                     (var_1<const_std::__cxx11::basic_string<var_4,_std::char_traits<var_4>,_std::var_3<var_4>var_5>&>
                      *)local_40,&var_2);
LAB_002646f8:
  var_6->current_ = *(type_13 **)(iVar8._M_node + 3);
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) 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: (sized_type_specifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (identifier)) (identifier) (pointer_expression argument: (identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_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: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))) (identifier) (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: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (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 (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))))) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (break_statement))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (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 (identifier) (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))))) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (primitive_type)) value: (identifier)))) (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: (goto_statement label: (statement_identifier))))))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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))))) (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: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))) (identifier) (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: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (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 (identifier) (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))))) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (identifier)) (identifier) (pointer_expression argument: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (return_statement))))

void MASKED(long param_1,long *param_2)

{
  long *plVar1;
  ulong uVar2;
  uint uVar3;
  int iVar4;
  ulong uVar5;
  long lVar6;
  undefined8 *puVar7;
  undefined8 uVar8;
  long lVar9;
  long lVar10;
  long lVar11;
  long lVar12;
  long lVar13;
  ulong uVar14;
  bool bVar15;
  void *local_70;
  undefined1 local_41;
  long *local_40 [2];
  
  if (*(long *)(param_1 + 0x48) != param_1) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/cref.cc",0x89,"add_archive_start");
  }
  lVar11 = *(long *)(param_1 + 0x28);
  lVar10 = param_1 + 0x20;
  lVar6 = lVar10;
  lVar9 = lVar10;
  if (lVar11 == 0) {
LAB_00264586:
    local_40[0] = param_2 + 3;
    lVar6 = FUN_00264d50(param_1 + 0x18,lVar6,&DAT_00355362,local_40,&local_41);
LAB_002645b1:
    if (*(code **)(*param_2 + 0x10) == FUN_0018b220) {
      lVar11 = param_2[7] + 0x28;
    }
    else {
      lVar11 = (**(code **)(*param_2 + 0x10))(param_2);
    }
    FUN_002a95a0(lVar6 + 0x40,lVar11);
    puVar7 = (undefined8 *)FUN_002a11b0(0x18);
    *puVar7 = 0;
    puVar7[1] = 0;
    puVar7[2] = 0;
    *(undefined8 **)(lVar6 + 0x60) = puVar7;
    uVar8 = FUN_00188760(param_2);
    lVar11 = *(long *)(param_1 + 0x28);
    *(undefined8 *)(lVar6 + 0x68) = uVar8;
    if (lVar11 != 0) {
      local_70 = (void *)param_2[3];
      uVar14 = param_2[4];
      goto LAB_00264639;
    }
  }
  else {
    local_70 = (void *)param_2[3];
    uVar14 = param_2[4];
    lVar13 = lVar10;
    lVar12 = lVar11;
    do {
      while( true ) {
        uVar2 = *(ulong *)(lVar12 + 0x28);
        uVar5 = uVar14;
        if (uVar2 <= uVar14) {
          uVar5 = uVar2;
        }
        if (uVar5 != 0) break;
LAB_00264472:
        uVar5 = uVar2 - uVar14;
        if ((long)uVar5 < 0x80000000) {
          if (-0x80000001 < (long)uVar5) goto LAB_00264488;
          goto LAB_00264430;
        }
LAB_0026448c:
        plVar1 = (long *)(lVar12 + 0x10);
        lVar13 = lVar12;
        lVar12 = *plVar1;
        if (*plVar1 == 0) goto LAB_00264498;
      }
      uVar3 = memcmp(*(void **)(lVar12 + 0x20),local_70,uVar5);
      uVar5 = (ulong)uVar3;
      if (uVar3 == 0) goto LAB_00264472;
LAB_00264488:
      if (-1 < (int)uVar5) goto LAB_0026448c;
LAB_00264430:
      lVar12 = *(long *)(lVar12 + 0x18);
    } while (lVar12 != 0);
LAB_00264498:
    if (lVar10 == lVar13) {
LAB_002644f9:
      do {
        while( true ) {
          uVar2 = *(ulong *)(lVar11 + 0x28);
          uVar5 = uVar14;
          if (uVar2 <= uVar14) {
            uVar5 = uVar2;
          }
          if ((uVar5 != 0) && (iVar4 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5), iVar4 != 0)
             ) break;
          lVar12 = uVar2 - uVar14;
          if (lVar12 < 0x80000000) {
            if (-0x80000001 < lVar12) {
              iVar4 = (int)lVar12;
              break;
            }
            goto LAB_002644f0;
          }
LAB_00264544:
          plVar1 = (long *)(lVar11 + 0x10);
          lVar6 = lVar11;
          lVar11 = *plVar1;
          if (*plVar1 == 0) goto LAB_00264550;
        }
        if (-1 < iVar4) goto LAB_00264544;
LAB_002644f0:
        lVar11 = *(long *)(lVar11 + 0x18);
      } while (lVar11 != 0);
LAB_00264550:
      if (lVar10 == lVar6) goto LAB_00264586;
      uVar2 = *(ulong *)(lVar6 + 0x28);
      uVar5 = uVar2;
      if (uVar14 <= uVar2) {
        uVar5 = uVar14;
      }
      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar6 + 0x20),uVar5), iVar4 == 0)) {
        lVar11 = uVar14 - uVar2;
        if (lVar11 < 0x80000000) {
          if (lVar11 < -0x80000000) goto LAB_00264586;
          iVar4 = (int)lVar11;
          goto LAB_00264582;
        }
      }
      else {
LAB_00264582:
        if (iVar4 < 0) goto LAB_00264586;
      }
      goto LAB_002645b1;
    }
    uVar2 = *(ulong *)(lVar13 + 0x28);
    uVar5 = uVar2;
    if (uVar14 <= uVar2) {
      uVar5 = uVar14;
    }
    if (uVar5 == 0) {
LAB_002644c2:
      uVar5 = uVar14 - uVar2;
      if ((long)uVar5 < 0x80000000) {
        if ((long)uVar5 < -0x80000000) goto LAB_002644f9;
        goto LAB_002644dc;
      }
    }
    else {
      uVar3 = memcmp(local_70,*(void **)(lVar13 + 0x20),uVar5);
      uVar5 = (ulong)uVar3;
      if (uVar3 == 0) goto LAB_002644c2;
LAB_002644dc:
      if ((int)uVar5 < 0) goto LAB_002644f9;
    }
LAB_00264639:
    do {
      while( true ) {
        uVar2 = *(ulong *)(lVar11 + 0x28);
        uVar5 = uVar14;
        if (uVar2 <= uVar14) {
          uVar5 = uVar2;
        }
        if (uVar5 != 0) break;
LAB_0026465e:
        uVar5 = uVar2 - uVar14;
        if ((long)uVar5 < 0x80000000) {
          if (-0x80000001 < (long)uVar5) goto LAB_00264674;
          goto LAB_00264630;
        }
LAB_00264678:
        plVar1 = (long *)(lVar11 + 0x10);
        lVar9 = lVar11;
        lVar11 = *plVar1;
        if (*plVar1 == 0) goto LAB_00264684;
      }
      uVar3 = memcmp(*(void **)(lVar11 + 0x20),local_70,uVar5);
      uVar5 = (ulong)uVar3;
      if (uVar3 == 0) goto LAB_0026465e;
LAB_00264674:
      if (-1 < (int)uVar5) goto LAB_00264678;
LAB_00264630:
      lVar11 = *(long *)(lVar11 + 0x18);
    } while (lVar11 != 0);
LAB_00264684:
    bVar15 = lVar10 != lVar9;
    lVar10 = lVar9;
    if (bVar15) {
      uVar2 = *(ulong *)(lVar9 + 0x28);
      uVar5 = uVar2;
      if (uVar14 <= uVar2) {
        uVar5 = uVar14;
      }
      if ((uVar5 == 0) || (iVar4 = memcmp(local_70,*(void **)(lVar9 + 0x20),uVar5), iVar4 == 0)) {
        lVar11 = uVar14 - uVar2;
        if (0x7fffffff < lVar11) goto LAB_002646f8;
        if (lVar11 < -0x80000000) goto LAB_002646cd;
        iVar4 = (int)lVar11;
      }
      if (-1 < iVar4) goto LAB_002646f8;
    }
  }
LAB_002646cd:
  local_40[0] = param_2 + 3;
  lVar9 = FUN_00264d50(param_1 + 0x18,lVar10,&DAT_00355362,local_40,&local_41);
LAB_002646f8:
  *(undefined8 *)(param_1 + 0x48) = *(undefined8 *)(lVar9 + 0x60);
  return;
}

