
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */
/* DWARF original prototype: void
   _M_realloc_insert<gold::Input_argument>(vector<gold::Input_argument,_std::allocator<gold::Input_argument>_>
   * this, iterator __position, Input_argument * __args#0) */

void __thiscall
std::vector<gold::Input_argument,_std::allocator<gold::Input_argument>_>::
_M_realloc_insert<gold::Input_argument>
          (vector<gold::Input_argument,_std::allocator<gold::Input_argument>_> *this,
          iterator __position,Input_argument *__args_0)

{
  bool bVar1;
  pointer pIVar2;
  pointer pIVar3;
  pointer pcVar4;
  size_type sVar5;
  Input_file_type IVar6;
  undefined4 uVar7;
  size_type sVar8;
  Object_format OVar9;
  size_type *psVar10;
  int iVar11;
  undefined1 *puVar12;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar13;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar14;
  uint uVar15;
  pointer pIVar16;
  pointer pIVar17;
  uint uVar18;
  pointer local_34;
  pointer local_2c;
  pointer local_24;
  
  pIVar2 = (this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>).
           _M_impl._M_start;
  pIVar3 = (this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>).
           _M_impl._M_finish;
  iVar11 = (int)pIVar3 - (int)pIVar2 >> 2;
  if (iVar11 * -0x1642c859 == 0) {
    uVar15 = 1;
LAB_000fe1a5:
    uVar18 = uVar15 * 0x5c;
  }
  else {
    uVar15 = iVar11 * -0x2c8590b2;
    uVar18 = 0xfffffff4;
    if (((uint)(iVar11 * -0x1642c859) < uVar15 || iVar11 * 0x1642c859 == 0) && (uVar15 < 0x2c8590c))
    {
      if (uVar15 == 0) {
        local_2c = (pointer)0x5c;
        local_24 = (pointer)0x0;
        local_34 = (pointer)0x0;
        goto LAB_000fddbd;
      }
      goto LAB_000fe1a5;
    }
  }
  local_34 = (pointer)operator_new(uVar18);
  local_24 = (pointer)(&local_34->is_file_ + uVar18);
  local_2c = local_34 + 1;
LAB_000fddbd:
  pcVar4 = (__args_0->file_).name_._M_dataplus._M_p;
  puVar12 = (undefined1 *)((int)local_34 + ((int)__position._M_current - (int)pIVar2));
  *puVar12 = __args_0->is_file_;
  paVar14 = &(__args_0->file_).name_.field_2;
  *(undefined1 **)(puVar12 + 4) = puVar12 + 0xc;
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)pcVar4 == paVar14) {
    *(size_type *)(puVar12 + 0xc) = (__args_0->file_).name_.field_2._M_allocated_capacity;
    *(undefined4 *)(puVar12 + 0x10) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 4);
    *(undefined4 *)(puVar12 + 0x14) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 8);
    *(undefined4 *)(puVar12 + 0x18) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 0xc);
  }
  else {
    *(pointer *)(puVar12 + 4) = pcVar4;
    *(size_type *)(puVar12 + 0xc) = (__args_0->file_).name_.field_2._M_allocated_capacity;
  }
  sVar5 = (__args_0->file_).name_._M_string_length;
  (__args_0->file_).name_._M_dataplus._M_p = (pointer)paVar14;
  IVar6 = (__args_0->file_).type_;
  (__args_0->file_).name_._M_string_length = 0;
  *(size_type *)(puVar12 + 8) = sVar5;
  pcVar4 = (__args_0->file_).extra_search_path_._M_dataplus._M_p;
  *(Input_file_type *)(puVar12 + 0x1c) = IVar6;
  paVar14 = &(__args_0->file_).extra_search_path_.field_2;
  (__args_0->file_).name_.field_2._M_local_buf[0] = '\0';
  *(undefined1 **)(puVar12 + 0x20) = puVar12 + 0x28;
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)pcVar4 == paVar14) {
    *(size_type *)(puVar12 + 0x28) =
         (__args_0->file_).extra_search_path_.field_2._M_allocated_capacity;
    *(undefined4 *)(puVar12 + 0x2c) =
         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 4);
    *(undefined4 *)(puVar12 + 0x30) =
         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 8);
    *(undefined4 *)(puVar12 + 0x34) =
         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 0xc);
  }
  else {
    *(pointer *)(puVar12 + 0x20) = pcVar4;
    *(size_type *)(puVar12 + 0x28) =
         (__args_0->file_).extra_search_path_.field_2._M_allocated_capacity;
  }
  sVar5 = (__args_0->file_).extra_search_path_._M_string_length;
  (__args_0->file_).extra_search_path_._M_dataplus._M_p = (pointer)paVar14;
  bVar1 = (__args_0->file_).just_symbols_;
  (__args_0->file_).extra_search_path_._M_string_length = 0;
  *(size_type *)(puVar12 + 0x24) = sVar5;
  puVar12[0x38] = bVar1;
  uVar7 = *(undefined4 *)&(__args_0->file_).options_;
  (__args_0->file_).extra_search_path_.field_2._M_local_buf[0] = '\0';
  *(undefined4 *)(puVar12 + 0x3c) = uVar7;
  *(Object_format *)(puVar12 + 0x40) = (__args_0->file_).options_.format_enum_;
  *(undefined4 *)(puVar12 + 0x44) = *(undefined4 *)&(__args_0->file_).options_.whole_archive_;
  *(Incremental_disposition *)(puVar12 + 0x48) = (__args_0->file_).options_.incremental_disposition_
  ;
  *(uint *)(puVar12 + 0x4c) = (__args_0->file_).arg_serial_;
  *(Input_file_group **)(puVar12 + 0x50) = __args_0->group_;
  *(Input_file_lib **)(puVar12 + 0x54) = __args_0->lib_;
  *(Script_info **)(puVar12 + 0x58) = __args_0->script_info_;
  if (__position._M_current != pIVar2) {
    uVar15 = ((uint)((int)__position._M_current + (-0x5c - (int)pIVar2)) >> 2) * 0x29bd37a7 &
             0x3fffffff;
    paVar14 = &(pIVar2->file_).name_.field_2;
    pIVar16 = local_34;
    do {
      bVar1 = *(bool *)((int)paVar14 + -0xc);
      (pIVar16->file_).name_._M_dataplus._M_p = (pointer)&(pIVar16->file_).name_.field_2;
      pIVar16->is_file_ = bVar1;
      pcVar4 = (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p;
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)pcVar4 == paVar14) {
        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;
        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 4) =
             *(undefined4 *)((int)paVar14 + 4);
        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 8) =
             *(undefined4 *)((int)paVar14 + 8);
        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 0xc) =
             *(undefined4 *)((int)paVar14 + 0xc);
      }
      else {
        (pIVar16->file_).name_._M_dataplus._M_p = pcVar4;
        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;
      }
      (pIVar16->file_).name_._M_string_length = *(size_type *)((int)paVar14 + -4);
      IVar6 = paVar14[1]._M_allocated_capacity;
      (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p = (pointer)paVar14;
      *(size_type *)((int)paVar14 + -4) = 0;
      paVar14->_M_local_buf[0] = '\0';
      (pIVar16->file_).type_ = IVar6;
      (pIVar16->file_).extra_search_path_._M_dataplus._M_p =
           (pointer)&(pIVar16->file_).extra_search_path_.field_2;
      if (*(pointer *)((int)paVar14 + 0x14) == (pointer)((int)paVar14 + 0x1c)) {
        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =
             *(size_type *)((int)paVar14 + 0x1c);
        *(size_type *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 4) =
             paVar14[2]._M_allocated_capacity;
        *(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 8) =
             *(undefined4 *)((int)paVar14 + 0x24);
        *(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 0xc) =
             *(undefined4 *)((int)paVar14 + 0x28);
      }
      else {
        (pIVar16->file_).extra_search_path_._M_dataplus._M_p = *(pointer *)((int)paVar14 + 0x14);
        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =
             *(size_type *)((int)paVar14 + 0x1c);
      }
      paVar13 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                 *)((int)paVar14 + 0x5c);
      (pIVar16->file_).extra_search_path_._M_string_length = *(size_type *)((int)paVar14 + 0x18);
      *(pointer *)((int)paVar14 + 0x14) = (pointer)((int)paVar14 + 0x1c);
      *(undefined4 *)((int)paVar14 + 0x18) = 0;
      *(undefined1 *)((int)paVar14 + 0x1c) = 0;
      (pIVar16->file_).just_symbols_ = *(bool *)((int)paVar14 + 0x2c);
      uVar7 = paVar14[3]._M_allocated_capacity;
      (pIVar16->file_).options_.as_needed_ = (bool)(char)uVar7;
      (pIVar16->file_).options_.Bdynamic_ = (bool)(char)((uint)uVar7 >> 8);
      *(short *)&(pIVar16->file_).options_.field_0x2 = (short)((uint)uVar7 >> 0x10);
      (pIVar16->file_).options_.format_enum_ = *(Object_format *)((int)paVar14 + 0x34);
      *(undefined4 *)&(pIVar16->file_).options_.whole_archive_ =
           *(undefined4 *)((int)paVar14 + 0x38);
      (pIVar16->file_).options_.incremental_disposition_ =
           *(Incremental_disposition *)((int)paVar14 + 0x3c);
      (pIVar16->file_).arg_serial_ = paVar14[4]._M_allocated_capacity;
      pIVar16->group_ = *(Input_file_group **)((int)paVar14 + 0x44);
      pIVar16->lib_ = *(Input_file_lib **)((int)paVar14 + 0x48);
      pIVar16->script_info_ = *(Script_info **)((int)paVar14 + 0x4c);
      paVar14 = paVar13;
      pIVar16 = pIVar16 + 1;
    } while (paVar13 != &pIVar2[uVar15 + 1].file_.name_.field_2);
    local_2c = local_34 + uVar15 + 2;
  }
  pIVar16 = pIVar2;
  if (__position._M_current != pIVar3) {
    uVar15 = ((uint)((int)pIVar3 + (-0x5c - (int)__position._M_current)) >> 2) * 0x29bd37a7 &
             0x3fffffff;
    paVar14 = &((__position._M_current)->file_).name_.field_2;
    pIVar17 = local_2c;
    do {
      bVar1 = *(bool *)((int)paVar14 + -0xc);
      (pIVar17->file_).name_._M_dataplus._M_p = (pointer)&(pIVar17->file_).name_.field_2;
      pIVar17->is_file_ = bVar1;
      psVar10 = (size_type *)(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p;
      if (paVar14 ==
          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)psVar10) {
        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;
        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 4) = *(size_type *)((int)paVar14 + 4);
        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 8) = *(size_type *)((int)paVar14 + 8);
        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 0xc) =
             *(size_type *)((int)paVar14 + 0xc);
      }
      else {
        (pIVar17->file_).name_._M_dataplus._M_p = (pointer)psVar10;
        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;
      }
      sVar5 = *(size_type *)((int)paVar14 + -4);
      psVar10 = *(size_type **)((int)paVar14 + 0x14);
      (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p = (pointer)paVar14;
      *(size_type *)((int)paVar14 + -4) = 0;
      (pIVar17->file_).name_._M_string_length = sVar5;
      paVar14->_M_local_buf[0] = '\0';
      (pIVar17->file_).type_ = paVar14[1]._M_allocated_capacity;
      (pIVar17->file_).extra_search_path_._M_dataplus._M_p =
           (pointer)&(pIVar17->file_).extra_search_path_.field_2;
      if (psVar10 == (size_type *)((int)paVar14 + 0x1c)) {
        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =
             *(size_type *)((int)paVar14 + 0x1c);
        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 4) =
             paVar14[2]._M_allocated_capacity;
        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 8) =
             *(size_type *)((int)paVar14 + 0x24);
        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 0xc) =
             *(size_type *)((int)paVar14 + 0x28);
      }
      else {
        (pIVar17->file_).extra_search_path_._M_dataplus._M_p = (pointer)psVar10;
        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =
             *(size_type *)((int)paVar14 + 0x1c);
      }
      *(size_type **)((int)paVar14 + 0x14) = (size_type *)((int)paVar14 + 0x1c);
      paVar13 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                 *)((int)paVar14 + 0x5c);
      sVar5 = *(size_type *)((int)paVar14 + 0x18);
      *(char *)((int)paVar14 + 0x1c) = '\0';
      (pIVar17->file_).just_symbols_ = *(bool *)((int)paVar14 + 0x2c);
      sVar8 = paVar14[3]._M_allocated_capacity;
      *(size_type *)((int)paVar14 + 0x18) = 0;
      (pIVar17->file_).options_.as_needed_ = (bool)(char)sVar8;
      (pIVar17->file_).options_.Bdynamic_ = (bool)(char)(sVar8 >> 8);
      *(short *)&(pIVar17->file_).options_.field_0x2 = (short)(sVar8 >> 0x10);
      OVar9 = *(Object_format *)((int)paVar14 + 0x34);
      (pIVar17->file_).extra_search_path_._M_string_length = sVar5;
      (pIVar17->file_).options_.format_enum_ = OVar9;
      *(size_type *)&(pIVar17->file_).options_.whole_archive_ = *(size_type *)((int)paVar14 + 0x38);
      (pIVar17->file_).options_.incremental_disposition_ =
           *(Incremental_disposition *)((int)paVar14 + 0x3c);
      (pIVar17->file_).arg_serial_ = paVar14[4]._M_allocated_capacity;
      pIVar17->group_ = *(Input_file_group **)((int)paVar14 + 0x44);
      pIVar17->lib_ = *(Input_file_lib **)((int)paVar14 + 0x48);
      pIVar17->script_info_ = *(Script_info **)((int)paVar14 + 0x4c);
      paVar14 = paVar13;
      pIVar17 = pIVar17 + 1;
    } while (paVar13 != &__position._M_current[uVar15 + 1].file_.name_.field_2);
    local_2c = local_2c + uVar15 + 1;
  }
  for (; pIVar16 != pIVar3; pIVar16 = pIVar16 + 1) {
    pcVar4 = (pIVar16->file_).extra_search_path_._M_dataplus._M_p;
    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
         *)pcVar4 != &(pIVar16->file_).extra_search_path_.field_2) {
      operator_delete(pcVar4);
    }
    pcVar4 = (pIVar16->file_).name_._M_dataplus._M_p;
    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
         *)pcVar4 != &(pIVar16->file_).name_.field_2) {
      operator_delete(pcVar4);
    }
  }
  if (pIVar2 != (pointer)0x0) {
    operator_delete(pIVar2);
  }
  (this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl.
  _M_start = local_34;
  (this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl.
  _M_finish = local_2c;
  (this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl.
  _M_end_of_storage = local_24;
  return;
}



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

void FUN_000fdd50(int *param_1,int param_2,undefined1 *param_3)

{
  undefined1 uVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  int iVar6;
  undefined1 *puVar7;
  undefined4 *puVar8;
  undefined4 *puVar9;
  uint uVar10;
  undefined1 *puVar11;
  int iVar12;
  undefined1 *local_34;
  undefined1 *local_2c;
  undefined1 *local_24;
  
  iVar2 = *param_1;
  iVar3 = param_1[1];
  iVar6 = iVar3 - iVar2 >> 2;
  if (iVar6 * -0x1642c859 == 0) {
    uVar10 = 1;
LAB_000fe1a5:
    iVar12 = uVar10 * 0x5c;
  }
  else {
    uVar10 = iVar6 * -0x2c8590b2;
    iVar12 = -0xc;
    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {
      if (uVar10 == 0) {
        local_2c = (undefined1 *)0x5c;
        local_24 = (undefined1 *)0x0;
        local_34 = (undefined1 *)0x0;
        goto LAB_000fddbd;
      }
      goto LAB_000fe1a5;
    }
  }
  local_34 = (undefined1 *)FUN_001fb470(iVar12);
  local_24 = local_34 + iVar12;
  local_2c = local_34 + 0x5c;
LAB_000fddbd:
  puVar11 = *(undefined1 **)(param_3 + 4);
  puVar7 = local_34 + (param_2 - iVar2);
  *puVar7 = *param_3;
  *(undefined1 **)(puVar7 + 4) = puVar7 + 0xc;
  if (puVar11 == param_3 + 0xc) {
    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);
    *(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);
    *(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);
    *(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);
  }
  else {
    *(undefined1 **)(puVar7 + 4) = puVar11;
    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);
  }
  uVar4 = *(undefined4 *)(param_3 + 8);
  *(undefined1 **)(param_3 + 4) = param_3 + 0xc;
  uVar5 = *(undefined4 *)(param_3 + 0x1c);
  *(undefined4 *)(param_3 + 8) = 0;
  *(undefined4 *)(puVar7 + 8) = uVar4;
  puVar11 = *(undefined1 **)(param_3 + 0x20);
  *(undefined4 *)(puVar7 + 0x1c) = uVar5;
  param_3[0xc] = 0;
  *(undefined1 **)(puVar7 + 0x20) = puVar7 + 0x28;
  if (puVar11 == param_3 + 0x28) {
    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);
    *(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);
    *(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);
    *(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);
  }
  else {
    *(undefined1 **)(puVar7 + 0x20) = puVar11;
    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);
  }
  uVar4 = *(undefined4 *)(param_3 + 0x24);
  *(undefined1 **)(param_3 + 0x20) = param_3 + 0x28;
  uVar1 = param_3[0x38];
  *(undefined4 *)(param_3 + 0x24) = 0;
  *(undefined4 *)(puVar7 + 0x24) = uVar4;
  puVar7[0x38] = uVar1;
  param_3[0x28] = 0;
  *(undefined4 *)(puVar7 + 0x3c) = *(undefined4 *)(param_3 + 0x3c);
  *(undefined4 *)(puVar7 + 0x40) = *(undefined4 *)(param_3 + 0x40);
  *(undefined4 *)(puVar7 + 0x44) = *(undefined4 *)(param_3 + 0x44);
  *(undefined4 *)(puVar7 + 0x48) = *(undefined4 *)(param_3 + 0x48);
  *(undefined4 *)(puVar7 + 0x4c) = *(undefined4 *)(param_3 + 0x4c);
  *(undefined4 *)(puVar7 + 0x50) = *(undefined4 *)(param_3 + 0x50);
  *(undefined4 *)(puVar7 + 0x54) = *(undefined4 *)(param_3 + 0x54);
  *(undefined4 *)(puVar7 + 0x58) = *(undefined4 *)(param_3 + 0x58);
  if (param_2 != iVar2) {
    uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;
    puVar9 = (undefined4 *)(iVar2 + 0xc);
    puVar11 = local_34;
    do {
      uVar1 = *(undefined1 *)(puVar9 + -3);
      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;
      *puVar11 = uVar1;
      if ((undefined4 *)puVar9[-2] == puVar9) {
        *(undefined4 *)(puVar11 + 0xc) = *puVar9;
        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];
        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];
        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];
      }
      else {
        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];
        *(undefined4 *)(puVar11 + 0xc) = *puVar9;
      }
      *(undefined4 *)(puVar11 + 8) = puVar9[-1];
      puVar9[-2] = puVar9;
      puVar9[-1] = 0;
      *(undefined1 *)puVar9 = 0;
      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];
      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;
      if ((undefined4 *)puVar9[5] == puVar9 + 7) {
        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];
        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];
        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];
        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];
      }
      else {
        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];
        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];
      }
      puVar8 = puVar9 + 0x17;
      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];
      puVar9[5] = puVar9 + 7;
      puVar9[6] = 0;
      *(undefined1 *)(puVar9 + 7) = 0;
      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);
      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];
      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];
      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];
      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];
      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];
      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];
      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];
      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];
      puVar9 = puVar8;
      puVar11 = puVar11 + 0x5c;
    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));
    local_2c = local_34 + (uVar10 + 2) * 0x5c;
  }
  iVar6 = iVar2;
  if (param_2 != iVar3) {
    uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;
    puVar9 = (undefined4 *)(param_2 + 0xc);
    puVar11 = local_2c;
    do {
      uVar1 = *(undefined1 *)(puVar9 + -3);
      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;
      *puVar11 = uVar1;
      if (puVar9 == (undefined4 *)puVar9[-2]) {
        *(undefined4 *)(puVar11 + 0xc) = *puVar9;
        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];
        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];
        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];
      }
      else {
        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];
        *(undefined4 *)(puVar11 + 0xc) = *puVar9;
      }
      uVar4 = puVar9[-1];
      puVar8 = (undefined4 *)puVar9[5];
      puVar9[-2] = puVar9;
      puVar9[-1] = 0;
      *(undefined4 *)(puVar11 + 8) = uVar4;
      *(undefined1 *)puVar9 = 0;
      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];
      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;
      if (puVar8 == puVar9 + 7) {
        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];
        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];
        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];
        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];
      }
      else {
        *(undefined4 **)(puVar11 + 0x20) = puVar8;
        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];
      }
      puVar9[5] = puVar9 + 7;
      puVar8 = puVar9 + 0x17;
      uVar4 = puVar9[6];
      *(undefined1 *)(puVar9 + 7) = 0;
      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);
      puVar9[6] = 0;
      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];
      uVar5 = puVar9[0xd];
      *(undefined4 *)(puVar11 + 0x24) = uVar4;
      *(undefined4 *)(puVar11 + 0x40) = uVar5;
      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];
      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];
      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];
      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];
      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];
      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];
      puVar9 = puVar8;
      puVar11 = puVar11 + 0x5c;
    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));
    local_2c = local_2c + (uVar10 + 1) * 0x5c;
  }
  for (; iVar6 != iVar3; iVar6 = iVar6 + 0x5c) {
    if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {
      FUN_001fd020(*(int *)(iVar6 + 0x20));
    }
    if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {
      FUN_001fd020(*(int *)(iVar6 + 4));
    }
  }
  if (iVar2 != 0) {
    FUN_001fd020(iVar2);
  }
  *param_1 = (int)local_34;
  param_1[1] = (int)local_2c;
  param_1[2] = (int)local_24;
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00036db0
ADD EBX,0x2ac2a7
SUB ESP,0x2c
MOV EAX,dword ptr [ESP + 0x40]
MOV EDI,dword ptr [ESP + 0x44]
MOV ESI,dword ptr [ESP + 0x48]
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x14],EAX
SUB EAX,EDX
SUB EDI,EDX
SAR EAX,0x2
MOV dword ptr [ESP + 0xc],EDX
IMUL EAX,EAX,-0x1642c859
TEST EAX,EAX
JZ 0x000fe1a0
LEA EDX,[EAX + EAX*0x1]
MOV EBP,0xfffffff4
CMP EAX,EDX
JBE 0x000fe170
SUB ESP,0xc
PUSH EBP
CALL 0x001fb470
MOV dword ptr [ESP + 0x18],EAX
ADD EBP,EAX
ADD EAX,0x5c
MOV dword ptr [ESP + 0x28],EBP
MOV dword ptr [ESP + 0x20],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
MOVZX EDX,byte ptr [ESI]
MOV ECX,dword ptr [ESI + 0x4]
ADD EAX,EDI
MOV byte ptr [EAX],DL
LEA EDI,[EAX + 0xc]
LEA EDX,[ESI + 0xc]
MOV dword ptr [EAX + 0x4],EDI
CMP ECX,EDX
JZ 0x000fe1b0
MOV dword ptr [EAX + 0x4],ECX
MOV ECX,dword ptr [ESI + 0xc]
MOV dword ptr [EAX + 0xc],ECX
MOV ECX,dword ptr [ESI + 0x8]
MOV dword ptr [ESI + 0x4],EDX
LEA EDI,[EAX + 0x28]
MOV EDX,dword ptr [ESI + 0x1c]
MOV dword ptr [ESI + 0x8],0x0
MOV dword ptr [EAX + 0x8],ECX
MOV ECX,dword ptr [ESI + 0x20]
MOV dword ptr [EAX + 0x1c],EDX
LEA EDX,[ESI + 0x28]
MOV byte ptr [ESI + 0xc],0x0
MOV dword ptr [EAX + 0x20],EDI
CMP ECX,EDX
JZ 0x000fe1d0
MOV dword ptr [EAX + 0x20],ECX
MOV ECX,dword ptr [ESI + 0x28]
MOV dword ptr [EAX + 0x28],ECX
MOV ECX,dword ptr [ESI + 0x24]
MOV EDI,dword ptr [ESP + 0xc]
MOV dword ptr [ESI + 0x20],EDX
MOVZX EDX,byte ptr [ESI + 0x38]
MOV dword ptr [ESI + 0x24],0x0
MOV dword ptr [EAX + 0x24],ECX
MOV byte ptr [EAX + 0x38],DL
MOV EDX,dword ptr [ESI + 0x3c]
MOV byte ptr [ESI + 0x28],0x0
MOV dword ptr [EAX + 0x3c],EDX
MOV EDX,dword ptr [ESI + 0x40]
MOV dword ptr [EAX + 0x40],EDX
MOV EDX,dword ptr [ESI + 0x44]
MOV dword ptr [EAX + 0x44],EDX
MOV EDX,dword ptr [ESI + 0x48]
MOV dword ptr [EAX + 0x48],EDX
MOV EDX,dword ptr [ESI + 0x4c]
MOV dword ptr [EAX + 0x4c],EDX
MOV EDX,dword ptr [ESI + 0x50]
MOV dword ptr [EAX + 0x50],EDX
MOV EDX,dword ptr [ESI + 0x54]
MOV dword ptr [EAX + 0x54],EDX
MOV EDX,dword ptr [ESI + 0x58]
MOV dword ptr [EAX + 0x58],EDX
CMP dword ptr [ESP + 0x44],EDI
JZ 0x000fdfa2
MOV ESI,dword ptr [ESP + 0x44]
LEA EAX,[EDI + 0xc]
LEA EDX,[ESI + -0x5c]
SUB EDX,EDI
SHR EDX,0x2
IMUL EDX,EDX,0x29bd37a7
AND EDX,0x3fffffff
MOV dword ptr [ESP + 0x10],EDX
IMUL EDX,EDX,0x5c
LEA EBP,[EDI + EDX*0x1 + 0x68]
MOV EDX,dword ptr [ESP + 0x8]
JMP 0x000fdf3b
MOV dword ptr [EDX + 0x4],ECX
MOV ECX,dword ptr [EAX]
MOV dword ptr [EDX + 0xc],ECX
MOV ECX,dword ptr [EAX + -0x4]
LEA EDI,[EDX + 0x28]
MOV dword ptr [EDX + 0x8],ECX
MOV ECX,dword ptr [EAX + 0x10]
MOV dword ptr [EAX + -0x8],EAX
MOV dword ptr [EAX + -0x4],0x0
MOV byte ptr [EAX],0x0
MOV dword ptr [EDX + 0x1c],ECX
LEA ECX,[EAX + 0x1c]
MOV dword ptr [EDX + 0x20],EDI
MOV ESI,dword ptr [EAX + 0x14]
CMP ESI,ECX
JZ 0x000fdf70
MOV dword ptr [EDX + 0x20],ESI
MOV ESI,dword ptr [EAX + 0x1c]
MOV dword ptr [EDX + 0x28],ESI
MOV ESI,dword ptr [EAX + 0x18]
ADD EAX,0x5c
ADD EDX,0x5c
MOV dword ptr [EDX + -0x38],ESI
MOV dword ptr [EAX + -0x48],ECX
MOVZX ECX,byte ptr [EAX + -0x30]
MOV dword ptr [EAX + -0x44],0x0
MOV byte ptr [EAX + -0x40],0x0
MOV byte ptr [EDX + -0x24],CL
MOV ECX,dword ptr [EAX + -0x2c]
MOV dword ptr [EDX + -0x20],ECX
MOV ECX,dword ptr [EAX + -0x28]
MOV dword ptr [EDX + -0x1c],ECX
MOV ECX,dword ptr [EAX + -0x24]
MOV dword ptr [EDX + -0x18],ECX
MOV ECX,dword ptr [EAX + -0x20]
MOV dword ptr [EDX + -0x14],ECX
MOV ECX,dword ptr [EAX + -0x1c]
MOV dword ptr [EDX + -0x10],ECX
MOV ECX,dword ptr [EAX + -0x18]
MOV dword ptr [EDX + -0xc],ECX
MOV ECX,dword ptr [EAX + -0x14]
MOV dword ptr [EDX + -0x8],ECX
MOV ECX,dword ptr [EAX + -0x10]
MOV dword ptr [EDX + -0x4],ECX
CMP EAX,EBP
JZ 0x000fdf90
MOVZX ECX,byte ptr [EAX + -0xc]
LEA ESI,[EDX + 0xc]
MOV dword ptr [EDX + 0x4],ESI
MOV byte ptr [EDX],CL
MOV ECX,dword ptr [EAX + -0x8]
CMP ECX,EAX
JNZ 0x000fdea8
MOV ECX,dword ptr [EAX]
MOV dword ptr [EDX + 0xc],ECX
MOV ECX,dword ptr [EAX + 0x4]
MOV dword ptr [EDX + 0x10],ECX
MOV ECX,dword ptr [EAX + 0x8]
MOV dword ptr [EDX + 0x14],ECX
MOV ECX,dword ptr [EAX + 0xc]
MOV dword ptr [EDX + 0x18],ECX
JMP 0x000fdeb0
MOV ESI,dword ptr [EAX + 0x1c]
MOV dword ptr [EDX + 0x28],ESI
MOV ESI,dword ptr [ECX + 0x4]
MOV dword ptr [EDX + 0x2c],ESI
MOV ESI,dword ptr [ECX + 0x8]
MOV dword ptr [EDX + 0x30],ESI
MOV ESI,dword ptr [ECX + 0xc]
MOV dword ptr [EDX + 0x34],ESI
JMP 0x000fdee6
MOV EAX,dword ptr [ESP + 0x10]
ADD EAX,0x2
IMUL EAX,EAX,0x5c
ADD EAX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x10],EAX
MOV EDI,dword ptr [ESP + 0x14]
CMP dword ptr [ESP + 0x44],EDI
JZ 0x000fe0ee
SUB EDI,dword ptr [ESP + 0x44]
MOV EAX,dword ptr [ESP + 0x44]
MOV EDX,EDI
MOV EDI,dword ptr [ESP + 0x44]
SUB EDX,0x5c
ADD EAX,0xc
SHR EDX,0x2
IMUL EDX,EDX,0x29bd37a7
AND EDX,0x3fffffff
MOV dword ptr [ESP + 0x1c],EDX
IMUL EDX,EDX,0x5c
LEA EBP,[EDI + EDX*0x1 + 0x68]
MOV EDX,dword ptr [ESP + 0x10]
JMP 0x000fe083
MOV dword ptr [EDX + 0x4],ECX
MOV ECX,dword ptr [EAX]
MOV dword ptr [EDX + 0xc],ECX
MOV ECX,dword ptr [EAX + -0x4]
MOV ESI,dword ptr [EAX + 0x14]
LEA EDI,[EDX + 0x28]
MOV dword ptr [EAX + -0x8],EAX
MOV dword ptr [EAX + -0x4],0x0
MOV dword ptr [EDX + 0x8],ECX
MOV ECX,dword ptr [EAX + 0x10]
MOV byte ptr [EAX],0x0
MOV dword ptr [EDX + 0x1c],ECX
LEA ECX,[EAX + 0x1c]
MOV dword ptr [EDX + 0x20],EDI
CMP ESI,ECX
JZ 0x000fe0c0
MOV dword ptr [EDX + 0x20],ESI
MOV ESI,dword ptr [EAX + 0x1c]
MOV dword ptr [EDX + 0x28],ESI
MOV dword ptr [EAX + 0x14],ECX
MOVZX ECX,byte ptr [EAX + 0x2c]
ADD EAX,0x5c
ADD EDX,0x5c
MOV ESI,dword ptr [EAX + -0x44]
MOV byte ptr [EAX + -0x40],0x0
MOV byte ptr [EDX + -0x24],CL
MOV ECX,dword ptr [EAX + -0x2c]
MOV dword ptr [EAX + -0x44],0x0
MOV dword ptr [EDX + -0x20],ECX
MOV ECX,dword ptr [EAX + -0x28]
MOV dword ptr [EDX + -0x38],ESI
MOV dword ptr [EDX + -0x1c],ECX
MOV ECX,dword ptr [EAX + -0x24]
MOV dword ptr [EDX + -0x18],ECX
MOV ECX,dword ptr [EAX + -0x20]
MOV dword ptr [EDX + -0x14],ECX
MOV ECX,dword ptr [EAX + -0x1c]
MOV dword ptr [EDX + -0x10],ECX
MOV ECX,dword ptr [EAX + -0x18]
MOV dword ptr [EDX + -0xc],ECX
MOV ECX,dword ptr [EAX + -0x14]
MOV dword ptr [EDX + -0x8],ECX
MOV ECX,dword ptr [EAX + -0x10]
MOV dword ptr [EDX + -0x4],ECX
CMP EAX,EBP
JZ 0x000fe0e0
MOVZX ECX,byte ptr [EAX + -0xc]
LEA ESI,[EDX + 0xc]
MOV dword ptr [EDX + 0x4],ESI
MOV byte ptr [EDX],CL
MOV ECX,dword ptr [EAX + -0x8]
CMP EAX,ECX
JNZ 0x000fdff0
MOV ECX,dword ptr [EAX]
MOV dword ptr [EDX + 0xc],ECX
MOV ECX,dword ptr [EAX + 0x4]
MOV dword ptr [EDX + 0x10],ECX
MOV ECX,dword ptr [EAX + 0x8]
MOV dword ptr [EDX + 0x14],ECX
MOV ECX,dword ptr [EAX + 0xc]
MOV dword ptr [EDX + 0x18],ECX
JMP 0x000fdff8
MOV ESI,dword ptr [EAX + 0x1c]
MOV dword ptr [EDX + 0x28],ESI
MOV ESI,dword ptr [ECX + 0x4]
MOV dword ptr [EDX + 0x2c],ESI
MOV ESI,dword ptr [ECX + 0x8]
MOV dword ptr [EDX + 0x30],ESI
MOV ESI,dword ptr [ECX + 0xc]
MOV dword ptr [EDX + 0x34],ESI
JMP 0x000fe02e
MOV EAX,dword ptr [ESP + 0x1c]
ADD EAX,0x1
IMUL EAX,EAX,0x5c
ADD dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0xc]
MOV EDI,dword ptr [ESP + 0x14]
MOV ESI,EAX
CMP EAX,EDI
JZ 0x000fe133
MOV EDI,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [ESI + 0x20]
LEA EDX,[ESI + 0x28]
CMP EAX,EDX
JZ 0x000fe116
SUB ESP,0xc
PUSH EAX
CALL 0x001fd020
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x4]
LEA EDX,[ESI + 0xc]
CMP EAX,EDX
JZ 0x000fe12c
SUB ESP,0xc
PUSH EAX
CALL 0x001fd020
ADD ESP,0x10
ADD ESI,0x5c
CMP ESI,EDI
JNZ 0x000fe100
MOV EAX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x000fe14a
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
CALL 0x001fd020
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x40]
MOV EBX,dword ptr [ESP + 0x8]
MOV dword ptr [EAX],EBX
MOV EBX,dword ptr [ESP + 0x10]
MOV dword ptr [EAX + 0x4],EBX
MOV EBX,dword ptr [ESP + 0x18]
MOV dword ptr [EAX + 0x8],EBX
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP EDX,0x2c8590b
JA 0x000fdda0
TEST EDX,EDX
JNZ 0x000fe1a5
MOV dword ptr [ESP + 0x10],0x5c
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0x8],0x0
JMP 0x000fddbd
MOV EDX,0x1
IMUL EBP,EDX,0x5c
JMP 0x000fdda0
MOV ECX,dword ptr [ESI + 0xc]
MOV dword ptr [EAX + 0xc],ECX
MOV ECX,dword ptr [EDX + 0x4]
MOV dword ptr [EAX + 0x10],ECX
MOV ECX,dword ptr [EDX + 0x8]
MOV dword ptr [EAX + 0x14],ECX
MOV ECX,dword ptr [EDX + 0xc]
MOV dword ptr [EAX + 0x18],ECX
JMP 0x000fdde5
MOV ECX,dword ptr [ESI + 0x28]
MOV dword ptr [EAX + 0x28],ECX
MOV ECX,dword ptr [EDX + 0x4]
MOV dword ptr [EAX + 0x2c],ECX
MOV ECX,dword ptr [EDX + 0x8]
MOV dword ptr [EAX + 0x30],ECX
MOV ECX,dword ptr [EDX + 0xc]
MOV dword ptr [EAX + 0x34],ECX
JMP 0x000fde1c
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000fdd50(int *param_1,int param_2,undefined1 *param_3)\n\n{\n  undefined1 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined1 *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  undefined1 *local_34;\n  undefined1 *local_2c;\n  undefined1 *local_24;\n  \n  iVar2 = *param_1;\n  iVar3 = param_1[1];\n  iVar6 = iVar3 - iVar2 >> 2;\n  if (iVar6 * -0x1642c859 == 0) {\n    uVar10 = 1;\nLAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;\n  }\n  else {\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }\n  local_34 = (undefined1 *)FUN_001fb470(iVar12);\n  local_24 = local_34 + iVar12;\n  local_2c = local_34 + 0x5c;\nLAB_000fddbd:\n  puVar11 = *(undefined1 **)(param_3 + 4);\n  puVar7 = local_34 + (param_2 - iVar2);\n  *puVar7 = *param_3;\n  *(undefined1 **)(puVar7 + 4) = puVar7 + 0xc;\n  if (puVar11 == param_3 + 0xc) {\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n    *(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);\n    *(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);\n    *(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }\n  uVar4 = *(undefined4 *)(param_3 + 8);\n  *(undefined1 **)(param_3 + 4) = param_3 + 0xc;\n  uVar5 = *(undefined4 *)(param_3 + 0x1c);\n  *(undefined4 *)(param_3 + 8) = 0;\n  *(undefined4 *)(puVar7 + 8) = uVar4;\n  puVar11 = *(undefined1 **)(param_3 + 0x20);\n  *(undefined4 *)(puVar7 + 0x1c) = uVar5;\n  param_3[0xc] = 0;\n  *(undefined1 **)(puVar7 + 0x20) = puVar7 + 0x28;\n  if (puVar11 == param_3 + 0x28) {\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n    *(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);\n    *(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }\n  uVar4 = *(undefined4 *)(param_3 + 0x24);\n  *(undefined1 **)(param_3 + 0x20) = param_3 + 0x28;\n  uVar1 = param_3[0x38];\n  *(undefined4 *)(param_3 + 0x24) = 0;\n  *(undefined4 *)(puVar7 + 0x24) = uVar4;\n  puVar7[0x38] = uVar1;\n  param_3[0x28] = 0;\n  *(undefined4 *)(puVar7 + 0x3c) = *(undefined4 *)(param_3 + 0x3c);\n  *(undefined4 *)(puVar7 + 0x40) = *(undefined4 *)(param_3 + 0x40);\n  *(undefined4 *)(puVar7 + 0x44) = *(undefined4 *)(param_3 + 0x44);\n  *(undefined4 *)(puVar7 + 0x48) = *(undefined4 *)(param_3 + 0x48);\n  *(undefined4 *)(puVar7 + 0x4c) = *(undefined4 *)(param_3 + 0x4c);\n  *(undefined4 *)(puVar7 + 0x50) = *(undefined4 *)(param_3 + 0x50);\n  *(undefined4 *)(puVar7 + 0x54) = *(undefined4 *)(param_3 + 0x54);\n  *(undefined4 *)(puVar7 + 0x58) = *(undefined4 *)(param_3 + 0x58);\n  if (param_2 != iVar2) {\n    uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(iVar2 + 0xc);\n    puVar11 = local_34;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_34 + (uVar10 + 2) * 0x5c;\n  }\n  iVar6 = iVar2;\n  if (param_2 != iVar3) {\n    uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(param_2 + 0xc);\n    puVar11 = local_2c;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_2c + (uVar10 + 1) * 0x5c;\n  }\n  for (; iVar6 != iVar3; iVar6 = iVar6 + 0x5c) {\n    if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }\n    if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }\n  }\n  if (iVar2 != 0) {\n    FUN_001fd020(iVar2);\n  }\n  *param_1 = (int)local_34;\n  param_1[1] = (int)local_2c;\n  param_1[2] = (int)local_24;\n  return;\n}\n\n" comment (function_definition "void FUN_000fdd50(int *param_1,int param_2,undefined1 *param_3)\n\n{\n  undefined1 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined1 *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  undefined1 *local_34;\n  undefined1 *local_2c;\n  undefined1 *local_24;\n  \n  iVar2 = *param_1;\n  iVar3 = param_1[1];\n  iVar6 = iVar3 - iVar2 >> 2;\n  if (iVar6 * -0x1642c859 == 0) {\n    uVar10 = 1;\nLAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;\n  }\n  else {\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }\n  local_34 = (undefined1 *)FUN_001fb470(iVar12);\n  local_24 = local_34 + iVar12;\n  local_2c = local_34 + 0x5c;\nLAB_000fddbd:\n  puVar11 = *(undefined1 **)(param_3 + 4);\n  puVar7 = local_34 + (param_2 - iVar2);\n  *puVar7 = *param_3;\n  *(undefined1 **)(puVar7 + 4) = puVar7 + 0xc;\n  if (puVar11 == param_3 + 0xc) {\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n    *(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);\n    *(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);\n    *(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }\n  uVar4 = *(undefined4 *)(param_3 + 8);\n  *(undefined1 **)(param_3 + 4) = param_3 + 0xc;\n  uVar5 = *(undefined4 *)(param_3 + 0x1c);\n  *(undefined4 *)(param_3 + 8) = 0;\n  *(undefined4 *)(puVar7 + 8) = uVar4;\n  puVar11 = *(undefined1 **)(param_3 + 0x20);\n  *(undefined4 *)(puVar7 + 0x1c) = uVar5;\n  param_3[0xc] = 0;\n  *(undefined1 **)(puVar7 + 0x20) = puVar7 + 0x28;\n  if (puVar11 == param_3 + 0x28) {\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n    *(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);\n    *(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }\n  uVar4 = *(undefined4 *)(param_3 + 0x24);\n  *(undefined1 **)(param_3 + 0x20) = param_3 + 0x28;\n  uVar1 = param_3[0x38];\n  *(undefined4 *)(param_3 + 0x24) = 0;\n  *(undefined4 *)(puVar7 + 0x24) = uVar4;\n  puVar7[0x38] = uVar1;\n  param_3[0x28] = 0;\n  *(undefined4 *)(puVar7 + 0x3c) = *(undefined4 *)(param_3 + 0x3c);\n  *(undefined4 *)(puVar7 + 0x40) = *(undefined4 *)(param_3 + 0x40);\n  *(undefined4 *)(puVar7 + 0x44) = *(undefined4 *)(param_3 + 0x44);\n  *(undefined4 *)(puVar7 + 0x48) = *(undefined4 *)(param_3 + 0x48);\n  *(undefined4 *)(puVar7 + 0x4c) = *(undefined4 *)(param_3 + 0x4c);\n  *(undefined4 *)(puVar7 + 0x50) = *(undefined4 *)(param_3 + 0x50);\n  *(undefined4 *)(puVar7 + 0x54) = *(undefined4 *)(param_3 + 0x54);\n  *(undefined4 *)(puVar7 + 0x58) = *(undefined4 *)(param_3 + 0x58);\n  if (param_2 != iVar2) {\n    uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(iVar2 + 0xc);\n    puVar11 = local_34;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_34 + (uVar10 + 2) * 0x5c;\n  }\n  iVar6 = iVar2;\n  if (param_2 != iVar3) {\n    uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(param_2 + 0xc);\n    puVar11 = local_2c;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_2c + (uVar10 + 1) * 0x5c;\n  }\n  for (; iVar6 != iVar3; iVar6 = iVar6 + 0x5c) {\n    if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }\n    if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }\n  }\n  if (iVar2 != 0) {\n    FUN_001fd020(iVar2);\n  }\n  *param_1 = (int)local_34;\n  param_1[1] = (int)local_2c;\n  param_1[2] = (int)local_24;\n  return;\n}" primitive_type (function_declarator "FUN_000fdd50(int *param_1,int param_2,undefined1 *param_3)" identifier (parameter_list "(int *param_1,int param_2,undefined1 *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined1 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  undefined1 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined1 *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  undefined1 *local_34;\n  undefined1 *local_2c;\n  undefined1 *local_24;\n  \n  iVar2 = *param_1;\n  iVar3 = param_1[1];\n  iVar6 = iVar3 - iVar2 >> 2;\n  if (iVar6 * -0x1642c859 == 0) {\n    uVar10 = 1;\nLAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;\n  }\n  else {\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }\n  local_34 = (undefined1 *)FUN_001fb470(iVar12);\n  local_24 = local_34 + iVar12;\n  local_2c = local_34 + 0x5c;\nLAB_000fddbd:\n  puVar11 = *(undefined1 **)(param_3 + 4);\n  puVar7 = local_34 + (param_2 - iVar2);\n  *puVar7 = *param_3;\n  *(undefined1 **)(puVar7 + 4) = puVar7 + 0xc;\n  if (puVar11 == param_3 + 0xc) {\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n    *(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);\n    *(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);\n    *(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }\n  uVar4 = *(undefined4 *)(param_3 + 8);\n  *(undefined1 **)(param_3 + 4) = param_3 + 0xc;\n  uVar5 = *(undefined4 *)(param_3 + 0x1c);\n  *(undefined4 *)(param_3 + 8) = 0;\n  *(undefined4 *)(puVar7 + 8) = uVar4;\n  puVar11 = *(undefined1 **)(param_3 + 0x20);\n  *(undefined4 *)(puVar7 + 0x1c) = uVar5;\n  param_3[0xc] = 0;\n  *(undefined1 **)(puVar7 + 0x20) = puVar7 + 0x28;\n  if (puVar11 == param_3 + 0x28) {\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n    *(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);\n    *(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }\n  uVar4 = *(undefined4 *)(param_3 + 0x24);\n  *(undefined1 **)(param_3 + 0x20) = param_3 + 0x28;\n  uVar1 = param_3[0x38];\n  *(undefined4 *)(param_3 + 0x24) = 0;\n  *(undefined4 *)(puVar7 + 0x24) = uVar4;\n  puVar7[0x38] = uVar1;\n  param_3[0x28] = 0;\n  *(undefined4 *)(puVar7 + 0x3c) = *(undefined4 *)(param_3 + 0x3c);\n  *(undefined4 *)(puVar7 + 0x40) = *(undefined4 *)(param_3 + 0x40);\n  *(undefined4 *)(puVar7 + 0x44) = *(undefined4 *)(param_3 + 0x44);\n  *(undefined4 *)(puVar7 + 0x48) = *(undefined4 *)(param_3 + 0x48);\n  *(undefined4 *)(puVar7 + 0x4c) = *(undefined4 *)(param_3 + 0x4c);\n  *(undefined4 *)(puVar7 + 0x50) = *(undefined4 *)(param_3 + 0x50);\n  *(undefined4 *)(puVar7 + 0x54) = *(undefined4 *)(param_3 + 0x54);\n  *(undefined4 *)(puVar7 + 0x58) = *(undefined4 *)(param_3 + 0x58);\n  if (param_2 != iVar2) {\n    uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(iVar2 + 0xc);\n    puVar11 = local_34;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_34 + (uVar10 + 2) * 0x5c;\n  }\n  iVar6 = iVar2;\n  if (param_2 != iVar3) {\n    uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(param_2 + 0xc);\n    puVar11 = local_2c;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_2c + (uVar10 + 1) * 0x5c;\n  }\n  for (; iVar6 != iVar3; iVar6 = iVar6 + 0x5c) {\n    if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }\n    if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }\n  }\n  if (iVar2 != 0) {\n    FUN_001fd020(iVar2);\n  }\n  *param_1 = (int)local_34;\n  param_1[1] = (int)local_2c;\n  param_1[2] = (int)local_24;\n  return;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined1 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "undefined1 *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (expression_statement "iVar2 = *param_1;" (assignment_expression "iVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar3 = param_1[1];" (assignment_expression "iVar3 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = iVar3 - iVar2 >> 2;" (assignment_expression "iVar6 = iVar3 - iVar2 >> 2" identifier = (binary_expression "iVar3 - iVar2 >> 2" (binary_expression "iVar3 - iVar2" identifier - identifier) >> number_literal)) ;) (if_statement "if (iVar6 * -0x1642c859 == 0) {\n    uVar10 = 1;\nLAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;\n  }\n  else {\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }" if (parenthesized_expression "(iVar6 * -0x1642c859 == 0)" ( (binary_expression "iVar6 * -0x1642c859 == 0" (binary_expression "iVar6 * -0x1642c859" identifier * number_literal) == number_literal) )) (compound_statement "{\n    uVar10 = 1;\nLAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;\n  }" { (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;" statement_identifier : (expression_statement "iVar12 = uVar10 * 0x5c;" (assignment_expression "iVar12 = uVar10 * 0x5c" identifier = (binary_expression "uVar10 * 0x5c" identifier * number_literal)) ;)) }) (else_clause "else {\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }" else (compound_statement "{\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }" { (expression_statement "uVar10 = iVar6 * -0x2c8590b2;" (assignment_expression "uVar10 = iVar6 * -0x2c8590b2" identifier = (binary_expression "iVar6 * -0x2c8590b2" identifier * number_literal)) ;) (expression_statement "iVar12 = -0xc;" (assignment_expression "iVar12 = -0xc" identifier = number_literal) ;) (if_statement "if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }" if (parenthesized_expression "(((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c))" ( (binary_expression "((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)" (parenthesized_expression "((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0)" ( (binary_expression "(uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0" (binary_expression "(uint)(iVar6 * -0x1642c859) < uVar10" (call_expression "(uint)(iVar6 * -0x1642c859)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 * -0x1642c859)" ( (binary_expression "iVar6 * -0x1642c859" identifier * number_literal) ))) < identifier) || (binary_expression "iVar6 * 0x1642c859 == 0" (binary_expression "iVar6 * 0x1642c859" identifier * number_literal) == number_literal)) )) && (parenthesized_expression "(uVar10 < 0x2c8590c)" ( (binary_expression "uVar10 < 0x2c8590c" identifier < number_literal) ))) )) (compound_statement "{\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }" { (if_statement "if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }" { (expression_statement "local_2c = (undefined1 *)0x5c;" (assignment_expression "local_2c = (undefined1 *)0x5c" identifier = (cast_expression "(undefined1 *)0x5c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_24 = (undefined1 *)0x0;" (assignment_expression "local_24 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = (undefined1 *)0x0;" (assignment_expression "local_34 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000fddbd;" goto statement_identifier ;) })) (goto_statement "goto LAB_000fe1a5;" goto statement_identifier ;) })) }))) (expression_statement "local_34 = (undefined1 *)FUN_001fb470(iVar12);" (assignment_expression "local_34 = (undefined1 *)FUN_001fb470(iVar12)" identifier = (cast_expression "(undefined1 *)FUN_001fb470(iVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001fb470(iVar12)" identifier (argument_list "(iVar12)" ( identifier ))))) ;) (expression_statement "local_24 = local_34 + iVar12;" (assignment_expression "local_24 = local_34 + iVar12" identifier = (binary_expression "local_34 + iVar12" identifier + identifier)) ;) (expression_statement "local_2c = local_34 + 0x5c;" (assignment_expression "local_2c = local_34 + 0x5c" identifier = (binary_expression "local_34 + 0x5c" identifier + number_literal)) ;) (labeled_statement "LAB_000fddbd:\n  puVar11 = *(undefined1 **)(param_3 + 4);" statement_identifier : (expression_statement "puVar11 = *(undefined1 **)(param_3 + 4);" (assignment_expression "puVar11 = *(undefined1 **)(param_3 + 4)" identifier = (pointer_expression "*(undefined1 **)(param_3 + 4)" * (cast_expression "(undefined1 **)(param_3 + 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) ;)) (expression_statement "puVar7 = local_34 + (param_2 - iVar2);" (assignment_expression "puVar7 = local_34 + (param_2 - iVar2)" identifier = (binary_expression "local_34 + (param_2 - iVar2)" identifier + (parenthesized_expression "(param_2 - iVar2)" ( (binary_expression "param_2 - iVar2" identifier - identifier) )))) ;) (expression_statement "*puVar7 = *param_3;" (assignment_expression "*puVar7 = *param_3" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "*(undefined1 **)(puVar7 + 4) = puVar7 + 0xc;" (assignment_expression "*(undefined1 **)(puVar7 + 4) = puVar7 + 0xc" (pointer_expression "*(undefined1 **)(puVar7 + 4)" * (cast_expression "(undefined1 **)(puVar7 + 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = (binary_expression "puVar7 + 0xc" identifier + number_literal)) ;) (if_statement "if (puVar11 == param_3 + 0xc) {\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n    *(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);\n    *(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);\n    *(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }" if (parenthesized_expression "(puVar11 == param_3 + 0xc)" ( (binary_expression "puVar11 == param_3 + 0xc" identifier == (binary_expression "param_3 + 0xc" identifier + number_literal)) )) (compound_statement "{\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n    *(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);\n    *(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);\n    *(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);\n  }" { (expression_statement "*(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);" (assignment_expression "*(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc)" (pointer_expression "*(undefined4 *)(puVar7 + 0xc)" * (cast_expression "(undefined4 *)(puVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xc)" ( (binary_expression "puVar7 + 0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0xc)" * (cast_expression "(undefined4 *)(param_3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xc)" ( (binary_expression "param_3 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);" (assignment_expression "*(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10)" (pointer_expression "*(undefined4 *)(puVar7 + 0x10)" * (cast_expression "(undefined4 *)(puVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x10)" ( (binary_expression "puVar7 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x10)" * (cast_expression "(undefined4 *)(param_3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);" (assignment_expression "*(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14)" (pointer_expression "*(undefined4 *)(puVar7 + 0x14)" * (cast_expression "(undefined4 *)(puVar7 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x14)" ( (binary_expression "puVar7 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x14)" * (cast_expression "(undefined4 *)(param_3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x14)" ( (binary_expression "param_3 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);" (assignment_expression "*(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18)" (pointer_expression "*(undefined4 *)(puVar7 + 0x18)" * (cast_expression "(undefined4 *)(puVar7 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x18)" ( (binary_expression "puVar7 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x18)" * (cast_expression "(undefined4 *)(param_3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x18)" ( (binary_expression "param_3 + 0x18" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }" else (compound_statement "{\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }" { (expression_statement "*(undefined1 **)(puVar7 + 4) = puVar11;" (assignment_expression "*(undefined1 **)(puVar7 + 4) = puVar11" (pointer_expression "*(undefined1 **)(puVar7 + 4)" * (cast_expression "(undefined1 **)(puVar7 + 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);" (assignment_expression "*(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc)" (pointer_expression "*(undefined4 *)(puVar7 + 0xc)" * (cast_expression "(undefined4 *)(puVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xc)" ( (binary_expression "puVar7 + 0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0xc)" * (cast_expression "(undefined4 *)(param_3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xc)" ( (binary_expression "param_3 + 0xc" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar4 = *(undefined4 *)(param_3 + 8);" (assignment_expression "uVar4 = *(undefined4 *)(param_3 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_3 + 8)" * (cast_expression "(undefined4 *)(param_3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(param_3 + 4) = param_3 + 0xc;" (assignment_expression "*(undefined1 **)(param_3 + 4) = param_3 + 0xc" (pointer_expression "*(undefined1 **)(param_3 + 4)" * (cast_expression "(undefined1 **)(param_3 + 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) = (binary_expression "param_3 + 0xc" identifier + number_literal)) ;) (expression_statement "uVar5 = *(undefined4 *)(param_3 + 0x1c);" (assignment_expression "uVar5 = *(undefined4 *)(param_3 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(param_3 + 0x1c)" * (cast_expression "(undefined4 *)(param_3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_3 + 8) = 0;" (assignment_expression "*(undefined4 *)(param_3 + 8) = 0" (pointer_expression "*(undefined4 *)(param_3 + 8)" * (cast_expression "(undefined4 *)(param_3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(puVar7 + 8) = uVar4" (pointer_expression "*(undefined4 *)(puVar7 + 8)" * (cast_expression "(undefined4 *)(puVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = *(undefined1 **)(param_3 + 0x20);" (assignment_expression "puVar11 = *(undefined1 **)(param_3 + 0x20)" identifier = (pointer_expression "*(undefined1 **)(param_3 + 0x20)" * (cast_expression "(undefined1 **)(param_3 + 0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x1c) = uVar5;" (assignment_expression "*(undefined4 *)(puVar7 + 0x1c) = uVar5" (pointer_expression "*(undefined4 *)(puVar7 + 0x1c)" * (cast_expression "(undefined4 *)(puVar7 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x1c)" ( (binary_expression "puVar7 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_3[0xc] = 0;" (assignment_expression "param_3[0xc] = 0" (subscript_expression "param_3[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar7 + 0x20) = puVar7 + 0x28;" (assignment_expression "*(undefined1 **)(puVar7 + 0x20) = puVar7 + 0x28" (pointer_expression "*(undefined1 **)(puVar7 + 0x20)" * (cast_expression "(undefined1 **)(puVar7 + 0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x20)" ( (binary_expression "puVar7 + 0x20" identifier + number_literal) )))) = (binary_expression "puVar7 + 0x28" identifier + number_literal)) ;) (if_statement "if (puVar11 == param_3 + 0x28) {\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n    *(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);\n    *(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }" if (parenthesized_expression "(puVar11 == param_3 + 0x28)" ( (binary_expression "puVar11 == param_3 + 0x28" identifier == (binary_expression "param_3 + 0x28" identifier + number_literal)) )) (compound_statement "{\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n    *(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);\n    *(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);\n  }" { (expression_statement "*(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);" (assignment_expression "*(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28)" (pointer_expression "*(undefined4 *)(puVar7 + 0x28)" * (cast_expression "(undefined4 *)(puVar7 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x28)" ( (binary_expression "puVar7 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x28)" * (cast_expression "(undefined4 *)(param_3 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);" (assignment_expression "*(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c)" (pointer_expression "*(undefined4 *)(puVar7 + 0x2c)" * (cast_expression "(undefined4 *)(puVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2c)" ( (binary_expression "puVar7 + 0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x2c)" * (cast_expression "(undefined4 *)(param_3 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2c)" ( (binary_expression "param_3 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);" (assignment_expression "*(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30)" (pointer_expression "*(undefined4 *)(puVar7 + 0x30)" * (cast_expression "(undefined4 *)(puVar7 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x30)" ( (binary_expression "puVar7 + 0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x30)" * (cast_expression "(undefined4 *)(param_3 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x30)" ( (binary_expression "param_3 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);" (assignment_expression "*(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34)" (pointer_expression "*(undefined4 *)(puVar7 + 0x34)" * (cast_expression "(undefined4 *)(puVar7 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x34)" ( (binary_expression "puVar7 + 0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x34)" * (cast_expression "(undefined4 *)(param_3 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x34)" ( (binary_expression "param_3 + 0x34" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }" else (compound_statement "{\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }" { (expression_statement "*(undefined1 **)(puVar7 + 0x20) = puVar11;" (assignment_expression "*(undefined1 **)(puVar7 + 0x20) = puVar11" (pointer_expression "*(undefined1 **)(puVar7 + 0x20)" * (cast_expression "(undefined1 **)(puVar7 + 0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x20)" ( (binary_expression "puVar7 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);" (assignment_expression "*(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28)" (pointer_expression "*(undefined4 *)(puVar7 + 0x28)" * (cast_expression "(undefined4 *)(puVar7 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x28)" ( (binary_expression "puVar7 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x28)" * (cast_expression "(undefined4 *)(param_3 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar4 = *(undefined4 *)(param_3 + 0x24);" (assignment_expression "uVar4 = *(undefined4 *)(param_3 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(param_3 + 0x24)" * (cast_expression "(undefined4 *)(param_3 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(param_3 + 0x20) = param_3 + 0x28;" (assignment_expression "*(undefined1 **)(param_3 + 0x20) = param_3 + 0x28" (pointer_expression "*(undefined1 **)(param_3 + 0x20)" * (cast_expression "(undefined1 **)(param_3 + 0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) )))) = (binary_expression "param_3 + 0x28" identifier + number_literal)) ;) (expression_statement "uVar1 = param_3[0x38];" (assignment_expression "uVar1 = param_3[0x38]" identifier = (subscript_expression "param_3[0x38]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(param_3 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(param_3 + 0x24) = 0" (pointer_expression "*(undefined4 *)(param_3 + 0x24)" * (cast_expression "(undefined4 *)(param_3 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x24) = uVar4;" (assignment_expression "*(undefined4 *)(puVar7 + 0x24) = uVar4" (pointer_expression "*(undefined4 *)(puVar7 + 0x24)" * (cast_expression "(undefined4 *)(puVar7 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x24)" ( (binary_expression "puVar7 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar7[0x38] = uVar1;" (assignment_expression "puVar7[0x38] = uVar1" (subscript_expression "puVar7[0x38]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[0x28] = 0;" (assignment_expression "param_3[0x28] = 0" (subscript_expression "param_3[0x28]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x3c) = *(undefined4 *)(param_3 + 0x3c);" (assignment_expression "*(undefined4 *)(puVar7 + 0x3c) = *(undefined4 *)(param_3 + 0x3c)" (pointer_expression "*(undefined4 *)(puVar7 + 0x3c)" * (cast_expression "(undefined4 *)(puVar7 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x3c)" ( (binary_expression "puVar7 + 0x3c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x3c)" * (cast_expression "(undefined4 *)(param_3 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3c)" ( (binary_expression "param_3 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x40) = *(undefined4 *)(param_3 + 0x40);" (assignment_expression "*(undefined4 *)(puVar7 + 0x40) = *(undefined4 *)(param_3 + 0x40)" (pointer_expression "*(undefined4 *)(puVar7 + 0x40)" * (cast_expression "(undefined4 *)(puVar7 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x40)" ( (binary_expression "puVar7 + 0x40" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x40)" * (cast_expression "(undefined4 *)(param_3 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x40)" ( (binary_expression "param_3 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x44) = *(undefined4 *)(param_3 + 0x44);" (assignment_expression "*(undefined4 *)(puVar7 + 0x44) = *(undefined4 *)(param_3 + 0x44)" (pointer_expression "*(undefined4 *)(puVar7 + 0x44)" * (cast_expression "(undefined4 *)(puVar7 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x44)" ( (binary_expression "puVar7 + 0x44" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x44)" * (cast_expression "(undefined4 *)(param_3 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x44)" ( (binary_expression "param_3 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x48) = *(undefined4 *)(param_3 + 0x48);" (assignment_expression "*(undefined4 *)(puVar7 + 0x48) = *(undefined4 *)(param_3 + 0x48)" (pointer_expression "*(undefined4 *)(puVar7 + 0x48)" * (cast_expression "(undefined4 *)(puVar7 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x48)" ( (binary_expression "puVar7 + 0x48" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x48)" * (cast_expression "(undefined4 *)(param_3 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x48)" ( (binary_expression "param_3 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x4c) = *(undefined4 *)(param_3 + 0x4c);" (assignment_expression "*(undefined4 *)(puVar7 + 0x4c) = *(undefined4 *)(param_3 + 0x4c)" (pointer_expression "*(undefined4 *)(puVar7 + 0x4c)" * (cast_expression "(undefined4 *)(puVar7 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x4c)" ( (binary_expression "puVar7 + 0x4c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x4c)" * (cast_expression "(undefined4 *)(param_3 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x4c)" ( (binary_expression "param_3 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x50) = *(undefined4 *)(param_3 + 0x50);" (assignment_expression "*(undefined4 *)(puVar7 + 0x50) = *(undefined4 *)(param_3 + 0x50)" (pointer_expression "*(undefined4 *)(puVar7 + 0x50)" * (cast_expression "(undefined4 *)(puVar7 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x50)" ( (binary_expression "puVar7 + 0x50" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x50)" * (cast_expression "(undefined4 *)(param_3 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x50)" ( (binary_expression "param_3 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x54) = *(undefined4 *)(param_3 + 0x54);" (assignment_expression "*(undefined4 *)(puVar7 + 0x54) = *(undefined4 *)(param_3 + 0x54)" (pointer_expression "*(undefined4 *)(puVar7 + 0x54)" * (cast_expression "(undefined4 *)(puVar7 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x54)" ( (binary_expression "puVar7 + 0x54" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x54)" * (cast_expression "(undefined4 *)(param_3 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x54)" ( (binary_expression "param_3 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x58) = *(undefined4 *)(param_3 + 0x58);" (assignment_expression "*(undefined4 *)(puVar7 + 0x58) = *(undefined4 *)(param_3 + 0x58)" (pointer_expression "*(undefined4 *)(puVar7 + 0x58)" * (cast_expression "(undefined4 *)(puVar7 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x58)" ( (binary_expression "puVar7 + 0x58" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x58)" * (cast_expression "(undefined4 *)(param_3 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x58)" ( (binary_expression "param_3 + 0x58" identifier + number_literal) ))))) ;) (if_statement "if (param_2 != iVar2) {\n    uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(iVar2 + 0xc);\n    puVar11 = local_34;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_34 + (uVar10 + 2) * 0x5c;\n  }" if (parenthesized_expression "(param_2 != iVar2)" ( (binary_expression "param_2 != iVar2" identifier != identifier) )) (compound_statement "{\n    uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(iVar2 + 0xc);\n    puVar11 = local_34;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_34 + (uVar10 + 2) * 0x5c;\n  }" { (expression_statement "uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;" (assignment_expression "uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff" identifier = (binary_expression "((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff" (binary_expression "((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7" (parenthesized_expression "((uint)((param_2 + -0x5c) - iVar2) >> 2)" ( (binary_expression "(uint)((param_2 + -0x5c) - iVar2) >> 2" (call_expression "(uint)((param_2 + -0x5c) - iVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2 + -0x5c) - iVar2)" ( (binary_expression "(param_2 + -0x5c) - iVar2" (parenthesized_expression "(param_2 + -0x5c)" ( (binary_expression "param_2 + -0x5c" identifier + number_literal) )) - identifier) ))) >> number_literal) )) * number_literal) & number_literal)) ;) (expression_statement "puVar9 = (undefined4 *)(iVar2 + 0xc);" (assignment_expression "puVar9 = (undefined4 *)(iVar2 + 0xc)" identifier = (cast_expression "(undefined4 *)(iVar2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) ;) (expression_statement "puVar11 = local_34;" (assignment_expression "puVar11 = local_34" identifier = identifier) ;) (do_statement "do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));" do (compound_statement "{\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    }" { (expression_statement "uVar1 = *(undefined1 *)(puVar9 + -3);" (assignment_expression "uVar1 = *(undefined1 *)(puVar9 + -3)" identifier = (pointer_expression "*(undefined1 *)(puVar9 + -3)" * (cast_expression "(undefined1 *)(puVar9 + -3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -3)" ( (binary_expression "puVar9 + -3" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;" (assignment_expression "*(undefined1 **)(puVar11 + 4) = puVar11 + 0xc" (pointer_expression "*(undefined1 **)(puVar11 + 4)" * (cast_expression "(undefined1 **)(puVar11 + 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 4)" ( (binary_expression "puVar11 + 4" identifier + number_literal) )))) = (binary_expression "puVar11 + 0xc" identifier + number_literal)) ;) (expression_statement "*puVar11 = uVar1;" (assignment_expression "*puVar11 = uVar1" (pointer_expression "*puVar11" * identifier) = identifier) ;) (if_statement "if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" if (parenthesized_expression "((undefined4 *)puVar9[-2] == puVar9)" ( (binary_expression "(undefined4 *)puVar9[-2] == puVar9" (cast_expression "(undefined4 *)puVar9[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[-2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }" { (expression_statement "*(undefined4 *)(puVar11 + 0xc) = *puVar9;" (assignment_expression "*(undefined4 *)(puVar11 + 0xc) = *puVar9" (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" * (cast_expression "(undefined4 *)(puVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) )))) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x10) = puVar9[1];" (assignment_expression "*(undefined4 *)(puVar11 + 0x10) = puVar9[1]" (pointer_expression "*(undefined4 *)(puVar11 + 0x10)" * (cast_expression "(undefined4 *)(puVar11 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))) = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x14) = puVar9[2];" (assignment_expression "*(undefined4 *)(puVar11 + 0x14) = puVar9[2]" (pointer_expression "*(undefined4 *)(puVar11 + 0x14)" * (cast_expression "(undefined4 *)(puVar11 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x18) = puVar9[3];" (assignment_expression "*(undefined4 *)(puVar11 + 0x18) = puVar9[3]" (pointer_expression "*(undefined4 *)(puVar11 + 0x18)" * (cast_expression "(undefined4 *)(puVar11 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x18)" ( (binary_expression "puVar11 + 0x18" identifier + number_literal) )))) = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" else (compound_statement "{\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" { (expression_statement "*(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];" (assignment_expression "*(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2]" (pointer_expression "*(undefined4 **)(puVar11 + 4)" * (cast_expression "(undefined4 **)(puVar11 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 4)" ( (binary_expression "puVar11 + 4" identifier + number_literal) )))) = (cast_expression "(undefined4 *)puVar9[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[-2]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(puVar11 + 0xc) = *puVar9;" (assignment_expression "*(undefined4 *)(puVar11 + 0xc) = *puVar9" (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" * (cast_expression "(undefined4 *)(puVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) )))) = (pointer_expression "*puVar9" * identifier)) ;) }))) (expression_statement "*(undefined4 *)(puVar11 + 8) = puVar9[-1];" (assignment_expression "*(undefined4 *)(puVar11 + 8) = puVar9[-1]" (pointer_expression "*(undefined4 *)(puVar11 + 8)" * (cast_expression "(undefined4 *)(puVar11 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar9[-2] = puVar9;" (assignment_expression "puVar9[-2] = puVar9" (subscript_expression "puVar9[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[-1] = 0;" (assignment_expression "puVar9[-1] = 0" (subscript_expression "puVar9[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar9 = 0;" (assignment_expression "*(undefined1 *)puVar9 = 0" (pointer_expression "*(undefined1 *)puVar9" * (cast_expression "(undefined1 *)puVar9" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x1c) = puVar9[4];" (assignment_expression "*(undefined4 *)(puVar11 + 0x1c) = puVar9[4]" (pointer_expression "*(undefined4 *)(puVar11 + 0x1c)" * (cast_expression "(undefined4 *)(puVar11 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x1c)" ( (binary_expression "puVar11 + 0x1c" identifier + number_literal) )))) = (subscript_expression "puVar9[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;" (assignment_expression "*(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28" (pointer_expression "*(undefined1 **)(puVar11 + 0x20)" * (cast_expression "(undefined1 **)(puVar11 + 0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x20)" ( (binary_expression "puVar11 + 0x20" identifier + number_literal) )))) = (binary_expression "puVar11 + 0x28" identifier + number_literal)) ;) (if_statement "if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" if (parenthesized_expression "((undefined4 *)puVar9[5] == puVar9 + 7)" ( (binary_expression "(undefined4 *)puVar9[5] == puVar9 + 7" (cast_expression "(undefined4 *)puVar9[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[5]" identifier [ number_literal ])) == (binary_expression "puVar9 + 7" identifier + number_literal)) )) (compound_statement "{\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }" { (expression_statement "*(undefined4 *)(puVar11 + 0x28) = puVar9[7];" (assignment_expression "*(undefined4 *)(puVar11 + 0x28) = puVar9[7]" (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" * (cast_expression "(undefined4 *)(puVar11 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x28)" ( (binary_expression "puVar11 + 0x28" identifier + number_literal) )))) = (subscript_expression "puVar9[7]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x2c) = puVar9[8];" (assignment_expression "*(undefined4 *)(puVar11 + 0x2c) = puVar9[8]" (pointer_expression "*(undefined4 *)(puVar11 + 0x2c)" * (cast_expression "(undefined4 *)(puVar11 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x2c)" ( (binary_expression "puVar11 + 0x2c" identifier + number_literal) )))) = (subscript_expression "puVar9[8]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x30) = puVar9[9];" (assignment_expression "*(undefined4 *)(puVar11 + 0x30) = puVar9[9]" (pointer_expression "*(undefined4 *)(puVar11 + 0x30)" * (cast_expression "(undefined4 *)(puVar11 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x30)" ( (binary_expression "puVar11 + 0x30" identifier + number_literal) )))) = (subscript_expression "puVar9[9]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x34) = puVar9[10];" (assignment_expression "*(undefined4 *)(puVar11 + 0x34) = puVar9[10]" (pointer_expression "*(undefined4 *)(puVar11 + 0x34)" * (cast_expression "(undefined4 *)(puVar11 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x34)" ( (binary_expression "puVar11 + 0x34" identifier + number_literal) )))) = (subscript_expression "puVar9[10]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" else (compound_statement "{\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" { (expression_statement "*(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];" (assignment_expression "*(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5]" (pointer_expression "*(undefined4 **)(puVar11 + 0x20)" * (cast_expression "(undefined4 **)(puVar11 + 0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x20)" ( (binary_expression "puVar11 + 0x20" identifier + number_literal) )))) = (cast_expression "(undefined4 *)puVar9[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[5]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x28) = puVar9[7];" (assignment_expression "*(undefined4 *)(puVar11 + 0x28) = puVar9[7]" (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" * (cast_expression "(undefined4 *)(puVar11 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x28)" ( (binary_expression "puVar11 + 0x28" identifier + number_literal) )))) = (subscript_expression "puVar9[7]" identifier [ number_literal ])) ;) }))) (expression_statement "puVar8 = puVar9 + 0x17;" (assignment_expression "puVar8 = puVar9 + 0x17" identifier = (binary_expression "puVar9 + 0x17" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x24) = puVar9[6];" (assignment_expression "*(undefined4 *)(puVar11 + 0x24) = puVar9[6]" (pointer_expression "*(undefined4 *)(puVar11 + 0x24)" * (cast_expression "(undefined4 *)(puVar11 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x24)" ( (binary_expression "puVar11 + 0x24" identifier + number_literal) )))) = (subscript_expression "puVar9[6]" identifier [ number_literal ])) ;) (expression_statement "puVar9[5] = puVar9 + 7;" (assignment_expression "puVar9[5] = puVar9 + 7" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = (binary_expression "puVar9 + 7" identifier + number_literal)) ;) (expression_statement "puVar9[6] = 0;" (assignment_expression "puVar9[6] = 0" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar9 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar9 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar9 + 7)" * (cast_expression "(undefined1 *)(puVar9 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 7)" ( (binary_expression "puVar9 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);" (assignment_expression "puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb)" (subscript_expression "puVar11[0x38]" identifier [ number_literal ]) = (pointer_expression "*(undefined1 *)(puVar9 + 0xb)" * (cast_expression "(undefined1 *)(puVar9 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xb)" ( (binary_expression "puVar9 + 0xb" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];" (assignment_expression "*(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc]" (pointer_expression "*(undefined4 *)(puVar11 + 0x3c)" * (cast_expression "(undefined4 *)(puVar11 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x3c)" ( (binary_expression "puVar11 + 0x3c" identifier + number_literal) )))) = (subscript_expression "puVar9[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];" (assignment_expression "*(undefined4 *)(puVar11 + 0x40) = puVar9[0xd]" (pointer_expression "*(undefined4 *)(puVar11 + 0x40)" * (cast_expression "(undefined4 *)(puVar11 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x40)" ( (binary_expression "puVar11 + 0x40" identifier + number_literal) )))) = (subscript_expression "puVar9[0xd]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];" (assignment_expression "*(undefined4 *)(puVar11 + 0x44) = puVar9[0xe]" (pointer_expression "*(undefined4 *)(puVar11 + 0x44)" * (cast_expression "(undefined4 *)(puVar11 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x44)" ( (binary_expression "puVar11 + 0x44" identifier + number_literal) )))) = (subscript_expression "puVar9[0xe]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];" (assignment_expression "*(undefined4 *)(puVar11 + 0x48) = puVar9[0xf]" (pointer_expression "*(undefined4 *)(puVar11 + 0x48)" * (cast_expression "(undefined4 *)(puVar11 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x48)" ( (binary_expression "puVar11 + 0x48" identifier + number_literal) )))) = (subscript_expression "puVar9[0xf]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];" (assignment_expression "*(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10]" (pointer_expression "*(undefined4 *)(puVar11 + 0x4c)" * (cast_expression "(undefined4 *)(puVar11 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x4c)" ( (binary_expression "puVar11 + 0x4c" identifier + number_literal) )))) = (subscript_expression "puVar9[0x10]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];" (assignment_expression "*(undefined4 *)(puVar11 + 0x50) = puVar9[0x11]" (pointer_expression "*(undefined4 *)(puVar11 + 0x50)" * (cast_expression "(undefined4 *)(puVar11 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x50)" ( (binary_expression "puVar11 + 0x50" identifier + number_literal) )))) = (subscript_expression "puVar9[0x11]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];" (assignment_expression "*(undefined4 *)(puVar11 + 0x54) = puVar9[0x12]" (pointer_expression "*(undefined4 *)(puVar11 + 0x54)" * (cast_expression "(undefined4 *)(puVar11 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x54)" ( (binary_expression "puVar11 + 0x54" identifier + number_literal) )))) = (subscript_expression "puVar9[0x12]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];" (assignment_expression "*(undefined4 *)(puVar11 + 0x58) = puVar9[0x13]" (pointer_expression "*(undefined4 *)(puVar11 + 0x58)" * (cast_expression "(undefined4 *)(puVar11 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x58)" ( (binary_expression "puVar11 + 0x58" identifier + number_literal) )))) = (subscript_expression "puVar9[0x13]" identifier [ number_literal ])) ;) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" identifier = identifier) ;) (expression_statement "puVar11 = puVar11 + 0x5c;" (assignment_expression "puVar11 = puVar11 + 0x5c" identifier = (binary_expression "puVar11 + 0x5c" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c))" ( (binary_expression "puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c)" identifier != (cast_expression "(undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x68 + uVar10 * 0x5c)" ( (binary_expression "iVar2 + 0x68 + uVar10 * 0x5c" (binary_expression "iVar2 + 0x68" identifier + number_literal) + (binary_expression "uVar10 * 0x5c" identifier * number_literal)) )))) )) ;) (expression_statement "local_2c = local_34 + (uVar10 + 2) * 0x5c;" (assignment_expression "local_2c = local_34 + (uVar10 + 2) * 0x5c" identifier = (binary_expression "local_34 + (uVar10 + 2) * 0x5c" identifier + (binary_expression "(uVar10 + 2) * 0x5c" (parenthesized_expression "(uVar10 + 2)" ( (binary_expression "uVar10 + 2" identifier + number_literal) )) * number_literal))) ;) })) (expression_statement "iVar6 = iVar2;" (assignment_expression "iVar6 = iVar2" identifier = identifier) ;) (if_statement "if (param_2 != iVar3) {\n    uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(param_2 + 0xc);\n    puVar11 = local_2c;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_2c + (uVar10 + 1) * 0x5c;\n  }" if (parenthesized_expression "(param_2 != iVar3)" ( (binary_expression "param_2 != iVar3" identifier != identifier) )) (compound_statement "{\n    uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(param_2 + 0xc);\n    puVar11 = local_2c;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_2c + (uVar10 + 1) * 0x5c;\n  }" { (expression_statement "uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;" (assignment_expression "uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff" identifier = (binary_expression "((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff" (binary_expression "((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7" (parenthesized_expression "((iVar3 - param_2) - 0x5cU >> 2)" ( (binary_expression "(iVar3 - param_2) - 0x5cU >> 2" (binary_expression "(iVar3 - param_2) - 0x5cU" (parenthesized_expression "(iVar3 - param_2)" ( (binary_expression "iVar3 - param_2" identifier - identifier) )) - number_literal) >> number_literal) )) * number_literal) & number_literal)) ;) (expression_statement "puVar9 = (undefined4 *)(param_2 + 0xc);" (assignment_expression "puVar9 = (undefined4 *)(param_2 + 0xc)" identifier = (cast_expression "(undefined4 *)(param_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) ;) (expression_statement "puVar11 = local_2c;" (assignment_expression "puVar11 = local_2c" identifier = identifier) ;) (do_statement "do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));" do (compound_statement "{\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    }" { (expression_statement "uVar1 = *(undefined1 *)(puVar9 + -3);" (assignment_expression "uVar1 = *(undefined1 *)(puVar9 + -3)" identifier = (pointer_expression "*(undefined1 *)(puVar9 + -3)" * (cast_expression "(undefined1 *)(puVar9 + -3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -3)" ( (binary_expression "puVar9 + -3" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;" (assignment_expression "*(undefined1 **)(puVar11 + 4) = puVar11 + 0xc" (pointer_expression "*(undefined1 **)(puVar11 + 4)" * (cast_expression "(undefined1 **)(puVar11 + 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 4)" ( (binary_expression "puVar11 + 4" identifier + number_literal) )))) = (binary_expression "puVar11 + 0xc" identifier + number_literal)) ;) (expression_statement "*puVar11 = uVar1;" (assignment_expression "*puVar11 = uVar1" (pointer_expression "*puVar11" * identifier) = identifier) ;) (if_statement "if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" if (parenthesized_expression "(puVar9 == (undefined4 *)puVar9[-2])" ( (binary_expression "puVar9 == (undefined4 *)puVar9[-2]" identifier == (cast_expression "(undefined4 *)puVar9[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[-2]" identifier [ number_literal ]))) )) (compound_statement "{\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }" { (expression_statement "*(undefined4 *)(puVar11 + 0xc) = *puVar9;" (assignment_expression "*(undefined4 *)(puVar11 + 0xc) = *puVar9" (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" * (cast_expression "(undefined4 *)(puVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) )))) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x10) = puVar9[1];" (assignment_expression "*(undefined4 *)(puVar11 + 0x10) = puVar9[1]" (pointer_expression "*(undefined4 *)(puVar11 + 0x10)" * (cast_expression "(undefined4 *)(puVar11 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))) = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x14) = puVar9[2];" (assignment_expression "*(undefined4 *)(puVar11 + 0x14) = puVar9[2]" (pointer_expression "*(undefined4 *)(puVar11 + 0x14)" * (cast_expression "(undefined4 *)(puVar11 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x18) = puVar9[3];" (assignment_expression "*(undefined4 *)(puVar11 + 0x18) = puVar9[3]" (pointer_expression "*(undefined4 *)(puVar11 + 0x18)" * (cast_expression "(undefined4 *)(puVar11 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x18)" ( (binary_expression "puVar11 + 0x18" identifier + number_literal) )))) = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" else (compound_statement "{\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" { (expression_statement "*(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];" (assignment_expression "*(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2]" (pointer_expression "*(undefined4 **)(puVar11 + 4)" * (cast_expression "(undefined4 **)(puVar11 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 4)" ( (binary_expression "puVar11 + 4" identifier + number_literal) )))) = (cast_expression "(undefined4 *)puVar9[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[-2]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(puVar11 + 0xc) = *puVar9;" (assignment_expression "*(undefined4 *)(puVar11 + 0xc) = *puVar9" (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" * (cast_expression "(undefined4 *)(puVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) )))) = (pointer_expression "*puVar9" * identifier)) ;) }))) (expression_statement "uVar4 = puVar9[-1];" (assignment_expression "uVar4 = puVar9[-1]" identifier = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar8 = (undefined4 *)puVar9[5];" (assignment_expression "puVar8 = (undefined4 *)puVar9[5]" identifier = (cast_expression "(undefined4 *)puVar9[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[5]" identifier [ number_literal ]))) ;) (expression_statement "puVar9[-2] = puVar9;" (assignment_expression "puVar9[-2] = puVar9" (subscript_expression "puVar9[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[-1] = 0;" (assignment_expression "puVar9[-1] = 0" (subscript_expression "puVar9[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar11 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(puVar11 + 8) = uVar4" (pointer_expression "*(undefined4 *)(puVar11 + 8)" * (cast_expression "(undefined4 *)(puVar11 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)puVar9 = 0;" (assignment_expression "*(undefined1 *)puVar9 = 0" (pointer_expression "*(undefined1 *)puVar9" * (cast_expression "(undefined1 *)puVar9" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x1c) = puVar9[4];" (assignment_expression "*(undefined4 *)(puVar11 + 0x1c) = puVar9[4]" (pointer_expression "*(undefined4 *)(puVar11 + 0x1c)" * (cast_expression "(undefined4 *)(puVar11 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x1c)" ( (binary_expression "puVar11 + 0x1c" identifier + number_literal) )))) = (subscript_expression "puVar9[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;" (assignment_expression "*(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28" (pointer_expression "*(undefined1 **)(puVar11 + 0x20)" * (cast_expression "(undefined1 **)(puVar11 + 0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x20)" ( (binary_expression "puVar11 + 0x20" identifier + number_literal) )))) = (binary_expression "puVar11 + 0x28" identifier + number_literal)) ;) (if_statement "if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" if (parenthesized_expression "(puVar8 == puVar9 + 7)" ( (binary_expression "puVar8 == puVar9 + 7" identifier == (binary_expression "puVar9 + 7" identifier + number_literal)) )) (compound_statement "{\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }" { (expression_statement "*(undefined4 *)(puVar11 + 0x28) = puVar9[7];" (assignment_expression "*(undefined4 *)(puVar11 + 0x28) = puVar9[7]" (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" * (cast_expression "(undefined4 *)(puVar11 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x28)" ( (binary_expression "puVar11 + 0x28" identifier + number_literal) )))) = (subscript_expression "puVar9[7]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x2c) = puVar9[8];" (assignment_expression "*(undefined4 *)(puVar11 + 0x2c) = puVar9[8]" (pointer_expression "*(undefined4 *)(puVar11 + 0x2c)" * (cast_expression "(undefined4 *)(puVar11 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x2c)" ( (binary_expression "puVar11 + 0x2c" identifier + number_literal) )))) = (subscript_expression "puVar9[8]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x30) = puVar9[9];" (assignment_expression "*(undefined4 *)(puVar11 + 0x30) = puVar9[9]" (pointer_expression "*(undefined4 *)(puVar11 + 0x30)" * (cast_expression "(undefined4 *)(puVar11 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x30)" ( (binary_expression "puVar11 + 0x30" identifier + number_literal) )))) = (subscript_expression "puVar9[9]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x34) = puVar9[10];" (assignment_expression "*(undefined4 *)(puVar11 + 0x34) = puVar9[10]" (pointer_expression "*(undefined4 *)(puVar11 + 0x34)" * (cast_expression "(undefined4 *)(puVar11 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x34)" ( (binary_expression "puVar11 + 0x34" identifier + number_literal) )))) = (subscript_expression "puVar9[10]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" else (compound_statement "{\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" { (expression_statement "*(undefined4 **)(puVar11 + 0x20) = puVar8;" (assignment_expression "*(undefined4 **)(puVar11 + 0x20) = puVar8" (pointer_expression "*(undefined4 **)(puVar11 + 0x20)" * (cast_expression "(undefined4 **)(puVar11 + 0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x20)" ( (binary_expression "puVar11 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x28) = puVar9[7];" (assignment_expression "*(undefined4 *)(puVar11 + 0x28) = puVar9[7]" (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" * (cast_expression "(undefined4 *)(puVar11 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x28)" ( (binary_expression "puVar11 + 0x28" identifier + number_literal) )))) = (subscript_expression "puVar9[7]" identifier [ number_literal ])) ;) }))) (expression_statement "puVar9[5] = puVar9 + 7;" (assignment_expression "puVar9[5] = puVar9 + 7" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = (binary_expression "puVar9 + 7" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar9 + 0x17;" (assignment_expression "puVar8 = puVar9 + 0x17" identifier = (binary_expression "puVar9 + 0x17" identifier + number_literal)) ;) (expression_statement "uVar4 = puVar9[6];" (assignment_expression "uVar4 = puVar9[6]" identifier = (subscript_expression "puVar9[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(puVar9 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar9 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar9 + 7)" * (cast_expression "(undefined1 *)(puVar9 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 7)" ( (binary_expression "puVar9 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);" (assignment_expression "puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb)" (subscript_expression "puVar11[0x38]" identifier [ number_literal ]) = (pointer_expression "*(undefined1 *)(puVar9 + 0xb)" * (cast_expression "(undefined1 *)(puVar9 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xb)" ( (binary_expression "puVar9 + 0xb" identifier + number_literal) ))))) ;) (expression_statement "puVar9[6] = 0;" (assignment_expression "puVar9[6] = 0" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];" (assignment_expression "*(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc]" (pointer_expression "*(undefined4 *)(puVar11 + 0x3c)" * (cast_expression "(undefined4 *)(puVar11 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x3c)" ( (binary_expression "puVar11 + 0x3c" identifier + number_literal) )))) = (subscript_expression "puVar9[0xc]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar9[0xd];" (assignment_expression "uVar5 = puVar9[0xd]" identifier = (subscript_expression "puVar9[0xd]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x24) = uVar4;" (assignment_expression "*(undefined4 *)(puVar11 + 0x24) = uVar4" (pointer_expression "*(undefined4 *)(puVar11 + 0x24)" * (cast_expression "(undefined4 *)(puVar11 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x24)" ( (binary_expression "puVar11 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x40) = uVar5;" (assignment_expression "*(undefined4 *)(puVar11 + 0x40) = uVar5" (pointer_expression "*(undefined4 *)(puVar11 + 0x40)" * (cast_expression "(undefined4 *)(puVar11 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x40)" ( (binary_expression "puVar11 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];" (assignment_expression "*(undefined4 *)(puVar11 + 0x44) = puVar9[0xe]" (pointer_expression "*(undefined4 *)(puVar11 + 0x44)" * (cast_expression "(undefined4 *)(puVar11 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x44)" ( (binary_expression "puVar11 + 0x44" identifier + number_literal) )))) = (subscript_expression "puVar9[0xe]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];" (assignment_expression "*(undefined4 *)(puVar11 + 0x48) = puVar9[0xf]" (pointer_expression "*(undefined4 *)(puVar11 + 0x48)" * (cast_expression "(undefined4 *)(puVar11 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x48)" ( (binary_expression "puVar11 + 0x48" identifier + number_literal) )))) = (subscript_expression "puVar9[0xf]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];" (assignment_expression "*(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10]" (pointer_expression "*(undefined4 *)(puVar11 + 0x4c)" * (cast_expression "(undefined4 *)(puVar11 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x4c)" ( (binary_expression "puVar11 + 0x4c" identifier + number_literal) )))) = (subscript_expression "puVar9[0x10]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];" (assignment_expression "*(undefined4 *)(puVar11 + 0x50) = puVar9[0x11]" (pointer_expression "*(undefined4 *)(puVar11 + 0x50)" * (cast_expression "(undefined4 *)(puVar11 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x50)" ( (binary_expression "puVar11 + 0x50" identifier + number_literal) )))) = (subscript_expression "puVar9[0x11]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];" (assignment_expression "*(undefined4 *)(puVar11 + 0x54) = puVar9[0x12]" (pointer_expression "*(undefined4 *)(puVar11 + 0x54)" * (cast_expression "(undefined4 *)(puVar11 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x54)" ( (binary_expression "puVar11 + 0x54" identifier + number_literal) )))) = (subscript_expression "puVar9[0x12]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];" (assignment_expression "*(undefined4 *)(puVar11 + 0x58) = puVar9[0x13]" (pointer_expression "*(undefined4 *)(puVar11 + 0x58)" * (cast_expression "(undefined4 *)(puVar11 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x58)" ( (binary_expression "puVar11 + 0x58" identifier + number_literal) )))) = (subscript_expression "puVar9[0x13]" identifier [ number_literal ])) ;) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" identifier = identifier) ;) (expression_statement "puVar11 = puVar11 + 0x5c;" (assignment_expression "puVar11 = puVar11 + 0x5c" identifier = (binary_expression "puVar11 + 0x5c" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c))" ( (binary_expression "puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c)" identifier != (cast_expression "(undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x68 + uVar10 * 0x5c)" ( (binary_expression "param_2 + 0x68 + uVar10 * 0x5c" (binary_expression "param_2 + 0x68" identifier + number_literal) + (binary_expression "uVar10 * 0x5c" identifier * number_literal)) )))) )) ;) (expression_statement "local_2c = local_2c + (uVar10 + 1) * 0x5c;" (assignment_expression "local_2c = local_2c + (uVar10 + 1) * 0x5c" identifier = (binary_expression "local_2c + (uVar10 + 1) * 0x5c" identifier + (binary_expression "(uVar10 + 1) * 0x5c" (parenthesized_expression "(uVar10 + 1)" ( (binary_expression "uVar10 + 1" identifier + number_literal) )) * number_literal))) ;) })) (for_statement "for (; iVar6 != iVar3; iVar6 = iVar6 + 0x5c) {\n    if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }\n    if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }\n  }" for ( ; (binary_expression "iVar6 != iVar3" identifier != identifier) ; (assignment_expression "iVar6 = iVar6 + 0x5c" identifier = (binary_expression "iVar6 + 0x5c" identifier + number_literal)) ) (compound_statement "{\n    if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }\n    if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }\n  }" { (if_statement "if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }" if (parenthesized_expression "(*(int *)(iVar6 + 0x20) != iVar6 + 0x28)" ( (binary_expression "*(int *)(iVar6 + 0x20) != iVar6 + 0x28" (pointer_expression "*(int *)(iVar6 + 0x20)" * (cast_expression "(int *)(iVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) != (binary_expression "iVar6 + 0x28" identifier + number_literal)) )) (compound_statement "{\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }" { (expression_statement "FUN_001fd020(*(int *)(iVar6 + 0x20));" (call_expression "FUN_001fd020(*(int *)(iVar6 + 0x20))" identifier (argument_list "(*(int *)(iVar6 + 0x20))" ( (pointer_expression "*(int *)(iVar6 + 0x20)" * (cast_expression "(int *)(iVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) ))) ;) })) (if_statement "if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }" if (parenthesized_expression "(*(int *)(iVar6 + 4) != iVar6 + 0xc)" ( (binary_expression "*(int *)(iVar6 + 4) != iVar6 + 0xc" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) != (binary_expression "iVar6 + 0xc" identifier + number_literal)) )) (compound_statement "{\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }" { (expression_statement "FUN_001fd020(*(int *)(iVar6 + 4));" (call_expression "FUN_001fd020(*(int *)(iVar6 + 4))" identifier (argument_list "(*(int *)(iVar6 + 4))" ( (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) ))) ;) })) })) (if_statement "if (iVar2 != 0) {\n    FUN_001fd020(iVar2);\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_001fd020(iVar2);\n  }" { (expression_statement "FUN_001fd020(iVar2);" (call_expression "FUN_001fd020(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) })) (expression_statement "*param_1 = (int)local_34;" (assignment_expression "*param_1 = (int)local_34" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[1] = (int)local_2c;" (assignment_expression "param_1[1] = (int)local_2c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[2] = (int)local_24;" (assignment_expression "param_1[2] = (int)local_24" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)local_24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n/* DWARF original prototype: void\n   _M_realloc_insert<gold::Input_argument>(vector<gold::Input_argument,_std::allocator<gold::Input_argument>_>\n   * this, iterator __position, Input_argument * __args#0) */\n\nvoid __thiscall\nstd::vector<gold::Input_argument,_std::allocator<gold::Input_argument>_>::\n_M_realloc_insert<gold::Input_argument>\n          (vector<gold::Input_argument,_std::allocator<gold::Input_argument>_> *this,\n          iterator __position,Input_argument *__args_0)\n\n{\n  bool bVar1;\n  pointer pIVar2;\n  pointer pIVar3;\n  pointer pcVar4;\n  size_type sVar5;\n  Input_file_type IVar6;\n  undefined4 uVar7;\n  size_type sVar8;\n  Object_format OVar9;\n  size_type *psVar10;\n  int iVar11;\n  undefined1 *puVar12;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar13;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar14;\n  uint uVar15;\n  pointer pIVar16;\n  pointer pIVar17;\n  uint uVar18;\n  pointer local_34;\n  pointer local_2c;\n  pointer local_24;\n  \n  pIVar2 = (this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>).\n           _M_impl._M_start;\n  pIVar3 = (this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>).\n           _M_impl._M_finish;\n  iVar11 = (int)pIVar3 - (int)pIVar2 >> 2;\n  if (iVar11 * -0x1642c859 == 0) {\n    uVar15 = 1;\nLAB_000fe1a5:\n    uVar18 = uVar15 * 0x5c;\n  }\n  else {\n    uVar15 = iVar11 * -0x2c8590b2;\n    uVar18 = 0xfffffff4;\n    if (((uint)(iVar11 * -0x1642c859) < uVar15 || iVar11 * 0x1642c859 == 0) && (uVar15 < 0x2c8590c))\n    {\n      if (uVar15 == 0) {\n        local_2c = (pointer)0x5c;\n        local_24 = (pointer)0x0;\n        local_34 = (pointer)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }\n  local_34 = (pointer)operator_new(uVar18);\n  local_24 = (pointer)(&local_34->is_file_ + uVar18);\n  local_2c = local_34 + 1;\nLAB_000fddbd:\n  pcVar4 = (__args_0->file_).name_._M_dataplus._M_p;\n  puVar12 = (undefined1 *)((int)local_34 + ((int)__position._M_current - (int)pIVar2));\n  *puVar12 = __args_0->is_file_;\n  paVar14 = &(__args_0->file_).name_.field_2;\n  *(undefined1 **)(puVar12 + 4) = puVar12 + 0xc;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)pcVar4 == paVar14) {\n    *(size_type *)(puVar12 + 0xc) = (__args_0->file_).name_.field_2._M_allocated_capacity;\n    *(undefined4 *)(puVar12 + 0x10) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 4);\n    *(undefined4 *)(puVar12 + 0x14) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 8);\n    *(undefined4 *)(puVar12 + 0x18) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 0xc);\n  }\n  else {\n    *(pointer *)(puVar12 + 4) = pcVar4;\n    *(size_type *)(puVar12 + 0xc) = (__args_0->file_).name_.field_2._M_allocated_capacity;\n  }\n  sVar5 = (__args_0->file_).name_._M_string_length;\n  (__args_0->file_).name_._M_dataplus._M_p = (pointer)paVar14;\n  IVar6 = (__args_0->file_).type_;\n  (__args_0->file_).name_._M_string_length = 0;\n  *(size_type *)(puVar12 + 8) = sVar5;\n  pcVar4 = (__args_0->file_).extra_search_path_._M_dataplus._M_p;\n  *(Input_file_type *)(puVar12 + 0x1c) = IVar6;\n  paVar14 = &(__args_0->file_).extra_search_path_.field_2;\n  (__args_0->file_).name_.field_2._M_local_buf[0] = '\0';\n  *(undefined1 **)(puVar12 + 0x20) = puVar12 + 0x28;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)pcVar4 == paVar14) {\n    *(size_type *)(puVar12 + 0x28) =\n         (__args_0->file_).extra_search_path_.field_2._M_allocated_capacity;\n    *(undefined4 *)(puVar12 + 0x2c) =\n         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 4);\n    *(undefined4 *)(puVar12 + 0x30) =\n         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 8);\n    *(undefined4 *)(puVar12 + 0x34) =\n         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 0xc);\n  }\n  else {\n    *(pointer *)(puVar12 + 0x20) = pcVar4;\n    *(size_type *)(puVar12 + 0x28) =\n         (__args_0->file_).extra_search_path_.field_2._M_allocated_capacity;\n  }\n  sVar5 = (__args_0->file_).extra_search_path_._M_string_length;\n  (__args_0->file_).extra_search_path_._M_dataplus._M_p = (pointer)paVar14;\n  bVar1 = (__args_0->file_).just_symbols_;\n  (__args_0->file_).extra_search_path_._M_string_length = 0;\n  *(size_type *)(puVar12 + 0x24) = sVar5;\n  puVar12[0x38] = bVar1;\n  uVar7 = *(undefined4 *)&(__args_0->file_).options_;\n  (__args_0->file_).extra_search_path_.field_2._M_local_buf[0] = '\0';\n  *(undefined4 *)(puVar12 + 0x3c) = uVar7;\n  *(Object_format *)(puVar12 + 0x40) = (__args_0->file_).options_.format_enum_;\n  *(undefined4 *)(puVar12 + 0x44) = *(undefined4 *)&(__args_0->file_).options_.whole_archive_;\n  *(Incremental_disposition *)(puVar12 + 0x48) = (__args_0->file_).options_.incremental_disposition_\n  ;\n  *(uint *)(puVar12 + 0x4c) = (__args_0->file_).arg_serial_;\n  *(Input_file_group **)(puVar12 + 0x50) = __args_0->group_;\n  *(Input_file_lib **)(puVar12 + 0x54) = __args_0->lib_;\n  *(Script_info **)(puVar12 + 0x58) = __args_0->script_info_;\n  if (__position._M_current != pIVar2) {\n    uVar15 = ((uint)((int)__position._M_current + (-0x5c - (int)pIVar2)) >> 2) * 0x29bd37a7 &\n             0x3fffffff;\n    paVar14 = &(pIVar2->file_).name_.field_2;\n    pIVar16 = local_34;\n    do {\n      bVar1 = *(bool *)((int)paVar14 + -0xc);\n      (pIVar16->file_).name_._M_dataplus._M_p = (pointer)&(pIVar16->file_).name_.field_2;\n      pIVar16->is_file_ = bVar1;\n      pcVar4 = (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar4 == paVar14) {\n        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 4) =\n             *(undefined4 *)((int)paVar14 + 4);\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 8);\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0xc);\n      }\n      else {\n        (pIVar16->file_).name_._M_dataplus._M_p = pcVar4;\n        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n      }\n      (pIVar16->file_).name_._M_string_length = *(size_type *)((int)paVar14 + -4);\n      IVar6 = paVar14[1]._M_allocated_capacity;\n      (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p = (pointer)paVar14;\n      *(size_type *)((int)paVar14 + -4) = 0;\n      paVar14->_M_local_buf[0] = '\0';\n      (pIVar16->file_).type_ = IVar6;\n      (pIVar16->file_).extra_search_path_._M_dataplus._M_p =\n           (pointer)&(pIVar16->file_).extra_search_path_.field_2;\n      if (*(pointer *)((int)paVar14 + 0x14) == (pointer)((int)paVar14 + 0x1c)) {\n        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n        *(size_type *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity;\n        *(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 0x24);\n        *(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0x28);\n      }\n      else {\n        (pIVar16->file_).extra_search_path_._M_dataplus._M_p = *(pointer *)((int)paVar14 + 0x14);\n        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n      }\n      paVar13 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)((int)paVar14 + 0x5c);\n      (pIVar16->file_).extra_search_path_._M_string_length = *(size_type *)((int)paVar14 + 0x18);\n      *(pointer *)((int)paVar14 + 0x14) = (pointer)((int)paVar14 + 0x1c);\n      *(undefined4 *)((int)paVar14 + 0x18) = 0;\n      *(undefined1 *)((int)paVar14 + 0x1c) = 0;\n      (pIVar16->file_).just_symbols_ = *(bool *)((int)paVar14 + 0x2c);\n      uVar7 = paVar14[3]._M_allocated_capacity;\n      (pIVar16->file_).options_.as_needed_ = (bool)(char)uVar7;\n      (pIVar16->file_).options_.Bdynamic_ = (bool)(char)((uint)uVar7 >> 8);\n      *(short *)&(pIVar16->file_).options_.field_0x2 = (short)((uint)uVar7 >> 0x10);\n      (pIVar16->file_).options_.format_enum_ = *(Object_format *)((int)paVar14 + 0x34);\n      *(undefined4 *)&(pIVar16->file_).options_.whole_archive_ =\n           *(undefined4 *)((int)paVar14 + 0x38);\n      (pIVar16->file_).options_.incremental_disposition_ =\n           *(Incremental_disposition *)((int)paVar14 + 0x3c);\n      (pIVar16->file_).arg_serial_ = paVar14[4]._M_allocated_capacity;\n      pIVar16->group_ = *(Input_file_group **)((int)paVar14 + 0x44);\n      pIVar16->lib_ = *(Input_file_lib **)((int)paVar14 + 0x48);\n      pIVar16->script_info_ = *(Script_info **)((int)paVar14 + 0x4c);\n      paVar14 = paVar13;\n      pIVar16 = pIVar16 + 1;\n    } while (paVar13 != &pIVar2[uVar15 + 1].file_.name_.field_2);\n    local_2c = local_34 + uVar15 + 2;\n  }\n  pIVar16 = pIVar2;\n  if (__position._M_current != pIVar3) {\n    uVar15 = ((uint)((int)pIVar3 + (-0x5c - (int)__position._M_current)) >> 2) * 0x29bd37a7 &\n             0x3fffffff;\n    paVar14 = &((__position._M_current)->file_).name_.field_2;\n    pIVar17 = local_2c;\n    do {\n      bVar1 = *(bool *)((int)paVar14 + -0xc);\n      (pIVar17->file_).name_._M_dataplus._M_p = (pointer)&(pIVar17->file_).name_.field_2;\n      pIVar17->is_file_ = bVar1;\n      psVar10 = (size_type *)(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p;\n      if (paVar14 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar10) {\n        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 4) = *(size_type *)((int)paVar14 + 4);\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 8) = *(size_type *)((int)paVar14 + 8);\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0xc);\n      }\n      else {\n        (pIVar17->file_).name_._M_dataplus._M_p = (pointer)psVar10;\n        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n      }\n      sVar5 = *(size_type *)((int)paVar14 + -4);\n      psVar10 = *(size_type **)((int)paVar14 + 0x14);\n      (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p = (pointer)paVar14;\n      *(size_type *)((int)paVar14 + -4) = 0;\n      (pIVar17->file_).name_._M_string_length = sVar5;\n      paVar14->_M_local_buf[0] = '\0';\n      (pIVar17->file_).type_ = paVar14[1]._M_allocated_capacity;\n      (pIVar17->file_).extra_search_path_._M_dataplus._M_p =\n           (pointer)&(pIVar17->file_).extra_search_path_.field_2;\n      if (psVar10 == (size_type *)((int)paVar14 + 0x1c)) {\n        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity;\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 8) =\n             *(size_type *)((int)paVar14 + 0x24);\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0x28);\n      }\n      else {\n        (pIVar17->file_).extra_search_path_._M_dataplus._M_p = (pointer)psVar10;\n        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n      }\n      *(size_type **)((int)paVar14 + 0x14) = (size_type *)((int)paVar14 + 0x1c);\n      paVar13 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)((int)paVar14 + 0x5c);\n      sVar5 = *(size_type *)((int)paVar14 + 0x18);\n      *(char *)((int)paVar14 + 0x1c) = '\0';\n      (pIVar17->file_).just_symbols_ = *(bool *)((int)paVar14 + 0x2c);\n      sVar8 = paVar14[3]._M_allocated_capacity;\n      *(size_type *)((int)paVar14 + 0x18) = 0;\n      (pIVar17->file_).options_.as_needed_ = (bool)(char)sVar8;\n      (pIVar17->file_).options_.Bdynamic_ = (bool)(char)(sVar8 >> 8);\n      *(short *)&(pIVar17->file_).options_.field_0x2 = (short)(sVar8 >> 0x10);\n      OVar9 = *(Object_format *)((int)paVar14 + 0x34);\n      (pIVar17->file_).extra_search_path_._M_string_length = sVar5;\n      (pIVar17->file_).options_.format_enum_ = OVar9;\n      *(size_type *)&(pIVar17->file_).options_.whole_archive_ = *(size_type *)((int)paVar14 + 0x38);\n      (pIVar17->file_).options_.incremental_disposition_ =\n           *(Incremental_disposition *)((int)paVar14 + 0x3c);\n      (pIVar17->file_).arg_serial_ = paVar14[4]._M_allocated_capacity;\n      pIVar17->group_ = *(Input_file_group **)((int)paVar14 + 0x44);\n      pIVar17->lib_ = *(Input_file_lib **)((int)paVar14 + 0x48);\n      pIVar17->script_info_ = *(Script_info **)((int)paVar14 + 0x4c);\n      paVar14 = paVar13;\n      pIVar17 = pIVar17 + 1;\n    } while (paVar13 != &__position._M_current[uVar15 + 1].file_.name_.field_2);\n    local_2c = local_2c + uVar15 + 1;\n  }\n  for (; pIVar16 != pIVar3; pIVar16 = pIVar16 + 1) {\n    pcVar4 = (pIVar16->file_).extra_search_path_._M_dataplus._M_p;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar4 != &(pIVar16->file_).extra_search_path_.field_2) {\n      operator_delete(pcVar4);\n    }\n    pcVar4 = (pIVar16->file_).name_._M_dataplus._M_p;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar4 != &(pIVar16->file_).name_.field_2) {\n      operator_delete(pcVar4);\n    }\n  }\n  if (pIVar2 != (pointer)0x0) {\n    operator_delete(pIVar2);\n  }\n  (this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl.\n  _M_start = local_34;\n  (this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl.\n  _M_finish = local_2c;\n  (this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl.\n  _M_end_of_storage = local_24;\n  return;\n}\n\n" comment comment comment (declaration "void __thiscall\nstd::vector<gold::Input_argument,_std::allocator<gold::Input_argument>_>::\n_M_realloc_insert<gold::Input_argument>\n          (vector<gold::Input_argument,_std::allocator<gold::Input_argument>_> *this,\n          iterator __position,Input_argument *__args_0)\n\n{\n  bool bVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::vector<gold::" identifier : : identifier < identifier : :) identifier , (ERROR "_std::allocator<gold::Input_argument>_>::\n_M_realloc_insert<gold::Input_argument>\n          (vector<gold::Input_argument,_std::allocator<gold::Input_argument>_> *this,\n          iterator __position,Input_argument *__args_0)\n\n{\n  bool" identifier : : identifier < identifier : : identifier > identifier > : : identifier < identifier : : (function_declarator "Input_argument>\n          (vector<gold::Input_argument,_std::allocator<gold::Input_argument>_> *this,\n          iterator __position,Input_argument *__args_0)" identifier (ERROR ">" >) (parameter_list "(vector<gold::Input_argument,_std::allocator<gold::Input_argument>_> *this,\n          iterator __position,Input_argument *__args_0)" ( (parameter_declaration "vector<gold::Input_argument" type_identifier (ERROR "<gold::" < identifier : :) identifier) , (parameter_declaration "_std::allocator<gold::Input_argument>_> *this" type_identifier (ERROR "::allocator<gold::Input_argument>_>" : : identifier < identifier : : identifier > identifier >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "iterator __position" type_identifier identifier) , (parameter_declaration "Input_argument *__args_0" type_identifier (pointer_declarator "*__args_0" * identifier)) ))) { primitive_type) identifier ;) (declaration "pointer pIVar2;" type_identifier identifier ;) (declaration "pointer pIVar3;" type_identifier identifier ;) (declaration "pointer pcVar4;" type_identifier identifier ;) (declaration "size_type sVar5;" type_identifier identifier ;) (declaration "Input_file_type IVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "size_type sVar8;" type_identifier identifier ;) (declaration "Object_format OVar9;" type_identifier identifier ;) (declaration "size_type *psVar10;" type_identifier (pointer_declarator "*psVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char," (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar13;" statement_identifier (ERROR "::char_traits<char>,_std:" : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) :) : (expression_statement "allocator<char>_>_9\n  *paVar13;" (binary_expression "allocator<char>_>_9\n  *paVar13" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar13" identifier * identifier)) ;)) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char," (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar14;" statement_identifier (ERROR "::char_traits<char>,_std:" : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) :) : (expression_statement "allocator<char>_>_9\n  *paVar14;" (binary_expression "allocator<char>_>_9\n  *paVar14" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar14" identifier * identifier)) ;)) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "pointer pIVar16;" type_identifier identifier ;) (declaration "pointer pIVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "pointer local_34;" type_identifier identifier ;) (declaration "pointer local_2c;" type_identifier identifier ;) (declaration "pointer local_24;" type_identifier identifier ;) (expression_statement "pIVar2 = (this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>).\n           _M_impl._M_start;" (assignment_expression "pIVar2 = (this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>).\n           _M_impl._M_start" identifier = (field_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>).\n           _M_impl._M_start" (field_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>).\n           _M_impl" (parenthesized_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)" ( (ERROR "this->super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "this->super__Vector_base<gold::Input_argument,_std" (binary_expression "this->super__Vector_base<gold" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_argument>_>" (binary_expression "Input_argument>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pIVar3 = (this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>).\n           _M_impl._M_finish;" (assignment_expression "pIVar3 = (this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>).\n           _M_impl._M_finish" identifier = (field_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>).\n           _M_impl._M_finish" (field_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>).\n           _M_impl" (parenthesized_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)" ( (ERROR "this->super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "this->super__Vector_base<gold::Input_argument,_std" (binary_expression "this->super__Vector_base<gold" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_argument>_>" (binary_expression "Input_argument>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "iVar11 = (int)pIVar3 - (int)pIVar2 >> 2;" (assignment_expression "iVar11 = (int)pIVar3 - (int)pIVar2 >> 2" identifier = (binary_expression "(int)pIVar3 - (int)pIVar2 >> 2" (binary_expression "(int)pIVar3 - (int)pIVar2" (cast_expression "(int)pIVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pIVar2" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (iVar11 * -0x1642c859 == 0) {\n    uVar15 = 1;\nLAB_000fe1a5:\n    uVar18 = uVar15 * 0x5c;\n  }\n  else {\n    uVar15 = iVar11 * -0x2c8590b2;\n    uVar18 = 0xfffffff4;\n    if (((uint)(iVar11 * -0x1642c859) < uVar15 || iVar11 * 0x1642c859 == 0) && (uVar15 < 0x2c8590c))\n    {\n      if (uVar15 == 0) {\n        local_2c = (pointer)0x5c;\n        local_24 = (pointer)0x0;\n        local_34 = (pointer)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }" if (parenthesized_expression "(iVar11 * -0x1642c859 == 0)" ( (binary_expression "iVar11 * -0x1642c859 == 0" (binary_expression "iVar11 * -0x1642c859" identifier * number_literal) == number_literal) )) (compound_statement "{\n    uVar15 = 1;\nLAB_000fe1a5:\n    uVar18 = uVar15 * 0x5c;\n  }" { (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000fe1a5:\n    uVar18 = uVar15 * 0x5c;" statement_identifier : (expression_statement "uVar18 = uVar15 * 0x5c;" (assignment_expression "uVar18 = uVar15 * 0x5c" identifier = (binary_expression "uVar15 * 0x5c" identifier * number_literal)) ;)) }) (else_clause "else {\n    uVar15 = iVar11 * -0x2c8590b2;\n    uVar18 = 0xfffffff4;\n    if (((uint)(iVar11 * -0x1642c859) < uVar15 || iVar11 * 0x1642c859 == 0) && (uVar15 < 0x2c8590c))\n    {\n      if (uVar15 == 0) {\n        local_2c = (pointer)0x5c;\n        local_24 = (pointer)0x0;\n        local_34 = (pointer)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }" else (compound_statement "{\n    uVar15 = iVar11 * -0x2c8590b2;\n    uVar18 = 0xfffffff4;\n    if (((uint)(iVar11 * -0x1642c859) < uVar15 || iVar11 * 0x1642c859 == 0) && (uVar15 < 0x2c8590c))\n    {\n      if (uVar15 == 0) {\n        local_2c = (pointer)0x5c;\n        local_24 = (pointer)0x0;\n        local_34 = (pointer)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }" { (expression_statement "uVar15 = iVar11 * -0x2c8590b2;" (assignment_expression "uVar15 = iVar11 * -0x2c8590b2" identifier = (binary_expression "iVar11 * -0x2c8590b2" identifier * number_literal)) ;) (expression_statement "uVar18 = 0xfffffff4;" (assignment_expression "uVar18 = 0xfffffff4" identifier = number_literal) ;) (if_statement "if (((uint)(iVar11 * -0x1642c859) < uVar15 || iVar11 * 0x1642c859 == 0) && (uVar15 < 0x2c8590c))\n    {\n      if (uVar15 == 0) {\n        local_2c = (pointer)0x5c;\n        local_24 = (pointer)0x0;\n        local_34 = (pointer)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }" if (parenthesized_expression "(((uint)(iVar11 * -0x1642c859) < uVar15 || iVar11 * 0x1642c859 == 0) && (uVar15 < 0x2c8590c))" ( (binary_expression "((uint)(iVar11 * -0x1642c859) < uVar15 || iVar11 * 0x1642c859 == 0) && (uVar15 < 0x2c8590c)" (parenthesized_expression "((uint)(iVar11 * -0x1642c859) < uVar15 || iVar11 * 0x1642c859 == 0)" ( (binary_expression "(uint)(iVar11 * -0x1642c859) < uVar15 || iVar11 * 0x1642c859 == 0" (binary_expression "(uint)(iVar11 * -0x1642c859) < uVar15" (call_expression "(uint)(iVar11 * -0x1642c859)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar11 * -0x1642c859)" ( (binary_expression "iVar11 * -0x1642c859" identifier * number_literal) ))) < identifier) || (binary_expression "iVar11 * 0x1642c859 == 0" (binary_expression "iVar11 * 0x1642c859" identifier * number_literal) == number_literal)) )) && (parenthesized_expression "(uVar15 < 0x2c8590c)" ( (binary_expression "uVar15 < 0x2c8590c" identifier < number_literal) ))) )) (compound_statement "{\n      if (uVar15 == 0) {\n        local_2c = (pointer)0x5c;\n        local_24 = (pointer)0x0;\n        local_34 = (pointer)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }" { (if_statement "if (uVar15 == 0) {\n        local_2c = (pointer)0x5c;\n        local_24 = (pointer)0x0;\n        local_34 = (pointer)0x0;\n        goto LAB_000fddbd;\n      }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\n        local_2c = (pointer)0x5c;\n        local_24 = (pointer)0x0;\n        local_34 = (pointer)0x0;\n        goto LAB_000fddbd;\n      }" { (expression_statement "local_2c = (pointer)0x5c;" (assignment_expression "local_2c = (pointer)0x5c" identifier = (cast_expression "(pointer)0x5c" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "local_24 = (pointer)0x0;" (assignment_expression "local_24 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "local_34 = (pointer)0x0;" (assignment_expression "local_34 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (goto_statement "goto LAB_000fddbd;" goto statement_identifier ;) })) (goto_statement "goto LAB_000fe1a5;" goto statement_identifier ;) })) }))) (expression_statement "local_34 = (pointer)operator_new(uVar18);" (assignment_expression "local_34 = (pointer)operator_new(uVar18)" identifier = (cast_expression "(pointer)operator_new(uVar18)" ( (type_descriptor "pointer" type_identifier) ) (call_expression "operator_new(uVar18)" identifier (argument_list "(uVar18)" ( identifier ))))) ;) (expression_statement "local_24 = (pointer)(&local_34->is_file_ + uVar18);" (assignment_expression "local_24 = (pointer)(&local_34->is_file_ + uVar18)" identifier = (call_expression "(pointer)(&local_34->is_file_ + uVar18)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(&local_34->is_file_ + uVar18)" ( (binary_expression "&local_34->is_file_ + uVar18" (pointer_expression "&local_34->is_file_" & (field_expression "local_34->is_file_" identifier -> field_identifier)) + identifier) )))) ;) (expression_statement "local_2c = local_34 + 1;" (assignment_expression "local_2c = local_34 + 1" identifier = (binary_expression "local_34 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_000fddbd:\n  pcVar4 = (__args_0->file_).name_._M_dataplus._M_p;" statement_identifier : (expression_statement "pcVar4 = (__args_0->file_).name_._M_dataplus._M_p;" (assignment_expression "pcVar4 = (__args_0->file_).name_._M_dataplus._M_p" identifier = (field_expression "(__args_0->file_).name_._M_dataplus._M_p" (field_expression "(__args_0->file_).name_._M_dataplus" (field_expression "(__args_0->file_).name_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;)) (expression_statement "puVar12 = (undefined1 *)((int)local_34 + ((int)__position._M_current - (int)pIVar2));" (assignment_expression "puVar12 = (undefined1 *)((int)local_34 + ((int)__position._M_current - (int)pIVar2))" identifier = (cast_expression "(undefined1 *)((int)local_34 + ((int)__position._M_current - (int)pIVar2))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34 + ((int)__position._M_current - (int)pIVar2))" ( (binary_expression "(int)local_34 + ((int)__position._M_current - (int)pIVar2)" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)__position._M_current - (int)pIVar2)" ( (binary_expression "(int)__position._M_current - (int)pIVar2" (cast_expression "(int)__position._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__position._M_current" identifier . field_identifier)) - (cast_expression "(int)pIVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "*puVar12 = __args_0->is_file_;" (assignment_expression "*puVar12 = __args_0->is_file_" (pointer_expression "*puVar12" * identifier) = (field_expression "__args_0->is_file_" identifier -> field_identifier)) ;) (expression_statement "paVar14 = &(__args_0->file_).name_.field_2;" (assignment_expression "paVar14 = &(__args_0->file_).name_.field_2" identifier = (pointer_expression "&(__args_0->file_).name_.field_2" & (field_expression "(__args_0->file_).name_.field_2" (field_expression "(__args_0->file_).name_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "*(undefined1 **)(puVar12 + 4) = puVar12 + 0xc;" (assignment_expression "*(undefined1 **)(puVar12 + 4) = puVar12 + 0xc" (pointer_expression "*(undefined1 **)(puVar12 + 4)" * (cast_expression "(undefined1 **)(puVar12 + 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 4)" ( (binary_expression "puVar12 + 4" identifier + number_literal) )))) = (binary_expression "puVar12 + 0xc" identifier + number_literal)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)pcVar4 == paVar14) {\n    *(size_type *)(puVar12 + 0xc) = (__args_0->file_).name_.field_2._M_allocated_capacity;\n    *(undefined4 *)(puVar12 + 0x10) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 4);\n    *(undefined4 *)(puVar12 + 0x14) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 8);\n    *(undefined4 *)(puVar12 + 0x18) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 0xc);\n  }\n  else {\n    *(pointer *)(puVar12 + 4) = pcVar4;\n    *(size_type *)(puVar12 + 0xc) = (__args_0->file_).name_.field_2._M_allocated_capacity;\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)pcVar4 == paVar14)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)pcVar4 == paVar14)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)pcVar4 == paVar14" (binary_expression "allocator<char>_>_9\n       *)pcVar4" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)pcVar4" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (compound_statement "{\n    *(size_type *)(puVar12 + 0xc) = (__args_0->file_).name_.field_2._M_allocated_capacity;\n    *(undefined4 *)(puVar12 + 0x10) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 4);\n    *(undefined4 *)(puVar12 + 0x14) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 8);\n    *(undefined4 *)(puVar12 + 0x18) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 0xc);\n  }" { (expression_statement "*(size_type *)(puVar12 + 0xc) = (__args_0->file_).name_.field_2._M_allocated_capacity;" (assignment_expression "*(size_type *)(puVar12 + 0xc) = (__args_0->file_).name_.field_2._M_allocated_capacity" (pointer_expression "*(size_type *)(puVar12 + 0xc)" * (cast_expression "(size_type *)(puVar12 + 0xc)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0xc)" ( (binary_expression "puVar12 + 0xc" identifier + number_literal) )))) = (field_expression "(__args_0->file_).name_.field_2._M_allocated_capacity" (field_expression "(__args_0->file_).name_.field_2" (field_expression "(__args_0->file_).name_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)(puVar12 + 0x10) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 4);" (assignment_expression "*(undefined4 *)(puVar12 + 0x10) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 4)" (pointer_expression "*(undefined4 *)(puVar12 + 0x10)" * (cast_expression "(undefined4 *)(puVar12 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x10)" ( (binary_expression "puVar12 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 4)" * (cast_expression "(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__args_0->file_).name_.field_2 + 4)" ( (binary_expression "(int)&(__args_0->file_).name_.field_2 + 4" (cast_expression "(int)&(__args_0->file_).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__args_0->file_).name_.field_2" & (field_expression "(__args_0->file_).name_.field_2" (field_expression "(__args_0->file_).name_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + 0x14) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 8);" (assignment_expression "*(undefined4 *)(puVar12 + 0x14) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 8)" (pointer_expression "*(undefined4 *)(puVar12 + 0x14)" * (cast_expression "(undefined4 *)(puVar12 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x14)" ( (binary_expression "puVar12 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 8)" * (cast_expression "(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__args_0->file_).name_.field_2 + 8)" ( (binary_expression "(int)&(__args_0->file_).name_.field_2 + 8" (cast_expression "(int)&(__args_0->file_).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__args_0->file_).name_.field_2" & (field_expression "(__args_0->file_).name_.field_2" (field_expression "(__args_0->file_).name_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + 0x18) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 0xc);" (assignment_expression "*(undefined4 *)(puVar12 + 0x18) = *(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 0xc)" (pointer_expression "*(undefined4 *)(puVar12 + 0x18)" * (cast_expression "(undefined4 *)(puVar12 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x18)" ( (binary_expression "puVar12 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 0xc)" * (cast_expression "(undefined4 *)((int)&(__args_0->file_).name_.field_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__args_0->file_).name_.field_2 + 0xc)" ( (binary_expression "(int)&(__args_0->file_).name_.field_2 + 0xc" (cast_expression "(int)&(__args_0->file_).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__args_0->file_).name_.field_2" & (field_expression "(__args_0->file_).name_.field_2" (field_expression "(__args_0->file_).name_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) }) (else_clause "else {\n    *(pointer *)(puVar12 + 4) = pcVar4;\n    *(size_type *)(puVar12 + 0xc) = (__args_0->file_).name_.field_2._M_allocated_capacity;\n  }" else (compound_statement "{\n    *(pointer *)(puVar12 + 4) = pcVar4;\n    *(size_type *)(puVar12 + 0xc) = (__args_0->file_).name_.field_2._M_allocated_capacity;\n  }" { (expression_statement "*(pointer *)(puVar12 + 4) = pcVar4;" (assignment_expression "*(pointer *)(puVar12 + 4) = pcVar4" (pointer_expression "*(pointer *)(puVar12 + 4)" * (cast_expression "(pointer *)(puVar12 + 4)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 4)" ( (binary_expression "puVar12 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(size_type *)(puVar12 + 0xc) = (__args_0->file_).name_.field_2._M_allocated_capacity;" (assignment_expression "*(size_type *)(puVar12 + 0xc) = (__args_0->file_).name_.field_2._M_allocated_capacity" (pointer_expression "*(size_type *)(puVar12 + 0xc)" * (cast_expression "(size_type *)(puVar12 + 0xc)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0xc)" ( (binary_expression "puVar12 + 0xc" identifier + number_literal) )))) = (field_expression "(__args_0->file_).name_.field_2._M_allocated_capacity" (field_expression "(__args_0->file_).name_.field_2" (field_expression "(__args_0->file_).name_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) }))) (expression_statement "sVar5 = (__args_0->file_).name_._M_string_length;" (assignment_expression "sVar5 = (__args_0->file_).name_._M_string_length" identifier = (field_expression "(__args_0->file_).name_._M_string_length" (field_expression "(__args_0->file_).name_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(__args_0->file_).name_._M_dataplus._M_p = (pointer)paVar14;" (assignment_expression "(__args_0->file_).name_._M_dataplus._M_p = (pointer)paVar14" (field_expression "(__args_0->file_).name_._M_dataplus._M_p" (field_expression "(__args_0->file_).name_._M_dataplus" (field_expression "(__args_0->file_).name_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar14" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "IVar6 = (__args_0->file_).type_;" (assignment_expression "IVar6 = (__args_0->file_).type_" identifier = (field_expression "(__args_0->file_).type_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(__args_0->file_).name_._M_string_length = 0;" (assignment_expression "(__args_0->file_).name_._M_string_length = 0" (field_expression "(__args_0->file_).name_._M_string_length" (field_expression "(__args_0->file_).name_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "*(size_type *)(puVar12 + 8) = sVar5;" (assignment_expression "*(size_type *)(puVar12 + 8) = sVar5" (pointer_expression "*(size_type *)(puVar12 + 8)" * (cast_expression "(size_type *)(puVar12 + 8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 8)" ( (binary_expression "puVar12 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar4 = (__args_0->file_).extra_search_path_._M_dataplus._M_p;" (assignment_expression "pcVar4 = (__args_0->file_).extra_search_path_._M_dataplus._M_p" identifier = (field_expression "(__args_0->file_).extra_search_path_._M_dataplus._M_p" (field_expression "(__args_0->file_).extra_search_path_._M_dataplus" (field_expression "(__args_0->file_).extra_search_path_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(Input_file_type *)(puVar12 + 0x1c) = IVar6;" (assignment_expression "*(Input_file_type *)(puVar12 + 0x1c) = IVar6" (pointer_expression "*(Input_file_type *)(puVar12 + 0x1c)" * (cast_expression "(Input_file_type *)(puVar12 + 0x1c)" ( (type_descriptor "Input_file_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x1c)" ( (binary_expression "puVar12 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "paVar14 = &(__args_0->file_).extra_search_path_.field_2;" (assignment_expression "paVar14 = &(__args_0->file_).extra_search_path_.field_2" identifier = (pointer_expression "&(__args_0->file_).extra_search_path_.field_2" & (field_expression "(__args_0->file_).extra_search_path_.field_2" (field_expression "(__args_0->file_).extra_search_path_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "(__args_0->file_).name_.field_2._M_local_buf[0] = '\0';" (assignment_expression "(__args_0->file_).name_.field_2._M_local_buf[0] = '\0'" (subscript_expression "(__args_0->file_).name_.field_2._M_local_buf[0]" (field_expression "(__args_0->file_).name_.field_2._M_local_buf" (field_expression "(__args_0->file_).name_.field_2" (field_expression "(__args_0->file_).name_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(undefined1 **)(puVar12 + 0x20) = puVar12 + 0x28;" (assignment_expression "*(undefined1 **)(puVar12 + 0x20) = puVar12 + 0x28" (pointer_expression "*(undefined1 **)(puVar12 + 0x20)" * (cast_expression "(undefined1 **)(puVar12 + 0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x20)" ( (binary_expression "puVar12 + 0x20" identifier + number_literal) )))) = (binary_expression "puVar12 + 0x28" identifier + number_literal)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)pcVar4 == paVar14) {\n    *(size_type *)(puVar12 + 0x28) =\n         (__args_0->file_).extra_search_path_.field_2._M_allocated_capacity;\n    *(undefined4 *)(puVar12 + 0x2c) =\n         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 4);\n    *(undefined4 *)(puVar12 + 0x30) =\n         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 8);\n    *(undefined4 *)(puVar12 + 0x34) =\n         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 0xc);\n  }\n  else {\n    *(pointer *)(puVar12 + 0x20) = pcVar4;\n    *(size_type *)(puVar12 + 0x28) =\n         (__args_0->file_).extra_search_path_.field_2._M_allocated_capacity;\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)pcVar4 == paVar14)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)pcVar4 == paVar14)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)pcVar4 == paVar14" (binary_expression "allocator<char>_>_9\n       *)pcVar4" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)pcVar4" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (compound_statement "{\n    *(size_type *)(puVar12 + 0x28) =\n         (__args_0->file_).extra_search_path_.field_2._M_allocated_capacity;\n    *(undefined4 *)(puVar12 + 0x2c) =\n         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 4);\n    *(undefined4 *)(puVar12 + 0x30) =\n         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 8);\n    *(undefined4 *)(puVar12 + 0x34) =\n         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 0xc);\n  }" { (expression_statement "*(size_type *)(puVar12 + 0x28) =\n         (__args_0->file_).extra_search_path_.field_2._M_allocated_capacity;" (assignment_expression "*(size_type *)(puVar12 + 0x28) =\n         (__args_0->file_).extra_search_path_.field_2._M_allocated_capacity" (pointer_expression "*(size_type *)(puVar12 + 0x28)" * (cast_expression "(size_type *)(puVar12 + 0x28)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x28)" ( (binary_expression "puVar12 + 0x28" identifier + number_literal) )))) = (field_expression "(__args_0->file_).extra_search_path_.field_2._M_allocated_capacity" (field_expression "(__args_0->file_).extra_search_path_.field_2" (field_expression "(__args_0->file_).extra_search_path_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)(puVar12 + 0x2c) =\n         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 4);" (assignment_expression "*(undefined4 *)(puVar12 + 0x2c) =\n         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 4)" (pointer_expression "*(undefined4 *)(puVar12 + 0x2c)" * (cast_expression "(undefined4 *)(puVar12 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x2c)" ( (binary_expression "puVar12 + 0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 4)" * (cast_expression "(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__args_0->file_).extra_search_path_.field_2 + 4)" ( (binary_expression "(int)&(__args_0->file_).extra_search_path_.field_2 + 4" (cast_expression "(int)&(__args_0->file_).extra_search_path_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__args_0->file_).extra_search_path_.field_2" & (field_expression "(__args_0->file_).extra_search_path_.field_2" (field_expression "(__args_0->file_).extra_search_path_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + 0x30) =\n         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 8);" (assignment_expression "*(undefined4 *)(puVar12 + 0x30) =\n         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 8)" (pointer_expression "*(undefined4 *)(puVar12 + 0x30)" * (cast_expression "(undefined4 *)(puVar12 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x30)" ( (binary_expression "puVar12 + 0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 8)" * (cast_expression "(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__args_0->file_).extra_search_path_.field_2 + 8)" ( (binary_expression "(int)&(__args_0->file_).extra_search_path_.field_2 + 8" (cast_expression "(int)&(__args_0->file_).extra_search_path_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__args_0->file_).extra_search_path_.field_2" & (field_expression "(__args_0->file_).extra_search_path_.field_2" (field_expression "(__args_0->file_).extra_search_path_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + 0x34) =\n         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 0xc);" (assignment_expression "*(undefined4 *)(puVar12 + 0x34) =\n         *(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 0xc)" (pointer_expression "*(undefined4 *)(puVar12 + 0x34)" * (cast_expression "(undefined4 *)(puVar12 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x34)" ( (binary_expression "puVar12 + 0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 0xc)" * (cast_expression "(undefined4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__args_0->file_).extra_search_path_.field_2 + 0xc)" ( (binary_expression "(int)&(__args_0->file_).extra_search_path_.field_2 + 0xc" (cast_expression "(int)&(__args_0->file_).extra_search_path_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__args_0->file_).extra_search_path_.field_2" & (field_expression "(__args_0->file_).extra_search_path_.field_2" (field_expression "(__args_0->file_).extra_search_path_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) }) (else_clause "else {\n    *(pointer *)(puVar12 + 0x20) = pcVar4;\n    *(size_type *)(puVar12 + 0x28) =\n         (__args_0->file_).extra_search_path_.field_2._M_allocated_capacity;\n  }" else (compound_statement "{\n    *(pointer *)(puVar12 + 0x20) = pcVar4;\n    *(size_type *)(puVar12 + 0x28) =\n         (__args_0->file_).extra_search_path_.field_2._M_allocated_capacity;\n  }" { (expression_statement "*(pointer *)(puVar12 + 0x20) = pcVar4;" (assignment_expression "*(pointer *)(puVar12 + 0x20) = pcVar4" (pointer_expression "*(pointer *)(puVar12 + 0x20)" * (cast_expression "(pointer *)(puVar12 + 0x20)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x20)" ( (binary_expression "puVar12 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(size_type *)(puVar12 + 0x28) =\n         (__args_0->file_).extra_search_path_.field_2._M_allocated_capacity;" (assignment_expression "*(size_type *)(puVar12 + 0x28) =\n         (__args_0->file_).extra_search_path_.field_2._M_allocated_capacity" (pointer_expression "*(size_type *)(puVar12 + 0x28)" * (cast_expression "(size_type *)(puVar12 + 0x28)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x28)" ( (binary_expression "puVar12 + 0x28" identifier + number_literal) )))) = (field_expression "(__args_0->file_).extra_search_path_.field_2._M_allocated_capacity" (field_expression "(__args_0->file_).extra_search_path_.field_2" (field_expression "(__args_0->file_).extra_search_path_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) }))) (expression_statement "sVar5 = (__args_0->file_).extra_search_path_._M_string_length;" (assignment_expression "sVar5 = (__args_0->file_).extra_search_path_._M_string_length" identifier = (field_expression "(__args_0->file_).extra_search_path_._M_string_length" (field_expression "(__args_0->file_).extra_search_path_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(__args_0->file_).extra_search_path_._M_dataplus._M_p = (pointer)paVar14;" (assignment_expression "(__args_0->file_).extra_search_path_._M_dataplus._M_p = (pointer)paVar14" (field_expression "(__args_0->file_).extra_search_path_._M_dataplus._M_p" (field_expression "(__args_0->file_).extra_search_path_._M_dataplus" (field_expression "(__args_0->file_).extra_search_path_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar14" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "bVar1 = (__args_0->file_).just_symbols_;" (assignment_expression "bVar1 = (__args_0->file_).just_symbols_" identifier = (field_expression "(__args_0->file_).just_symbols_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(__args_0->file_).extra_search_path_._M_string_length = 0;" (assignment_expression "(__args_0->file_).extra_search_path_._M_string_length = 0" (field_expression "(__args_0->file_).extra_search_path_._M_string_length" (field_expression "(__args_0->file_).extra_search_path_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "*(size_type *)(puVar12 + 0x24) = sVar5;" (assignment_expression "*(size_type *)(puVar12 + 0x24) = sVar5" (pointer_expression "*(size_type *)(puVar12 + 0x24)" * (cast_expression "(size_type *)(puVar12 + 0x24)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x24)" ( (binary_expression "puVar12 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar12[0x38] = bVar1;" (assignment_expression "puVar12[0x38] = bVar1" (subscript_expression "puVar12[0x38]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = *(undefined4 *)&(__args_0->file_).options_;" (assignment_expression "uVar7 = *(undefined4 *)&(__args_0->file_).options_" identifier = (pointer_expression "*(undefined4 *)&(__args_0->file_).options_" * (cast_expression "(undefined4 *)&(__args_0->file_).options_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__args_0->file_).options_" & (field_expression "(__args_0->file_).options_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "(__args_0->file_).extra_search_path_.field_2._M_local_buf[0] = '\0';" (assignment_expression "(__args_0->file_).extra_search_path_.field_2._M_local_buf[0] = '\0'" (subscript_expression "(__args_0->file_).extra_search_path_.field_2._M_local_buf[0]" (field_expression "(__args_0->file_).extra_search_path_.field_2._M_local_buf" (field_expression "(__args_0->file_).extra_search_path_.field_2" (field_expression "(__args_0->file_).extra_search_path_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(undefined4 *)(puVar12 + 0x3c) = uVar7;" (assignment_expression "*(undefined4 *)(puVar12 + 0x3c) = uVar7" (pointer_expression "*(undefined4 *)(puVar12 + 0x3c)" * (cast_expression "(undefined4 *)(puVar12 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x3c)" ( (binary_expression "puVar12 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Object_format *)(puVar12 + 0x40) = (__args_0->file_).options_.format_enum_;" (assignment_expression "*(Object_format *)(puVar12 + 0x40) = (__args_0->file_).options_.format_enum_" (pointer_expression "*(Object_format *)(puVar12 + 0x40)" * (cast_expression "(Object_format *)(puVar12 + 0x40)" ( (type_descriptor "Object_format *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x40)" ( (binary_expression "puVar12 + 0x40" identifier + number_literal) )))) = (field_expression "(__args_0->file_).options_.format_enum_" (field_expression "(__args_0->file_).options_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)(puVar12 + 0x44) = *(undefined4 *)&(__args_0->file_).options_.whole_archive_;" (assignment_expression "*(undefined4 *)(puVar12 + 0x44) = *(undefined4 *)&(__args_0->file_).options_.whole_archive_" (pointer_expression "*(undefined4 *)(puVar12 + 0x44)" * (cast_expression "(undefined4 *)(puVar12 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x44)" ( (binary_expression "puVar12 + 0x44" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)&(__args_0->file_).options_.whole_archive_" * (cast_expression "(undefined4 *)&(__args_0->file_).options_.whole_archive_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__args_0->file_).options_.whole_archive_" & (field_expression "(__args_0->file_).options_.whole_archive_" (field_expression "(__args_0->file_).options_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))))) ;) (expression_statement "*(Incremental_disposition *)(puVar12 + 0x48) = (__args_0->file_).options_.incremental_disposition_\n  ;" (assignment_expression "*(Incremental_disposition *)(puVar12 + 0x48) = (__args_0->file_).options_.incremental_disposition_" (pointer_expression "*(Incremental_disposition *)(puVar12 + 0x48)" * (cast_expression "(Incremental_disposition *)(puVar12 + 0x48)" ( (type_descriptor "Incremental_disposition *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x48)" ( (binary_expression "puVar12 + 0x48" identifier + number_literal) )))) = (field_expression "(__args_0->file_).options_.incremental_disposition_" (field_expression "(__args_0->file_).options_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "*(uint *)(puVar12 + 0x4c) = (__args_0->file_).arg_serial_;" (assignment_expression "*(uint *)(puVar12 + 0x4c) = (__args_0->file_).arg_serial_" (pointer_expression "*(uint *)(puVar12 + 0x4c)" * (cast_expression "(uint *)(puVar12 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x4c)" ( (binary_expression "puVar12 + 0x4c" identifier + number_literal) )))) = (field_expression "(__args_0->file_).arg_serial_" (parenthesized_expression "(__args_0->file_)" ( (field_expression "__args_0->file_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(Input_file_group **)(puVar12 + 0x50) = __args_0->group_;" (assignment_expression "*(Input_file_group **)(puVar12 + 0x50) = __args_0->group_" (pointer_expression "*(Input_file_group **)(puVar12 + 0x50)" * (cast_expression "(Input_file_group **)(puVar12 + 0x50)" ( (type_descriptor "Input_file_group **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x50)" ( (binary_expression "puVar12 + 0x50" identifier + number_literal) )))) = (field_expression "__args_0->group_" identifier -> field_identifier)) ;) (expression_statement "*(Input_file_lib **)(puVar12 + 0x54) = __args_0->lib_;" (assignment_expression "*(Input_file_lib **)(puVar12 + 0x54) = __args_0->lib_" (pointer_expression "*(Input_file_lib **)(puVar12 + 0x54)" * (cast_expression "(Input_file_lib **)(puVar12 + 0x54)" ( (type_descriptor "Input_file_lib **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x54)" ( (binary_expression "puVar12 + 0x54" identifier + number_literal) )))) = (field_expression "__args_0->lib_" identifier -> field_identifier)) ;) (expression_statement "*(Script_info **)(puVar12 + 0x58) = __args_0->script_info_;" (assignment_expression "*(Script_info **)(puVar12 + 0x58) = __args_0->script_info_" (pointer_expression "*(Script_info **)(puVar12 + 0x58)" * (cast_expression "(Script_info **)(puVar12 + 0x58)" ( (type_descriptor "Script_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x58)" ( (binary_expression "puVar12 + 0x58" identifier + number_literal) )))) = (field_expression "__args_0->script_info_" identifier -> field_identifier)) ;) (if_statement "if (__position._M_current != pIVar2) {\n    uVar15 = ((uint)((int)__position._M_current + (-0x5c - (int)pIVar2)) >> 2) * 0x29bd37a7 &\n             0x3fffffff;\n    paVar14 = &(pIVar2->file_).name_.field_2;\n    pIVar16 = local_34;\n    do {\n      bVar1 = *(bool *)((int)paVar14 + -0xc);\n      (pIVar16->file_).name_._M_dataplus._M_p = (pointer)&(pIVar16->file_).name_.field_2;\n      pIVar16->is_file_ = bVar1;\n      pcVar4 = (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar4 == paVar14) {\n        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 4) =\n             *(undefined4 *)((int)paVar14 + 4);\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 8);\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0xc);\n      }\n      else {\n        (pIVar16->file_).name_._M_dataplus._M_p = pcVar4;\n        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n      }\n      (pIVar16->file_).name_._M_string_length = *(size_type *)((int)paVar14 + -4);\n      IVar6 = paVar14[1]._M_allocated_capacity;\n      (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p = (pointer)paVar14;\n      *(size_type *)((int)paVar14 + -4) = 0;\n      paVar14->_M_local_buf[0] = '\0';\n      (pIVar16->file_).type_ = IVar6;\n      (pIVar16->file_).extra_search_path_._M_dataplus._M_p =\n           (pointer)&(pIVar16->file_).extra_search_path_.field_2;\n      if (*(pointer *)((int)paVar14 + 0x14) == (pointer)((int)paVar14 + 0x1c)) {\n        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n        *(size_type *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity;\n        *(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 0x24);\n        *(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0x28);\n      }\n      else {\n        (pIVar16->file_).extra_search_path_._M_dataplus._M_p = *(pointer *)((int)paVar14 + 0x14);\n        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n      }\n      paVar13 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)((int)paVar14 + 0x5c);\n      (pIVar16->file_).extra_search_path_._M_string_length = *(size_type *)((int)paVar14 + 0x18);\n      *(pointer *)((int)paVar14 + 0x14) = (pointer)((int)paVar14 + 0x1c);\n      *(undefined4 *)((int)paVar14 + 0x18) = 0;\n      *(undefined1 *)((int)paVar14 + 0x1c) = 0;\n      (pIVar16->file_).just_symbols_ = *(bool *)((int)paVar14 + 0x2c);\n      uVar7 = paVar14[3]._M_allocated_capacity;\n      (pIVar16->file_).options_.as_needed_ = (bool)(char)uVar7;\n      (pIVar16->file_).options_.Bdynamic_ = (bool)(char)((uint)uVar7 >> 8);\n      *(short *)&(pIVar16->file_).options_.field_0x2 = (short)((uint)uVar7 >> 0x10);\n      (pIVar16->file_).options_.format_enum_ = *(Object_format *)((int)paVar14 + 0x34);\n      *(undefined4 *)&(pIVar16->file_).options_.whole_archive_ =\n           *(undefined4 *)((int)paVar14 + 0x38);\n      (pIVar16->file_).options_.incremental_disposition_ =\n           *(Incremental_disposition *)((int)paVar14 + 0x3c);\n      (pIVar16->file_).arg_serial_ = paVar14[4]._M_allocated_capacity;\n      pIVar16->group_ = *(Input_file_group **)((int)paVar14 + 0x44);\n      pIVar16->lib_ = *(Input_file_lib **)((int)paVar14 + 0x48);\n      pIVar16->script_info_ = *(Script_info **)((int)paVar14 + 0x4c);\n      paVar14 = paVar13;\n      pIVar16 = pIVar16 + 1;\n    } while (paVar13 != &pIVar2[uVar15 + 1].file_.name_.field_2);\n    local_2c = local_34 + uVar15 + 2;\n  }" if (parenthesized_expression "(__position._M_current != pIVar2)" ( (binary_expression "__position._M_current != pIVar2" (field_expression "__position._M_current" identifier . field_identifier) != identifier) )) (compound_statement "{\n    uVar15 = ((uint)((int)__position._M_current + (-0x5c - (int)pIVar2)) >> 2) * 0x29bd37a7 &\n             0x3fffffff;\n    paVar14 = &(pIVar2->file_).name_.field_2;\n    pIVar16 = local_34;\n    do {\n      bVar1 = *(bool *)((int)paVar14 + -0xc);\n      (pIVar16->file_).name_._M_dataplus._M_p = (pointer)&(pIVar16->file_).name_.field_2;\n      pIVar16->is_file_ = bVar1;\n      pcVar4 = (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar4 == paVar14) {\n        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 4) =\n             *(undefined4 *)((int)paVar14 + 4);\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 8);\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0xc);\n      }\n      else {\n        (pIVar16->file_).name_._M_dataplus._M_p = pcVar4;\n        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n      }\n      (pIVar16->file_).name_._M_string_length = *(size_type *)((int)paVar14 + -4);\n      IVar6 = paVar14[1]._M_allocated_capacity;\n      (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p = (pointer)paVar14;\n      *(size_type *)((int)paVar14 + -4) = 0;\n      paVar14->_M_local_buf[0] = '\0';\n      (pIVar16->file_).type_ = IVar6;\n      (pIVar16->file_).extra_search_path_._M_dataplus._M_p =\n           (pointer)&(pIVar16->file_).extra_search_path_.field_2;\n      if (*(pointer *)((int)paVar14 + 0x14) == (pointer)((int)paVar14 + 0x1c)) {\n        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n        *(size_type *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity;\n        *(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 0x24);\n        *(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0x28);\n      }\n      else {\n        (pIVar16->file_).extra_search_path_._M_dataplus._M_p = *(pointer *)((int)paVar14 + 0x14);\n        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n      }\n      paVar13 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)((int)paVar14 + 0x5c);\n      (pIVar16->file_).extra_search_path_._M_string_length = *(size_type *)((int)paVar14 + 0x18);\n      *(pointer *)((int)paVar14 + 0x14) = (pointer)((int)paVar14 + 0x1c);\n      *(undefined4 *)((int)paVar14 + 0x18) = 0;\n      *(undefined1 *)((int)paVar14 + 0x1c) = 0;\n      (pIVar16->file_).just_symbols_ = *(bool *)((int)paVar14 + 0x2c);\n      uVar7 = paVar14[3]._M_allocated_capacity;\n      (pIVar16->file_).options_.as_needed_ = (bool)(char)uVar7;\n      (pIVar16->file_).options_.Bdynamic_ = (bool)(char)((uint)uVar7 >> 8);\n      *(short *)&(pIVar16->file_).options_.field_0x2 = (short)((uint)uVar7 >> 0x10);\n      (pIVar16->file_).options_.format_enum_ = *(Object_format *)((int)paVar14 + 0x34);\n      *(undefined4 *)&(pIVar16->file_).options_.whole_archive_ =\n           *(undefined4 *)((int)paVar14 + 0x38);\n      (pIVar16->file_).options_.incremental_disposition_ =\n           *(Incremental_disposition *)((int)paVar14 + 0x3c);\n      (pIVar16->file_).arg_serial_ = paVar14[4]._M_allocated_capacity;\n      pIVar16->group_ = *(Input_file_group **)((int)paVar14 + 0x44);\n      pIVar16->lib_ = *(Input_file_lib **)((int)paVar14 + 0x48);\n      pIVar16->script_info_ = *(Script_info **)((int)paVar14 + 0x4c);\n      paVar14 = paVar13;\n      pIVar16 = pIVar16 + 1;\n    } while (paVar13 != &pIVar2[uVar15 + 1].file_.name_.field_2);\n    local_2c = local_34 + uVar15 + 2;\n  }" { (expression_statement "uVar15 = ((uint)((int)__position._M_current + (-0x5c - (int)pIVar2)) >> 2) * 0x29bd37a7 &\n             0x3fffffff;" (assignment_expression "uVar15 = ((uint)((int)__position._M_current + (-0x5c - (int)pIVar2)) >> 2) * 0x29bd37a7 &\n             0x3fffffff" identifier = (binary_expression "((uint)((int)__position._M_current + (-0x5c - (int)pIVar2)) >> 2) * 0x29bd37a7 &\n             0x3fffffff" (binary_expression "((uint)((int)__position._M_current + (-0x5c - (int)pIVar2)) >> 2) * 0x29bd37a7" (parenthesized_expression "((uint)((int)__position._M_current + (-0x5c - (int)pIVar2)) >> 2)" ( (binary_expression "(uint)((int)__position._M_current + (-0x5c - (int)pIVar2)) >> 2" (call_expression "(uint)((int)__position._M_current + (-0x5c - (int)pIVar2))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)__position._M_current + (-0x5c - (int)pIVar2))" ( (binary_expression "(int)__position._M_current + (-0x5c - (int)pIVar2)" (cast_expression "(int)__position._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__position._M_current" identifier . field_identifier)) + (parenthesized_expression "(-0x5c - (int)pIVar2)" ( (binary_expression "-0x5c - (int)pIVar2" number_literal - (cast_expression "(int)pIVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) >> number_literal) )) * number_literal) & number_literal)) ;) (expression_statement "paVar14 = &(pIVar2->file_).name_.field_2;" (assignment_expression "paVar14 = &(pIVar2->file_).name_.field_2" identifier = (pointer_expression "&(pIVar2->file_).name_.field_2" & (field_expression "(pIVar2->file_).name_.field_2" (field_expression "(pIVar2->file_).name_" (parenthesized_expression "(pIVar2->file_)" ( (field_expression "pIVar2->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "pIVar16 = local_34;" (assignment_expression "pIVar16 = local_34" identifier = identifier) ;) (do_statement "do {\n      bVar1 = *(bool *)((int)paVar14 + -0xc);\n      (pIVar16->file_).name_._M_dataplus._M_p = (pointer)&(pIVar16->file_).name_.field_2;\n      pIVar16->is_file_ = bVar1;\n      pcVar4 = (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar4 == paVar14) {\n        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 4) =\n             *(undefined4 *)((int)paVar14 + 4);\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 8);\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0xc);\n      }\n      else {\n        (pIVar16->file_).name_._M_dataplus._M_p = pcVar4;\n        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n      }\n      (pIVar16->file_).name_._M_string_length = *(size_type *)((int)paVar14 + -4);\n      IVar6 = paVar14[1]._M_allocated_capacity;\n      (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p = (pointer)paVar14;\n      *(size_type *)((int)paVar14 + -4) = 0;\n      paVar14->_M_local_buf[0] = '\0';\n      (pIVar16->file_).type_ = IVar6;\n      (pIVar16->file_).extra_search_path_._M_dataplus._M_p =\n           (pointer)&(pIVar16->file_).extra_search_path_.field_2;\n      if (*(pointer *)((int)paVar14 + 0x14) == (pointer)((int)paVar14 + 0x1c)) {\n        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n        *(size_type *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity;\n        *(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 0x24);\n        *(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0x28);\n      }\n      else {\n        (pIVar16->file_).extra_search_path_._M_dataplus._M_p = *(pointer *)((int)paVar14 + 0x14);\n        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n      }\n      paVar13 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)((int)paVar14 + 0x5c);\n      (pIVar16->file_).extra_search_path_._M_string_length = *(size_type *)((int)paVar14 + 0x18);\n      *(pointer *)((int)paVar14 + 0x14) = (pointer)((int)paVar14 + 0x1c);\n      *(undefined4 *)((int)paVar14 + 0x18) = 0;\n      *(undefined1 *)((int)paVar14 + 0x1c) = 0;\n      (pIVar16->file_).just_symbols_ = *(bool *)((int)paVar14 + 0x2c);\n      uVar7 = paVar14[3]._M_allocated_capacity;\n      (pIVar16->file_).options_.as_needed_ = (bool)(char)uVar7;\n      (pIVar16->file_).options_.Bdynamic_ = (bool)(char)((uint)uVar7 >> 8);\n      *(short *)&(pIVar16->file_).options_.field_0x2 = (short)((uint)uVar7 >> 0x10);\n      (pIVar16->file_).options_.format_enum_ = *(Object_format *)((int)paVar14 + 0x34);\n      *(undefined4 *)&(pIVar16->file_).options_.whole_archive_ =\n           *(undefined4 *)((int)paVar14 + 0x38);\n      (pIVar16->file_).options_.incremental_disposition_ =\n           *(Incremental_disposition *)((int)paVar14 + 0x3c);\n      (pIVar16->file_).arg_serial_ = paVar14[4]._M_allocated_capacity;\n      pIVar16->group_ = *(Input_file_group **)((int)paVar14 + 0x44);\n      pIVar16->lib_ = *(Input_file_lib **)((int)paVar14 + 0x48);\n      pIVar16->script_info_ = *(Script_info **)((int)paVar14 + 0x4c);\n      paVar14 = paVar13;\n      pIVar16 = pIVar16 + 1;\n    } while (paVar13 != &pIVar2[uVar15 + 1].file_.name_.field_2);" do (compound_statement "{\n      bVar1 = *(bool *)((int)paVar14 + -0xc);\n      (pIVar16->file_).name_._M_dataplus._M_p = (pointer)&(pIVar16->file_).name_.field_2;\n      pIVar16->is_file_ = bVar1;\n      pcVar4 = (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar4 == paVar14) {\n        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 4) =\n             *(undefined4 *)((int)paVar14 + 4);\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 8);\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0xc);\n      }\n      else {\n        (pIVar16->file_).name_._M_dataplus._M_p = pcVar4;\n        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n      }\n      (pIVar16->file_).name_._M_string_length = *(size_type *)((int)paVar14 + -4);\n      IVar6 = paVar14[1]._M_allocated_capacity;\n      (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p = (pointer)paVar14;\n      *(size_type *)((int)paVar14 + -4) = 0;\n      paVar14->_M_local_buf[0] = '\0';\n      (pIVar16->file_).type_ = IVar6;\n      (pIVar16->file_).extra_search_path_._M_dataplus._M_p =\n           (pointer)&(pIVar16->file_).extra_search_path_.field_2;\n      if (*(pointer *)((int)paVar14 + 0x14) == (pointer)((int)paVar14 + 0x1c)) {\n        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n        *(size_type *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity;\n        *(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 0x24);\n        *(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0x28);\n      }\n      else {\n        (pIVar16->file_).extra_search_path_._M_dataplus._M_p = *(pointer *)((int)paVar14 + 0x14);\n        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n      }\n      paVar13 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)((int)paVar14 + 0x5c);\n      (pIVar16->file_).extra_search_path_._M_string_length = *(size_type *)((int)paVar14 + 0x18);\n      *(pointer *)((int)paVar14 + 0x14) = (pointer)((int)paVar14 + 0x1c);\n      *(undefined4 *)((int)paVar14 + 0x18) = 0;\n      *(undefined1 *)((int)paVar14 + 0x1c) = 0;\n      (pIVar16->file_).just_symbols_ = *(bool *)((int)paVar14 + 0x2c);\n      uVar7 = paVar14[3]._M_allocated_capacity;\n      (pIVar16->file_).options_.as_needed_ = (bool)(char)uVar7;\n      (pIVar16->file_).options_.Bdynamic_ = (bool)(char)((uint)uVar7 >> 8);\n      *(short *)&(pIVar16->file_).options_.field_0x2 = (short)((uint)uVar7 >> 0x10);\n      (pIVar16->file_).options_.format_enum_ = *(Object_format *)((int)paVar14 + 0x34);\n      *(undefined4 *)&(pIVar16->file_).options_.whole_archive_ =\n           *(undefined4 *)((int)paVar14 + 0x38);\n      (pIVar16->file_).options_.incremental_disposition_ =\n           *(Incremental_disposition *)((int)paVar14 + 0x3c);\n      (pIVar16->file_).arg_serial_ = paVar14[4]._M_allocated_capacity;\n      pIVar16->group_ = *(Input_file_group **)((int)paVar14 + 0x44);\n      pIVar16->lib_ = *(Input_file_lib **)((int)paVar14 + 0x48);\n      pIVar16->script_info_ = *(Script_info **)((int)paVar14 + 0x4c);\n      paVar14 = paVar13;\n      pIVar16 = pIVar16 + 1;\n    }" { (expression_statement "bVar1 = *(bool *)((int)paVar14 + -0xc);" (assignment_expression "bVar1 = *(bool *)((int)paVar14 + -0xc)" identifier = (pointer_expression "*(bool *)((int)paVar14 + -0xc)" * (cast_expression "(bool *)((int)paVar14 + -0xc)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + -0xc)" ( (binary_expression "(int)paVar14 + -0xc" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(pIVar16->file_).name_._M_dataplus._M_p = (pointer)&(pIVar16->file_).name_.field_2;" (assignment_expression "(pIVar16->file_).name_._M_dataplus._M_p = (pointer)&(pIVar16->file_).name_.field_2" (field_expression "(pIVar16->file_).name_._M_dataplus._M_p" (field_expression "(pIVar16->file_).name_._M_dataplus" (field_expression "(pIVar16->file_).name_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(pIVar16->file_).name_.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pIVar16->file_).name_.field_2" (field_expression "(pIVar16->file_).name_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "pIVar16->is_file_ = bVar1;" (assignment_expression "pIVar16->is_file_ = bVar1" (field_expression "pIVar16->is_file_" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar4 = (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p;" (assignment_expression "pcVar4 = (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p" identifier = (field_expression "(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar14 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar14 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar14 + -8))" ( (cast_expression "(string *)((int)paVar14 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + -8)" ( (binary_expression "(int)paVar14 + -8" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar4 == paVar14) {\n        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 4) =\n             *(undefined4 *)((int)paVar14 + 4);\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 8);\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0xc);\n      }\n      else {\n        (pIVar16->file_).name_._M_dataplus._M_p = pcVar4;\n        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar4 == paVar14)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar4 == paVar14)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)pcVar4 == paVar14" (binary_expression "allocator<char>_>_9\n           *)pcVar4" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)pcVar4" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (compound_statement "{\n        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 4) =\n             *(undefined4 *)((int)paVar14 + 4);\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 8);\n        *(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0xc);\n      }" { (expression_statement "(pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;" (assignment_expression "(pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity" (field_expression "(pIVar16->file_).name_.field_2._M_allocated_capacity" (field_expression "(pIVar16->file_).name_.field_2" (field_expression "(pIVar16->file_).name_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (field_expression "paVar14->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 4) =\n             *(undefined4 *)((int)paVar14 + 4);" (assignment_expression "*(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 4) =\n             *(undefined4 *)((int)paVar14 + 4)" (pointer_expression "*(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 4)" * (cast_expression "(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pIVar16->file_).name_.field_2 + 4)" ( (binary_expression "(int)&(pIVar16->file_).name_.field_2 + 4" (cast_expression "(int)&(pIVar16->file_).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pIVar16->file_).name_.field_2" & (field_expression "(pIVar16->file_).name_.field_2" (field_expression "(pIVar16->file_).name_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)paVar14 + 4)" * (cast_expression "(undefined4 *)((int)paVar14 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 4)" ( (binary_expression "(int)paVar14 + 4" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 8);" (assignment_expression "*(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 8)" (pointer_expression "*(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 8)" * (cast_expression "(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pIVar16->file_).name_.field_2 + 8)" ( (binary_expression "(int)&(pIVar16->file_).name_.field_2 + 8" (cast_expression "(int)&(pIVar16->file_).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pIVar16->file_).name_.field_2" & (field_expression "(pIVar16->file_).name_.field_2" (field_expression "(pIVar16->file_).name_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)paVar14 + 8)" * (cast_expression "(undefined4 *)((int)paVar14 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 8)" ( (binary_expression "(int)paVar14 + 8" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0xc);" (assignment_expression "*(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0xc)" (pointer_expression "*(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 0xc)" * (cast_expression "(undefined4 *)((int)&(pIVar16->file_).name_.field_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pIVar16->file_).name_.field_2 + 0xc)" ( (binary_expression "(int)&(pIVar16->file_).name_.field_2 + 0xc" (cast_expression "(int)&(pIVar16->file_).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pIVar16->file_).name_.field_2" & (field_expression "(pIVar16->file_).name_.field_2" (field_expression "(pIVar16->file_).name_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)paVar14 + 0xc)" * (cast_expression "(undefined4 *)((int)paVar14 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0xc)" ( (binary_expression "(int)paVar14 + 0xc" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n        (pIVar16->file_).name_._M_dataplus._M_p = pcVar4;\n        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n      }" else (compound_statement "{\n        (pIVar16->file_).name_._M_dataplus._M_p = pcVar4;\n        (pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n      }" { (expression_statement "(pIVar16->file_).name_._M_dataplus._M_p = pcVar4;" (assignment_expression "(pIVar16->file_).name_._M_dataplus._M_p = pcVar4" (field_expression "(pIVar16->file_).name_._M_dataplus._M_p" (field_expression "(pIVar16->file_).name_._M_dataplus" (field_expression "(pIVar16->file_).name_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;" (assignment_expression "(pIVar16->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity" (field_expression "(pIVar16->file_).name_.field_2._M_allocated_capacity" (field_expression "(pIVar16->file_).name_.field_2" (field_expression "(pIVar16->file_).name_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (field_expression "paVar14->_M_allocated_capacity" identifier -> field_identifier)) ;) }))) (expression_statement "(pIVar16->file_).name_._M_string_length = *(size_type *)((int)paVar14 + -4);" (assignment_expression "(pIVar16->file_).name_._M_string_length = *(size_type *)((int)paVar14 + -4)" (field_expression "(pIVar16->file_).name_._M_string_length" (field_expression "(pIVar16->file_).name_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar14 + -4)" * (cast_expression "(size_type *)((int)paVar14 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + -4)" ( (binary_expression "(int)paVar14 + -4" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "IVar6 = paVar14[1]._M_allocated_capacity;" (assignment_expression "IVar6 = paVar14[1]._M_allocated_capacity" identifier = (field_expression "paVar14[1]._M_allocated_capacity" (subscript_expression "paVar14[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p = (pointer)paVar14;" (assignment_expression "(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p = (pointer)paVar14" (field_expression "(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar14 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar14 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar14 + -8))" ( (cast_expression "(string *)((int)paVar14 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + -8)" ( (binary_expression "(int)paVar14 + -8" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar14" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "*(size_type *)((int)paVar14 + -4) = 0;" (assignment_expression "*(size_type *)((int)paVar14 + -4) = 0" (pointer_expression "*(size_type *)((int)paVar14 + -4)" * (cast_expression "(size_type *)((int)paVar14 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + -4)" ( (binary_expression "(int)paVar14 + -4" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "paVar14->_M_local_buf[0] = '\0';" (assignment_expression "paVar14->_M_local_buf[0] = '\0'" (subscript_expression "paVar14->_M_local_buf[0]" (field_expression "paVar14->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(pIVar16->file_).type_ = IVar6;" (assignment_expression "(pIVar16->file_).type_ = IVar6" (field_expression "(pIVar16->file_).type_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pIVar16->file_).extra_search_path_._M_dataplus._M_p =\n           (pointer)&(pIVar16->file_).extra_search_path_.field_2;" (assignment_expression "(pIVar16->file_).extra_search_path_._M_dataplus._M_p =\n           (pointer)&(pIVar16->file_).extra_search_path_.field_2" (field_expression "(pIVar16->file_).extra_search_path_._M_dataplus._M_p" (field_expression "(pIVar16->file_).extra_search_path_._M_dataplus" (field_expression "(pIVar16->file_).extra_search_path_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(pIVar16->file_).extra_search_path_.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pIVar16->file_).extra_search_path_.field_2" (field_expression "(pIVar16->file_).extra_search_path_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (if_statement "if (*(pointer *)((int)paVar14 + 0x14) == (pointer)((int)paVar14 + 0x1c)) {\n        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n        *(size_type *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity;\n        *(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 0x24);\n        *(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0x28);\n      }\n      else {\n        (pIVar16->file_).extra_search_path_._M_dataplus._M_p = *(pointer *)((int)paVar14 + 0x14);\n        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n      }" if (parenthesized_expression "(*(pointer *)((int)paVar14 + 0x14) == (pointer)((int)paVar14 + 0x1c))" ( (binary_expression "*(pointer *)((int)paVar14 + 0x14) == (pointer)((int)paVar14 + 0x1c)" (pointer_expression "*(pointer *)((int)paVar14 + 0x14)" * (cast_expression "(pointer *)((int)paVar14 + 0x14)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x14)" ( (binary_expression "(int)paVar14 + 0x14" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (call_expression "(pointer)((int)paVar14 + 0x1c)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)paVar14 + 0x1c)" ( (binary_expression "(int)paVar14 + 0x1c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) (compound_statement "{\n        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n        *(size_type *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity;\n        *(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 0x24);\n        *(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0x28);\n      }" { (expression_statement "(pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);" (assignment_expression "(pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c)" (field_expression "(pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity" (field_expression "(pIVar16->file_).extra_search_path_.field_2" (field_expression "(pIVar16->file_).extra_search_path_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar14 + 0x1c)" * (cast_expression "(size_type *)((int)paVar14 + 0x1c)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x1c)" ( (binary_expression "(int)paVar14 + 0x1c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(size_type *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity;" (assignment_expression "*(size_type *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity" (pointer_expression "*(size_type *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 4)" * (cast_expression "(size_type *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pIVar16->file_).extra_search_path_.field_2 + 4)" ( (binary_expression "(int)&(pIVar16->file_).extra_search_path_.field_2 + 4" (cast_expression "(int)&(pIVar16->file_).extra_search_path_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pIVar16->file_).extra_search_path_.field_2" & (field_expression "(pIVar16->file_).extra_search_path_.field_2" (field_expression "(pIVar16->file_).extra_search_path_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = (field_expression "paVar14[2]._M_allocated_capacity" (subscript_expression "paVar14[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 0x24);" (assignment_expression "*(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 8) =\n             *(undefined4 *)((int)paVar14 + 0x24)" (pointer_expression "*(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 8)" * (cast_expression "(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pIVar16->file_).extra_search_path_.field_2 + 8)" ( (binary_expression "(int)&(pIVar16->file_).extra_search_path_.field_2 + 8" (cast_expression "(int)&(pIVar16->file_).extra_search_path_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pIVar16->file_).extra_search_path_.field_2" & (field_expression "(pIVar16->file_).extra_search_path_.field_2" (field_expression "(pIVar16->file_).extra_search_path_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)paVar14 + 0x24)" * (cast_expression "(undefined4 *)((int)paVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x24)" ( (binary_expression "(int)paVar14 + 0x24" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0x28);" (assignment_expression "*(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 0xc) =\n             *(undefined4 *)((int)paVar14 + 0x28)" (pointer_expression "*(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 0xc)" * (cast_expression "(undefined4 *)((int)&(pIVar16->file_).extra_search_path_.field_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pIVar16->file_).extra_search_path_.field_2 + 0xc)" ( (binary_expression "(int)&(pIVar16->file_).extra_search_path_.field_2 + 0xc" (cast_expression "(int)&(pIVar16->file_).extra_search_path_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pIVar16->file_).extra_search_path_.field_2" & (field_expression "(pIVar16->file_).extra_search_path_.field_2" (field_expression "(pIVar16->file_).extra_search_path_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)paVar14 + 0x28)" * (cast_expression "(undefined4 *)((int)paVar14 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x28)" ( (binary_expression "(int)paVar14 + 0x28" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n        (pIVar16->file_).extra_search_path_._M_dataplus._M_p = *(pointer *)((int)paVar14 + 0x14);\n        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n      }" else (compound_statement "{\n        (pIVar16->file_).extra_search_path_._M_dataplus._M_p = *(pointer *)((int)paVar14 + 0x14);\n        (pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n      }" { (expression_statement "(pIVar16->file_).extra_search_path_._M_dataplus._M_p = *(pointer *)((int)paVar14 + 0x14);" (assignment_expression "(pIVar16->file_).extra_search_path_._M_dataplus._M_p = *(pointer *)((int)paVar14 + 0x14)" (field_expression "(pIVar16->file_).extra_search_path_._M_dataplus._M_p" (field_expression "(pIVar16->file_).extra_search_path_._M_dataplus" (field_expression "(pIVar16->file_).extra_search_path_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(pointer *)((int)paVar14 + 0x14)" * (cast_expression "(pointer *)((int)paVar14 + 0x14)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x14)" ( (binary_expression "(int)paVar14 + 0x14" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);" (assignment_expression "(pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c)" (field_expression "(pIVar16->file_).extra_search_path_.field_2._M_allocated_capacity" (field_expression "(pIVar16->file_).extra_search_path_.field_2" (field_expression "(pIVar16->file_).extra_search_path_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar14 + 0x1c)" * (cast_expression "(size_type *)((int)paVar14 + 0x1c)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x1c)" ( (binary_expression "(int)paVar14 + 0x1c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "paVar13 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)((int)paVar14 + 0x5c);" (assignment_expression "paVar13 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)((int)paVar14 + 0x5c)" identifier = (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)((int)paVar14 + 0x5c)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) (argument_list "((int)paVar14 + 0x5c)" ( (binary_expression "(int)paVar14 + 0x5c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(pIVar16->file_).extra_search_path_._M_string_length = *(size_type *)((int)paVar14 + 0x18);" (assignment_expression "(pIVar16->file_).extra_search_path_._M_string_length = *(size_type *)((int)paVar14 + 0x18)" (field_expression "(pIVar16->file_).extra_search_path_._M_string_length" (field_expression "(pIVar16->file_).extra_search_path_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar14 + 0x18)" * (cast_expression "(size_type *)((int)paVar14 + 0x18)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x18)" ( (binary_expression "(int)paVar14 + 0x18" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(pointer *)((int)paVar14 + 0x14) = (pointer)((int)paVar14 + 0x1c);" (assignment_expression "*(pointer *)((int)paVar14 + 0x14) = (pointer)((int)paVar14 + 0x1c)" (pointer_expression "*(pointer *)((int)paVar14 + 0x14)" * (cast_expression "(pointer *)((int)paVar14 + 0x14)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x14)" ( (binary_expression "(int)paVar14 + 0x14" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (call_expression "(pointer)((int)paVar14 + 0x1c)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)paVar14 + 0x1c)" ( (binary_expression "(int)paVar14 + 0x1c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)paVar14 + 0x18) = 0;" (assignment_expression "*(undefined4 *)((int)paVar14 + 0x18) = 0" (pointer_expression "*(undefined4 *)((int)paVar14 + 0x18)" * (cast_expression "(undefined4 *)((int)paVar14 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x18)" ( (binary_expression "(int)paVar14 + 0x18" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)paVar14 + 0x1c) = 0;" (assignment_expression "*(undefined1 *)((int)paVar14 + 0x1c) = 0" (pointer_expression "*(undefined1 *)((int)paVar14 + 0x1c)" * (cast_expression "(undefined1 *)((int)paVar14 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x1c)" ( (binary_expression "(int)paVar14 + 0x1c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(pIVar16->file_).just_symbols_ = *(bool *)((int)paVar14 + 0x2c);" (assignment_expression "(pIVar16->file_).just_symbols_ = *(bool *)((int)paVar14 + 0x2c)" (field_expression "(pIVar16->file_).just_symbols_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) = (pointer_expression "*(bool *)((int)paVar14 + 0x2c)" * (cast_expression "(bool *)((int)paVar14 + 0x2c)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x2c)" ( (binary_expression "(int)paVar14 + 0x2c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar7 = paVar14[3]._M_allocated_capacity;" (assignment_expression "uVar7 = paVar14[3]._M_allocated_capacity" identifier = (field_expression "paVar14[3]._M_allocated_capacity" (subscript_expression "paVar14[3]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "(pIVar16->file_).options_.as_needed_ = (bool)(char)uVar7;" (assignment_expression "(pIVar16->file_).options_.as_needed_ = (bool)(char)uVar7" (field_expression "(pIVar16->file_).options_.as_needed_" (field_expression "(pIVar16->file_).options_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(bool)(char)uVar7" ( (type_descriptor "bool" primitive_type) ) (cast_expression "(char)uVar7" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "(pIVar16->file_).options_.Bdynamic_ = (bool)(char)((uint)uVar7 >> 8);" (assignment_expression "(pIVar16->file_).options_.Bdynamic_ = (bool)(char)((uint)uVar7 >> 8)" (field_expression "(pIVar16->file_).options_.Bdynamic_" (field_expression "(pIVar16->file_).options_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(bool)(char)((uint)uVar7 >> 8)" ( (type_descriptor "bool" primitive_type) ) (cast_expression "(char)((uint)uVar7 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar7 >> 8)" ( (binary_expression "(uint)uVar7 >> 8" (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))))) ;) (expression_statement "*(short *)&(pIVar16->file_).options_.field_0x2 = (short)((uint)uVar7 >> 0x10);" (assignment_expression "*(short *)&(pIVar16->file_).options_.field_0x2 = (short)((uint)uVar7 >> 0x10)" (pointer_expression "*(short *)&(pIVar16->file_).options_.field_0x2" * (cast_expression "(short *)&(pIVar16->file_).options_.field_0x2" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pIVar16->file_).options_.field_0x2" & (field_expression "(pIVar16->file_).options_.field_0x2" (field_expression "(pIVar16->file_).options_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = (cast_expression "(short)((uint)uVar7 >> 0x10)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((uint)uVar7 >> 0x10)" ( (binary_expression "(uint)uVar7 >> 0x10" (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "(pIVar16->file_).options_.format_enum_ = *(Object_format *)((int)paVar14 + 0x34);" (assignment_expression "(pIVar16->file_).options_.format_enum_ = *(Object_format *)((int)paVar14 + 0x34)" (field_expression "(pIVar16->file_).options_.format_enum_" (field_expression "(pIVar16->file_).options_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (pointer_expression "*(Object_format *)((int)paVar14 + 0x34)" * (cast_expression "(Object_format *)((int)paVar14 + 0x34)" ( (type_descriptor "Object_format *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x34)" ( (binary_expression "(int)paVar14 + 0x34" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)&(pIVar16->file_).options_.whole_archive_ =\n           *(undefined4 *)((int)paVar14 + 0x38);" (assignment_expression "*(undefined4 *)&(pIVar16->file_).options_.whole_archive_ =\n           *(undefined4 *)((int)paVar14 + 0x38)" (pointer_expression "*(undefined4 *)&(pIVar16->file_).options_.whole_archive_" * (cast_expression "(undefined4 *)&(pIVar16->file_).options_.whole_archive_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pIVar16->file_).options_.whole_archive_" & (field_expression "(pIVar16->file_).options_.whole_archive_" (field_expression "(pIVar16->file_).options_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = (pointer_expression "*(undefined4 *)((int)paVar14 + 0x38)" * (cast_expression "(undefined4 *)((int)paVar14 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x38)" ( (binary_expression "(int)paVar14 + 0x38" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(pIVar16->file_).options_.incremental_disposition_ =\n           *(Incremental_disposition *)((int)paVar14 + 0x3c);" (assignment_expression "(pIVar16->file_).options_.incremental_disposition_ =\n           *(Incremental_disposition *)((int)paVar14 + 0x3c)" (field_expression "(pIVar16->file_).options_.incremental_disposition_" (field_expression "(pIVar16->file_).options_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (pointer_expression "*(Incremental_disposition *)((int)paVar14 + 0x3c)" * (cast_expression "(Incremental_disposition *)((int)paVar14 + 0x3c)" ( (type_descriptor "Incremental_disposition *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x3c)" ( (binary_expression "(int)paVar14 + 0x3c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(pIVar16->file_).arg_serial_ = paVar14[4]._M_allocated_capacity;" (assignment_expression "(pIVar16->file_).arg_serial_ = paVar14[4]._M_allocated_capacity" (field_expression "(pIVar16->file_).arg_serial_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) = (field_expression "paVar14[4]._M_allocated_capacity" (subscript_expression "paVar14[4]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pIVar16->group_ = *(Input_file_group **)((int)paVar14 + 0x44);" (assignment_expression "pIVar16->group_ = *(Input_file_group **)((int)paVar14 + 0x44)" (field_expression "pIVar16->group_" identifier -> field_identifier) = (pointer_expression "*(Input_file_group **)((int)paVar14 + 0x44)" * (cast_expression "(Input_file_group **)((int)paVar14 + 0x44)" ( (type_descriptor "Input_file_group **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)paVar14 + 0x44)" ( (binary_expression "(int)paVar14 + 0x44" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pIVar16->lib_ = *(Input_file_lib **)((int)paVar14 + 0x48);" (assignment_expression "pIVar16->lib_ = *(Input_file_lib **)((int)paVar14 + 0x48)" (field_expression "pIVar16->lib_" identifier -> field_identifier) = (pointer_expression "*(Input_file_lib **)((int)paVar14 + 0x48)" * (cast_expression "(Input_file_lib **)((int)paVar14 + 0x48)" ( (type_descriptor "Input_file_lib **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)paVar14 + 0x48)" ( (binary_expression "(int)paVar14 + 0x48" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pIVar16->script_info_ = *(Script_info **)((int)paVar14 + 0x4c);" (assignment_expression "pIVar16->script_info_ = *(Script_info **)((int)paVar14 + 0x4c)" (field_expression "pIVar16->script_info_" identifier -> field_identifier) = (pointer_expression "*(Script_info **)((int)paVar14 + 0x4c)" * (cast_expression "(Script_info **)((int)paVar14 + 0x4c)" ( (type_descriptor "Script_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)paVar14 + 0x4c)" ( (binary_expression "(int)paVar14 + 0x4c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar14 = paVar13;" (assignment_expression "paVar14 = paVar13" identifier = identifier) ;) (expression_statement "pIVar16 = pIVar16 + 1;" (assignment_expression "pIVar16 = pIVar16 + 1" identifier = (binary_expression "pIVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(paVar13 != &pIVar2[uVar15 + 1].file_.name_.field_2)" ( (binary_expression "paVar13 != &pIVar2[uVar15 + 1].file_.name_.field_2" identifier != (pointer_expression "&pIVar2[uVar15 + 1].file_.name_.field_2" & (field_expression "pIVar2[uVar15 + 1].file_.name_.field_2" (field_expression "pIVar2[uVar15 + 1].file_.name_" (field_expression "pIVar2[uVar15 + 1].file_" (subscript_expression "pIVar2[uVar15 + 1]" identifier [ (binary_expression "uVar15 + 1" identifier + number_literal) ]) . field_identifier) . field_identifier) . field_identifier))) )) ;) (expression_statement "local_2c = local_34 + uVar15 + 2;" (assignment_expression "local_2c = local_34 + uVar15 + 2" identifier = (binary_expression "local_34 + uVar15 + 2" (binary_expression "local_34 + uVar15" identifier + identifier) + number_literal)) ;) })) (expression_statement "pIVar16 = pIVar2;" (assignment_expression "pIVar16 = pIVar2" identifier = identifier) ;) (if_statement "if (__position._M_current != pIVar3) {\n    uVar15 = ((uint)((int)pIVar3 + (-0x5c - (int)__position._M_current)) >> 2) * 0x29bd37a7 &\n             0x3fffffff;\n    paVar14 = &((__position._M_current)->file_).name_.field_2;\n    pIVar17 = local_2c;\n    do {\n      bVar1 = *(bool *)((int)paVar14 + -0xc);\n      (pIVar17->file_).name_._M_dataplus._M_p = (pointer)&(pIVar17->file_).name_.field_2;\n      pIVar17->is_file_ = bVar1;\n      psVar10 = (size_type *)(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p;\n      if (paVar14 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar10) {\n        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 4) = *(size_type *)((int)paVar14 + 4);\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 8) = *(size_type *)((int)paVar14 + 8);\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0xc);\n      }\n      else {\n        (pIVar17->file_).name_._M_dataplus._M_p = (pointer)psVar10;\n        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n      }\n      sVar5 = *(size_type *)((int)paVar14 + -4);\n      psVar10 = *(size_type **)((int)paVar14 + 0x14);\n      (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p = (pointer)paVar14;\n      *(size_type *)((int)paVar14 + -4) = 0;\n      (pIVar17->file_).name_._M_string_length = sVar5;\n      paVar14->_M_local_buf[0] = '\0';\n      (pIVar17->file_).type_ = paVar14[1]._M_allocated_capacity;\n      (pIVar17->file_).extra_search_path_._M_dataplus._M_p =\n           (pointer)&(pIVar17->file_).extra_search_path_.field_2;\n      if (psVar10 == (size_type *)((int)paVar14 + 0x1c)) {\n        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity;\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 8) =\n             *(size_type *)((int)paVar14 + 0x24);\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0x28);\n      }\n      else {\n        (pIVar17->file_).extra_search_path_._M_dataplus._M_p = (pointer)psVar10;\n        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n      }\n      *(size_type **)((int)paVar14 + 0x14) = (size_type *)((int)paVar14 + 0x1c);\n      paVar13 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)((int)paVar14 + 0x5c);\n      sVar5 = *(size_type *)((int)paVar14 + 0x18);\n      *(char *)((int)paVar14 + 0x1c) = '\0';\n      (pIVar17->file_).just_symbols_ = *(bool *)((int)paVar14 + 0x2c);\n      sVar8 = paVar14[3]._M_allocated_capacity;\n      *(size_type *)((int)paVar14 + 0x18) = 0;\n      (pIVar17->file_).options_.as_needed_ = (bool)(char)sVar8;\n      (pIVar17->file_).options_.Bdynamic_ = (bool)(char)(sVar8 >> 8);\n      *(short *)&(pIVar17->file_).options_.field_0x2 = (short)(sVar8 >> 0x10);\n      OVar9 = *(Object_format *)((int)paVar14 + 0x34);\n      (pIVar17->file_).extra_search_path_._M_string_length = sVar5;\n      (pIVar17->file_).options_.format_enum_ = OVar9;\n      *(size_type *)&(pIVar17->file_).options_.whole_archive_ = *(size_type *)((int)paVar14 + 0x38);\n      (pIVar17->file_).options_.incremental_disposition_ =\n           *(Incremental_disposition *)((int)paVar14 + 0x3c);\n      (pIVar17->file_).arg_serial_ = paVar14[4]._M_allocated_capacity;\n      pIVar17->group_ = *(Input_file_group **)((int)paVar14 + 0x44);\n      pIVar17->lib_ = *(Input_file_lib **)((int)paVar14 + 0x48);\n      pIVar17->script_info_ = *(Script_info **)((int)paVar14 + 0x4c);\n      paVar14 = paVar13;\n      pIVar17 = pIVar17 + 1;\n    } while (paVar13 != &__position._M_current[uVar15 + 1].file_.name_.field_2);\n    local_2c = local_2c + uVar15 + 1;\n  }" if (parenthesized_expression "(__position._M_current != pIVar3)" ( (binary_expression "__position._M_current != pIVar3" (field_expression "__position._M_current" identifier . field_identifier) != identifier) )) (compound_statement "{\n    uVar15 = ((uint)((int)pIVar3 + (-0x5c - (int)__position._M_current)) >> 2) * 0x29bd37a7 &\n             0x3fffffff;\n    paVar14 = &((__position._M_current)->file_).name_.field_2;\n    pIVar17 = local_2c;\n    do {\n      bVar1 = *(bool *)((int)paVar14 + -0xc);\n      (pIVar17->file_).name_._M_dataplus._M_p = (pointer)&(pIVar17->file_).name_.field_2;\n      pIVar17->is_file_ = bVar1;\n      psVar10 = (size_type *)(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p;\n      if (paVar14 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar10) {\n        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 4) = *(size_type *)((int)paVar14 + 4);\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 8) = *(size_type *)((int)paVar14 + 8);\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0xc);\n      }\n      else {\n        (pIVar17->file_).name_._M_dataplus._M_p = (pointer)psVar10;\n        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n      }\n      sVar5 = *(size_type *)((int)paVar14 + -4);\n      psVar10 = *(size_type **)((int)paVar14 + 0x14);\n      (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p = (pointer)paVar14;\n      *(size_type *)((int)paVar14 + -4) = 0;\n      (pIVar17->file_).name_._M_string_length = sVar5;\n      paVar14->_M_local_buf[0] = '\0';\n      (pIVar17->file_).type_ = paVar14[1]._M_allocated_capacity;\n      (pIVar17->file_).extra_search_path_._M_dataplus._M_p =\n           (pointer)&(pIVar17->file_).extra_search_path_.field_2;\n      if (psVar10 == (size_type *)((int)paVar14 + 0x1c)) {\n        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity;\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 8) =\n             *(size_type *)((int)paVar14 + 0x24);\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0x28);\n      }\n      else {\n        (pIVar17->file_).extra_search_path_._M_dataplus._M_p = (pointer)psVar10;\n        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n      }\n      *(size_type **)((int)paVar14 + 0x14) = (size_type *)((int)paVar14 + 0x1c);\n      paVar13 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)((int)paVar14 + 0x5c);\n      sVar5 = *(size_type *)((int)paVar14 + 0x18);\n      *(char *)((int)paVar14 + 0x1c) = '\0';\n      (pIVar17->file_).just_symbols_ = *(bool *)((int)paVar14 + 0x2c);\n      sVar8 = paVar14[3]._M_allocated_capacity;\n      *(size_type *)((int)paVar14 + 0x18) = 0;\n      (pIVar17->file_).options_.as_needed_ = (bool)(char)sVar8;\n      (pIVar17->file_).options_.Bdynamic_ = (bool)(char)(sVar8 >> 8);\n      *(short *)&(pIVar17->file_).options_.field_0x2 = (short)(sVar8 >> 0x10);\n      OVar9 = *(Object_format *)((int)paVar14 + 0x34);\n      (pIVar17->file_).extra_search_path_._M_string_length = sVar5;\n      (pIVar17->file_).options_.format_enum_ = OVar9;\n      *(size_type *)&(pIVar17->file_).options_.whole_archive_ = *(size_type *)((int)paVar14 + 0x38);\n      (pIVar17->file_).options_.incremental_disposition_ =\n           *(Incremental_disposition *)((int)paVar14 + 0x3c);\n      (pIVar17->file_).arg_serial_ = paVar14[4]._M_allocated_capacity;\n      pIVar17->group_ = *(Input_file_group **)((int)paVar14 + 0x44);\n      pIVar17->lib_ = *(Input_file_lib **)((int)paVar14 + 0x48);\n      pIVar17->script_info_ = *(Script_info **)((int)paVar14 + 0x4c);\n      paVar14 = paVar13;\n      pIVar17 = pIVar17 + 1;\n    } while (paVar13 != &__position._M_current[uVar15 + 1].file_.name_.field_2);\n    local_2c = local_2c + uVar15 + 1;\n  }" { (expression_statement "uVar15 = ((uint)((int)pIVar3 + (-0x5c - (int)__position._M_current)) >> 2) * 0x29bd37a7 &\n             0x3fffffff;" (assignment_expression "uVar15 = ((uint)((int)pIVar3 + (-0x5c - (int)__position._M_current)) >> 2) * 0x29bd37a7 &\n             0x3fffffff" identifier = (binary_expression "((uint)((int)pIVar3 + (-0x5c - (int)__position._M_current)) >> 2) * 0x29bd37a7 &\n             0x3fffffff" (binary_expression "((uint)((int)pIVar3 + (-0x5c - (int)__position._M_current)) >> 2) * 0x29bd37a7" (parenthesized_expression "((uint)((int)pIVar3 + (-0x5c - (int)__position._M_current)) >> 2)" ( (binary_expression "(uint)((int)pIVar3 + (-0x5c - (int)__position._M_current)) >> 2" (call_expression "(uint)((int)pIVar3 + (-0x5c - (int)__position._M_current))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pIVar3 + (-0x5c - (int)__position._M_current))" ( (binary_expression "(int)pIVar3 + (-0x5c - (int)__position._M_current)" (cast_expression "(int)pIVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x5c - (int)__position._M_current)" ( (binary_expression "-0x5c - (int)__position._M_current" number_literal - (cast_expression "(int)__position._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__position._M_current" identifier . field_identifier))) ))) ))) >> number_literal) )) * number_literal) & number_literal)) ;) (expression_statement "paVar14 = &((__position._M_current)->file_).name_.field_2;" (assignment_expression "paVar14 = &((__position._M_current)->file_).name_.field_2" identifier = (pointer_expression "&((__position._M_current)->file_).name_.field_2" & (field_expression "((__position._M_current)->file_).name_.field_2" (field_expression "((__position._M_current)->file_).name_" (parenthesized_expression "((__position._M_current)->file_)" ( (field_expression "(__position._M_current)->file_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "pIVar17 = local_2c;" (assignment_expression "pIVar17 = local_2c" identifier = identifier) ;) (do_statement "do {\n      bVar1 = *(bool *)((int)paVar14 + -0xc);\n      (pIVar17->file_).name_._M_dataplus._M_p = (pointer)&(pIVar17->file_).name_.field_2;\n      pIVar17->is_file_ = bVar1;\n      psVar10 = (size_type *)(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p;\n      if (paVar14 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar10) {\n        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 4) = *(size_type *)((int)paVar14 + 4);\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 8) = *(size_type *)((int)paVar14 + 8);\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0xc);\n      }\n      else {\n        (pIVar17->file_).name_._M_dataplus._M_p = (pointer)psVar10;\n        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n      }\n      sVar5 = *(size_type *)((int)paVar14 + -4);\n      psVar10 = *(size_type **)((int)paVar14 + 0x14);\n      (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p = (pointer)paVar14;\n      *(size_type *)((int)paVar14 + -4) = 0;\n      (pIVar17->file_).name_._M_string_length = sVar5;\n      paVar14->_M_local_buf[0] = '\0';\n      (pIVar17->file_).type_ = paVar14[1]._M_allocated_capacity;\n      (pIVar17->file_).extra_search_path_._M_dataplus._M_p =\n           (pointer)&(pIVar17->file_).extra_search_path_.field_2;\n      if (psVar10 == (size_type *)((int)paVar14 + 0x1c)) {\n        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity;\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 8) =\n             *(size_type *)((int)paVar14 + 0x24);\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0x28);\n      }\n      else {\n        (pIVar17->file_).extra_search_path_._M_dataplus._M_p = (pointer)psVar10;\n        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n      }\n      *(size_type **)((int)paVar14 + 0x14) = (size_type *)((int)paVar14 + 0x1c);\n      paVar13 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)((int)paVar14 + 0x5c);\n      sVar5 = *(size_type *)((int)paVar14 + 0x18);\n      *(char *)((int)paVar14 + 0x1c) = '\0';\n      (pIVar17->file_).just_symbols_ = *(bool *)((int)paVar14 + 0x2c);\n      sVar8 = paVar14[3]._M_allocated_capacity;\n      *(size_type *)((int)paVar14 + 0x18) = 0;\n      (pIVar17->file_).options_.as_needed_ = (bool)(char)sVar8;\n      (pIVar17->file_).options_.Bdynamic_ = (bool)(char)(sVar8 >> 8);\n      *(short *)&(pIVar17->file_).options_.field_0x2 = (short)(sVar8 >> 0x10);\n      OVar9 = *(Object_format *)((int)paVar14 + 0x34);\n      (pIVar17->file_).extra_search_path_._M_string_length = sVar5;\n      (pIVar17->file_).options_.format_enum_ = OVar9;\n      *(size_type *)&(pIVar17->file_).options_.whole_archive_ = *(size_type *)((int)paVar14 + 0x38);\n      (pIVar17->file_).options_.incremental_disposition_ =\n           *(Incremental_disposition *)((int)paVar14 + 0x3c);\n      (pIVar17->file_).arg_serial_ = paVar14[4]._M_allocated_capacity;\n      pIVar17->group_ = *(Input_file_group **)((int)paVar14 + 0x44);\n      pIVar17->lib_ = *(Input_file_lib **)((int)paVar14 + 0x48);\n      pIVar17->script_info_ = *(Script_info **)((int)paVar14 + 0x4c);\n      paVar14 = paVar13;\n      pIVar17 = pIVar17 + 1;\n    } while (paVar13 != &__position._M_current[uVar15 + 1].file_.name_.field_2);" do (compound_statement "{\n      bVar1 = *(bool *)((int)paVar14 + -0xc);\n      (pIVar17->file_).name_._M_dataplus._M_p = (pointer)&(pIVar17->file_).name_.field_2;\n      pIVar17->is_file_ = bVar1;\n      psVar10 = (size_type *)(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p;\n      if (paVar14 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar10) {\n        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 4) = *(size_type *)((int)paVar14 + 4);\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 8) = *(size_type *)((int)paVar14 + 8);\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0xc);\n      }\n      else {\n        (pIVar17->file_).name_._M_dataplus._M_p = (pointer)psVar10;\n        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n      }\n      sVar5 = *(size_type *)((int)paVar14 + -4);\n      psVar10 = *(size_type **)((int)paVar14 + 0x14);\n      (((string *)((int)paVar14 + -8))->_M_dataplus)._M_p = (pointer)paVar14;\n      *(size_type *)((int)paVar14 + -4) = 0;\n      (pIVar17->file_).name_._M_string_length = sVar5;\n      paVar14->_M_local_buf[0] = '\0';\n      (pIVar17->file_).type_ = paVar14[1]._M_allocated_capacity;\n      (pIVar17->file_).extra_search_path_._M_dataplus._M_p =\n           (pointer)&(pIVar17->file_).extra_search_path_.field_2;\n      if (psVar10 == (size_type *)((int)paVar14 + 0x1c)) {\n        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity;\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 8) =\n             *(size_type *)((int)paVar14 + 0x24);\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0x28);\n      }\n      else {\n        (pIVar17->file_).extra_search_path_._M_dataplus._M_p = (pointer)psVar10;\n        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n      }\n      *(size_type **)((int)paVar14 + 0x14) = (size_type *)((int)paVar14 + 0x1c);\n      paVar13 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)((int)paVar14 + 0x5c);\n      sVar5 = *(size_type *)((int)paVar14 + 0x18);\n      *(char *)((int)paVar14 + 0x1c) = '\0';\n      (pIVar17->file_).just_symbols_ = *(bool *)((int)paVar14 + 0x2c);\n      sVar8 = paVar14[3]._M_allocated_capacity;\n      *(size_type *)((int)paVar14 + 0x18) = 0;\n      (pIVar17->file_).options_.as_needed_ = (bool)(char)sVar8;\n      (pIVar17->file_).options_.Bdynamic_ = (bool)(char)(sVar8 >> 8);\n      *(short *)&(pIVar17->file_).options_.field_0x2 = (short)(sVar8 >> 0x10);\n      OVar9 = *(Object_format *)((int)paVar14 + 0x34);\n      (pIVar17->file_).extra_search_path_._M_string_length = sVar5;\n      (pIVar17->file_).options_.format_enum_ = OVar9;\n      *(size_type *)&(pIVar17->file_).options_.whole_archive_ = *(size_type *)((int)paVar14 + 0x38);\n      (pIVar17->file_).options_.incremental_disposition_ =\n           *(Incremental_disposition *)((int)paVar14 + 0x3c);\n      (pIVar17->file_).arg_serial_ = paVar14[4]._M_allocated_capacity;\n      pIVar17->group_ = *(Input_file_group **)((int)paVar14 + 0x44);\n      pIVar17->lib_ = *(Input_file_lib **)((int)paVar14 + 0x48);\n      pIVar17->script_info_ = *(Script_info **)((int)paVar14 + 0x4c);\n      paVar14 = paVar13;\n      pIVar17 = pIVar17 + 1;\n    }" { (expression_statement "bVar1 = *(bool *)((int)paVar14 + -0xc);" (assignment_expression "bVar1 = *(bool *)((int)paVar14 + -0xc)" identifier = (pointer_expression "*(bool *)((int)paVar14 + -0xc)" * (cast_expression "(bool *)((int)paVar14 + -0xc)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + -0xc)" ( (binary_expression "(int)paVar14 + -0xc" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(pIVar17->file_).name_._M_dataplus._M_p = (pointer)&(pIVar17->file_).name_.field_2;" (assignment_expression "(pIVar17->file_).name_._M_dataplus._M_p = (pointer)&(pIVar17->file_).name_.field_2" (field_expression "(pIVar17->file_).name_._M_dataplus._M_p" (field_expression "(pIVar17->file_).name_._M_dataplus" (field_expression "(pIVar17->file_).name_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(pIVar17->file_).name_.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pIVar17->file_).name_.field_2" (field_expression "(pIVar17->file_).name_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "pIVar17->is_file_ = bVar1;" (assignment_expression "pIVar17->is_file_ = bVar1" (field_expression "pIVar17->is_file_" identifier -> field_identifier) = identifier) ;) (expression_statement "psVar10 = (size_type *)(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p;" (assignment_expression "psVar10 = (size_type *)(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p" identifier = (cast_expression "(size_type *)(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar14 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar14 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar14 + -8))" ( (cast_expression "(string *)((int)paVar14 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + -8)" ( (binary_expression "(int)paVar14 + -8" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier))) ;) (if_statement "if (paVar14 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar10) {\n        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 4) = *(size_type *)((int)paVar14 + 4);\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 8) = *(size_type *)((int)paVar14 + 8);\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0xc);\n      }\n      else {\n        (pIVar17->file_).name_._M_dataplus._M_p = (pointer)psVar10;\n        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n      }" if (parenthesized_expression "(paVar14 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar10)" ( (binary_expression "paVar14 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar10)" identifier == (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar10)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)psVar10" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)psVar10" identifier * (ERROR ")" )) identifier)) ))) )) (compound_statement "{\n        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 4) = *(size_type *)((int)paVar14 + 4);\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 8) = *(size_type *)((int)paVar14 + 8);\n        *(size_type *)((int)&(pIVar17->file_).name_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0xc);\n      }" { (expression_statement "(pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;" (assignment_expression "(pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity" (field_expression "(pIVar17->file_).name_.field_2._M_allocated_capacity" (field_expression "(pIVar17->file_).name_.field_2" (field_expression "(pIVar17->file_).name_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (field_expression "paVar14->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "*(size_type *)((int)&(pIVar17->file_).name_.field_2 + 4) = *(size_type *)((int)paVar14 + 4);" (assignment_expression "*(size_type *)((int)&(pIVar17->file_).name_.field_2 + 4) = *(size_type *)((int)paVar14 + 4)" (pointer_expression "*(size_type *)((int)&(pIVar17->file_).name_.field_2 + 4)" * (cast_expression "(size_type *)((int)&(pIVar17->file_).name_.field_2 + 4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pIVar17->file_).name_.field_2 + 4)" ( (binary_expression "(int)&(pIVar17->file_).name_.field_2 + 4" (cast_expression "(int)&(pIVar17->file_).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pIVar17->file_).name_.field_2" & (field_expression "(pIVar17->file_).name_.field_2" (field_expression "(pIVar17->file_).name_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = (pointer_expression "*(size_type *)((int)paVar14 + 4)" * (cast_expression "(size_type *)((int)paVar14 + 4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 4)" ( (binary_expression "(int)paVar14 + 4" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(size_type *)((int)&(pIVar17->file_).name_.field_2 + 8) = *(size_type *)((int)paVar14 + 8);" (assignment_expression "*(size_type *)((int)&(pIVar17->file_).name_.field_2 + 8) = *(size_type *)((int)paVar14 + 8)" (pointer_expression "*(size_type *)((int)&(pIVar17->file_).name_.field_2 + 8)" * (cast_expression "(size_type *)((int)&(pIVar17->file_).name_.field_2 + 8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pIVar17->file_).name_.field_2 + 8)" ( (binary_expression "(int)&(pIVar17->file_).name_.field_2 + 8" (cast_expression "(int)&(pIVar17->file_).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pIVar17->file_).name_.field_2" & (field_expression "(pIVar17->file_).name_.field_2" (field_expression "(pIVar17->file_).name_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = (pointer_expression "*(size_type *)((int)paVar14 + 8)" * (cast_expression "(size_type *)((int)paVar14 + 8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 8)" ( (binary_expression "(int)paVar14 + 8" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(size_type *)((int)&(pIVar17->file_).name_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0xc);" (assignment_expression "*(size_type *)((int)&(pIVar17->file_).name_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0xc)" (pointer_expression "*(size_type *)((int)&(pIVar17->file_).name_.field_2 + 0xc)" * (cast_expression "(size_type *)((int)&(pIVar17->file_).name_.field_2 + 0xc)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pIVar17->file_).name_.field_2 + 0xc)" ( (binary_expression "(int)&(pIVar17->file_).name_.field_2 + 0xc" (cast_expression "(int)&(pIVar17->file_).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pIVar17->file_).name_.field_2" & (field_expression "(pIVar17->file_).name_.field_2" (field_expression "(pIVar17->file_).name_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = (pointer_expression "*(size_type *)((int)paVar14 + 0xc)" * (cast_expression "(size_type *)((int)paVar14 + 0xc)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0xc)" ( (binary_expression "(int)paVar14 + 0xc" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n        (pIVar17->file_).name_._M_dataplus._M_p = (pointer)psVar10;\n        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n      }" else (compound_statement "{\n        (pIVar17->file_).name_._M_dataplus._M_p = (pointer)psVar10;\n        (pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;\n      }" { (expression_statement "(pIVar17->file_).name_._M_dataplus._M_p = (pointer)psVar10;" (assignment_expression "(pIVar17->file_).name_._M_dataplus._M_p = (pointer)psVar10" (field_expression "(pIVar17->file_).name_._M_dataplus._M_p" (field_expression "(pIVar17->file_).name_._M_dataplus" (field_expression "(pIVar17->file_).name_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)psVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "(pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity;" (assignment_expression "(pIVar17->file_).name_.field_2._M_allocated_capacity = paVar14->_M_allocated_capacity" (field_expression "(pIVar17->file_).name_.field_2._M_allocated_capacity" (field_expression "(pIVar17->file_).name_.field_2" (field_expression "(pIVar17->file_).name_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (field_expression "paVar14->_M_allocated_capacity" identifier -> field_identifier)) ;) }))) (expression_statement "sVar5 = *(size_type *)((int)paVar14 + -4);" (assignment_expression "sVar5 = *(size_type *)((int)paVar14 + -4)" identifier = (pointer_expression "*(size_type *)((int)paVar14 + -4)" * (cast_expression "(size_type *)((int)paVar14 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + -4)" ( (binary_expression "(int)paVar14 + -4" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "psVar10 = *(size_type **)((int)paVar14 + 0x14);" (assignment_expression "psVar10 = *(size_type **)((int)paVar14 + 0x14)" identifier = (pointer_expression "*(size_type **)((int)paVar14 + 0x14)" * (cast_expression "(size_type **)((int)paVar14 + 0x14)" ( (type_descriptor "size_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)paVar14 + 0x14)" ( (binary_expression "(int)paVar14 + 0x14" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p = (pointer)paVar14;" (assignment_expression "(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p = (pointer)paVar14" (field_expression "(((string *)((int)paVar14 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar14 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar14 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar14 + -8))" ( (cast_expression "(string *)((int)paVar14 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + -8)" ( (binary_expression "(int)paVar14 + -8" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar14" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "*(size_type *)((int)paVar14 + -4) = 0;" (assignment_expression "*(size_type *)((int)paVar14 + -4) = 0" (pointer_expression "*(size_type *)((int)paVar14 + -4)" * (cast_expression "(size_type *)((int)paVar14 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + -4)" ( (binary_expression "(int)paVar14 + -4" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(pIVar17->file_).name_._M_string_length = sVar5;" (assignment_expression "(pIVar17->file_).name_._M_string_length = sVar5" (field_expression "(pIVar17->file_).name_._M_string_length" (field_expression "(pIVar17->file_).name_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "paVar14->_M_local_buf[0] = '\0';" (assignment_expression "paVar14->_M_local_buf[0] = '\0'" (subscript_expression "paVar14->_M_local_buf[0]" (field_expression "paVar14->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(pIVar17->file_).type_ = paVar14[1]._M_allocated_capacity;" (assignment_expression "(pIVar17->file_).type_ = paVar14[1]._M_allocated_capacity" (field_expression "(pIVar17->file_).type_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) = (field_expression "paVar14[1]._M_allocated_capacity" (subscript_expression "paVar14[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "(pIVar17->file_).extra_search_path_._M_dataplus._M_p =\n           (pointer)&(pIVar17->file_).extra_search_path_.field_2;" (assignment_expression "(pIVar17->file_).extra_search_path_._M_dataplus._M_p =\n           (pointer)&(pIVar17->file_).extra_search_path_.field_2" (field_expression "(pIVar17->file_).extra_search_path_._M_dataplus._M_p" (field_expression "(pIVar17->file_).extra_search_path_._M_dataplus" (field_expression "(pIVar17->file_).extra_search_path_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(pIVar17->file_).extra_search_path_.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pIVar17->file_).extra_search_path_.field_2" (field_expression "(pIVar17->file_).extra_search_path_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (if_statement "if (psVar10 == (size_type *)((int)paVar14 + 0x1c)) {\n        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity;\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 8) =\n             *(size_type *)((int)paVar14 + 0x24);\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0x28);\n      }\n      else {\n        (pIVar17->file_).extra_search_path_._M_dataplus._M_p = (pointer)psVar10;\n        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n      }" if (parenthesized_expression "(psVar10 == (size_type *)((int)paVar14 + 0x1c))" ( (binary_expression "psVar10 == (size_type *)((int)paVar14 + 0x1c)" identifier == (cast_expression "(size_type *)((int)paVar14 + 0x1c)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x1c)" ( (binary_expression "(int)paVar14 + 0x1c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) (compound_statement "{\n        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity;\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 8) =\n             *(size_type *)((int)paVar14 + 0x24);\n        *(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0x28);\n      }" { (expression_statement "(pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);" (assignment_expression "(pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c)" (field_expression "(pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity" (field_expression "(pIVar17->file_).extra_search_path_.field_2" (field_expression "(pIVar17->file_).extra_search_path_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar14 + 0x1c)" * (cast_expression "(size_type *)((int)paVar14 + 0x1c)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x1c)" ( (binary_expression "(int)paVar14 + 0x1c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity;" (assignment_expression "*(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 4) =\n             paVar14[2]._M_allocated_capacity" (pointer_expression "*(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 4)" * (cast_expression "(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pIVar17->file_).extra_search_path_.field_2 + 4)" ( (binary_expression "(int)&(pIVar17->file_).extra_search_path_.field_2 + 4" (cast_expression "(int)&(pIVar17->file_).extra_search_path_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pIVar17->file_).extra_search_path_.field_2" & (field_expression "(pIVar17->file_).extra_search_path_.field_2" (field_expression "(pIVar17->file_).extra_search_path_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = (field_expression "paVar14[2]._M_allocated_capacity" (subscript_expression "paVar14[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "*(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 8) =\n             *(size_type *)((int)paVar14 + 0x24);" (assignment_expression "*(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 8) =\n             *(size_type *)((int)paVar14 + 0x24)" (pointer_expression "*(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 8)" * (cast_expression "(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pIVar17->file_).extra_search_path_.field_2 + 8)" ( (binary_expression "(int)&(pIVar17->file_).extra_search_path_.field_2 + 8" (cast_expression "(int)&(pIVar17->file_).extra_search_path_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pIVar17->file_).extra_search_path_.field_2" & (field_expression "(pIVar17->file_).extra_search_path_.field_2" (field_expression "(pIVar17->file_).extra_search_path_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = (pointer_expression "*(size_type *)((int)paVar14 + 0x24)" * (cast_expression "(size_type *)((int)paVar14 + 0x24)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x24)" ( (binary_expression "(int)paVar14 + 0x24" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0x28);" (assignment_expression "*(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 0xc) =\n             *(size_type *)((int)paVar14 + 0x28)" (pointer_expression "*(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 0xc)" * (cast_expression "(size_type *)((int)&(pIVar17->file_).extra_search_path_.field_2 + 0xc)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pIVar17->file_).extra_search_path_.field_2 + 0xc)" ( (binary_expression "(int)&(pIVar17->file_).extra_search_path_.field_2 + 0xc" (cast_expression "(int)&(pIVar17->file_).extra_search_path_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pIVar17->file_).extra_search_path_.field_2" & (field_expression "(pIVar17->file_).extra_search_path_.field_2" (field_expression "(pIVar17->file_).extra_search_path_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = (pointer_expression "*(size_type *)((int)paVar14 + 0x28)" * (cast_expression "(size_type *)((int)paVar14 + 0x28)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x28)" ( (binary_expression "(int)paVar14 + 0x28" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n        (pIVar17->file_).extra_search_path_._M_dataplus._M_p = (pointer)psVar10;\n        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n      }" else (compound_statement "{\n        (pIVar17->file_).extra_search_path_._M_dataplus._M_p = (pointer)psVar10;\n        (pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);\n      }" { (expression_statement "(pIVar17->file_).extra_search_path_._M_dataplus._M_p = (pointer)psVar10;" (assignment_expression "(pIVar17->file_).extra_search_path_._M_dataplus._M_p = (pointer)psVar10" (field_expression "(pIVar17->file_).extra_search_path_._M_dataplus._M_p" (field_expression "(pIVar17->file_).extra_search_path_._M_dataplus" (field_expression "(pIVar17->file_).extra_search_path_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)psVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "(pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c);" (assignment_expression "(pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity =\n             *(size_type *)((int)paVar14 + 0x1c)" (field_expression "(pIVar17->file_).extra_search_path_.field_2._M_allocated_capacity" (field_expression "(pIVar17->file_).extra_search_path_.field_2" (field_expression "(pIVar17->file_).extra_search_path_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar14 + 0x1c)" * (cast_expression "(size_type *)((int)paVar14 + 0x1c)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x1c)" ( (binary_expression "(int)paVar14 + 0x1c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "*(size_type **)((int)paVar14 + 0x14) = (size_type *)((int)paVar14 + 0x1c);" (assignment_expression "*(size_type **)((int)paVar14 + 0x14) = (size_type *)((int)paVar14 + 0x1c)" (pointer_expression "*(size_type **)((int)paVar14 + 0x14)" * (cast_expression "(size_type **)((int)paVar14 + 0x14)" ( (type_descriptor "size_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)paVar14 + 0x14)" ( (binary_expression "(int)paVar14 + 0x14" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(size_type *)((int)paVar14 + 0x1c)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x1c)" ( (binary_expression "(int)paVar14 + 0x1c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "paVar13 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)((int)paVar14 + 0x5c);" (assignment_expression "paVar13 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)((int)paVar14 + 0x5c)" identifier = (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)((int)paVar14 + 0x5c)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) (argument_list "((int)paVar14 + 0x5c)" ( (binary_expression "(int)paVar14 + 0x5c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "sVar5 = *(size_type *)((int)paVar14 + 0x18);" (assignment_expression "sVar5 = *(size_type *)((int)paVar14 + 0x18)" identifier = (pointer_expression "*(size_type *)((int)paVar14 + 0x18)" * (cast_expression "(size_type *)((int)paVar14 + 0x18)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x18)" ( (binary_expression "(int)paVar14 + 0x18" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char *)((int)paVar14 + 0x1c) = '\0';" (assignment_expression "*(char *)((int)paVar14 + 0x1c) = '\0'" (pointer_expression "*(char *)((int)paVar14 + 0x1c)" * (cast_expression "(char *)((int)paVar14 + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x1c)" ( (binary_expression "(int)paVar14 + 0x1c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(pIVar17->file_).just_symbols_ = *(bool *)((int)paVar14 + 0x2c);" (assignment_expression "(pIVar17->file_).just_symbols_ = *(bool *)((int)paVar14 + 0x2c)" (field_expression "(pIVar17->file_).just_symbols_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) = (pointer_expression "*(bool *)((int)paVar14 + 0x2c)" * (cast_expression "(bool *)((int)paVar14 + 0x2c)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x2c)" ( (binary_expression "(int)paVar14 + 0x2c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "sVar8 = paVar14[3]._M_allocated_capacity;" (assignment_expression "sVar8 = paVar14[3]._M_allocated_capacity" identifier = (field_expression "paVar14[3]._M_allocated_capacity" (subscript_expression "paVar14[3]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "*(size_type *)((int)paVar14 + 0x18) = 0;" (assignment_expression "*(size_type *)((int)paVar14 + 0x18) = 0" (pointer_expression "*(size_type *)((int)paVar14 + 0x18)" * (cast_expression "(size_type *)((int)paVar14 + 0x18)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x18)" ( (binary_expression "(int)paVar14 + 0x18" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(pIVar17->file_).options_.as_needed_ = (bool)(char)sVar8;" (assignment_expression "(pIVar17->file_).options_.as_needed_ = (bool)(char)sVar8" (field_expression "(pIVar17->file_).options_.as_needed_" (field_expression "(pIVar17->file_).options_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(bool)(char)sVar8" ( (type_descriptor "bool" primitive_type) ) (cast_expression "(char)sVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "(pIVar17->file_).options_.Bdynamic_ = (bool)(char)(sVar8 >> 8);" (assignment_expression "(pIVar17->file_).options_.Bdynamic_ = (bool)(char)(sVar8 >> 8)" (field_expression "(pIVar17->file_).options_.Bdynamic_" (field_expression "(pIVar17->file_).options_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(bool)(char)(sVar8 >> 8)" ( (type_descriptor "bool" primitive_type) ) (cast_expression "(char)(sVar8 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(sVar8 >> 8)" ( (binary_expression "sVar8 >> 8" identifier >> number_literal) ))))) ;) (expression_statement "*(short *)&(pIVar17->file_).options_.field_0x2 = (short)(sVar8 >> 0x10);" (assignment_expression "*(short *)&(pIVar17->file_).options_.field_0x2 = (short)(sVar8 >> 0x10)" (pointer_expression "*(short *)&(pIVar17->file_).options_.field_0x2" * (cast_expression "(short *)&(pIVar17->file_).options_.field_0x2" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pIVar17->file_).options_.field_0x2" & (field_expression "(pIVar17->file_).options_.field_0x2" (field_expression "(pIVar17->file_).options_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = (cast_expression "(short)(sVar8 >> 0x10)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(sVar8 >> 0x10)" ( (binary_expression "sVar8 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "OVar9 = *(Object_format *)((int)paVar14 + 0x34);" (assignment_expression "OVar9 = *(Object_format *)((int)paVar14 + 0x34)" identifier = (pointer_expression "*(Object_format *)((int)paVar14 + 0x34)" * (cast_expression "(Object_format *)((int)paVar14 + 0x34)" ( (type_descriptor "Object_format *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x34)" ( (binary_expression "(int)paVar14 + 0x34" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(pIVar17->file_).extra_search_path_._M_string_length = sVar5;" (assignment_expression "(pIVar17->file_).extra_search_path_._M_string_length = sVar5" (field_expression "(pIVar17->file_).extra_search_path_._M_string_length" (field_expression "(pIVar17->file_).extra_search_path_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(pIVar17->file_).options_.format_enum_ = OVar9;" (assignment_expression "(pIVar17->file_).options_.format_enum_ = OVar9" (field_expression "(pIVar17->file_).options_.format_enum_" (field_expression "(pIVar17->file_).options_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "*(size_type *)&(pIVar17->file_).options_.whole_archive_ = *(size_type *)((int)paVar14 + 0x38);" (assignment_expression "*(size_type *)&(pIVar17->file_).options_.whole_archive_ = *(size_type *)((int)paVar14 + 0x38)" (pointer_expression "*(size_type *)&(pIVar17->file_).options_.whole_archive_" * (cast_expression "(size_type *)&(pIVar17->file_).options_.whole_archive_" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pIVar17->file_).options_.whole_archive_" & (field_expression "(pIVar17->file_).options_.whole_archive_" (field_expression "(pIVar17->file_).options_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = (pointer_expression "*(size_type *)((int)paVar14 + 0x38)" * (cast_expression "(size_type *)((int)paVar14 + 0x38)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x38)" ( (binary_expression "(int)paVar14 + 0x38" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(pIVar17->file_).options_.incremental_disposition_ =\n           *(Incremental_disposition *)((int)paVar14 + 0x3c);" (assignment_expression "(pIVar17->file_).options_.incremental_disposition_ =\n           *(Incremental_disposition *)((int)paVar14 + 0x3c)" (field_expression "(pIVar17->file_).options_.incremental_disposition_" (field_expression "(pIVar17->file_).options_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (pointer_expression "*(Incremental_disposition *)((int)paVar14 + 0x3c)" * (cast_expression "(Incremental_disposition *)((int)paVar14 + 0x3c)" ( (type_descriptor "Incremental_disposition *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar14 + 0x3c)" ( (binary_expression "(int)paVar14 + 0x3c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(pIVar17->file_).arg_serial_ = paVar14[4]._M_allocated_capacity;" (assignment_expression "(pIVar17->file_).arg_serial_ = paVar14[4]._M_allocated_capacity" (field_expression "(pIVar17->file_).arg_serial_" (parenthesized_expression "(pIVar17->file_)" ( (field_expression "pIVar17->file_" identifier -> field_identifier) )) . field_identifier) = (field_expression "paVar14[4]._M_allocated_capacity" (subscript_expression "paVar14[4]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pIVar17->group_ = *(Input_file_group **)((int)paVar14 + 0x44);" (assignment_expression "pIVar17->group_ = *(Input_file_group **)((int)paVar14 + 0x44)" (field_expression "pIVar17->group_" identifier -> field_identifier) = (pointer_expression "*(Input_file_group **)((int)paVar14 + 0x44)" * (cast_expression "(Input_file_group **)((int)paVar14 + 0x44)" ( (type_descriptor "Input_file_group **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)paVar14 + 0x44)" ( (binary_expression "(int)paVar14 + 0x44" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pIVar17->lib_ = *(Input_file_lib **)((int)paVar14 + 0x48);" (assignment_expression "pIVar17->lib_ = *(Input_file_lib **)((int)paVar14 + 0x48)" (field_expression "pIVar17->lib_" identifier -> field_identifier) = (pointer_expression "*(Input_file_lib **)((int)paVar14 + 0x48)" * (cast_expression "(Input_file_lib **)((int)paVar14 + 0x48)" ( (type_descriptor "Input_file_lib **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)paVar14 + 0x48)" ( (binary_expression "(int)paVar14 + 0x48" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pIVar17->script_info_ = *(Script_info **)((int)paVar14 + 0x4c);" (assignment_expression "pIVar17->script_info_ = *(Script_info **)((int)paVar14 + 0x4c)" (field_expression "pIVar17->script_info_" identifier -> field_identifier) = (pointer_expression "*(Script_info **)((int)paVar14 + 0x4c)" * (cast_expression "(Script_info **)((int)paVar14 + 0x4c)" ( (type_descriptor "Script_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)paVar14 + 0x4c)" ( (binary_expression "(int)paVar14 + 0x4c" (cast_expression "(int)paVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar14 = paVar13;" (assignment_expression "paVar14 = paVar13" identifier = identifier) ;) (expression_statement "pIVar17 = pIVar17 + 1;" (assignment_expression "pIVar17 = pIVar17 + 1" identifier = (binary_expression "pIVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(paVar13 != &__position._M_current[uVar15 + 1].file_.name_.field_2)" ( (binary_expression "paVar13 != &__position._M_current[uVar15 + 1].file_.name_.field_2" identifier != (pointer_expression "&__position._M_current[uVar15 + 1].file_.name_.field_2" & (field_expression "__position._M_current[uVar15 + 1].file_.name_.field_2" (field_expression "__position._M_current[uVar15 + 1].file_.name_" (field_expression "__position._M_current[uVar15 + 1].file_" (subscript_expression "__position._M_current[uVar15 + 1]" (field_expression "__position._M_current" identifier . field_identifier) [ (binary_expression "uVar15 + 1" identifier + number_literal) ]) . field_identifier) . field_identifier) . field_identifier))) )) ;) (expression_statement "local_2c = local_2c + uVar15 + 1;" (assignment_expression "local_2c = local_2c + uVar15 + 1" identifier = (binary_expression "local_2c + uVar15 + 1" (binary_expression "local_2c + uVar15" identifier + identifier) + number_literal)) ;) })) (for_statement "for (; pIVar16 != pIVar3; pIVar16 = pIVar16 + 1) {\n    pcVar4 = (pIVar16->file_).extra_search_path_._M_dataplus._M_p;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar4 != &(pIVar16->file_).extra_search_path_.field_2) {\n      operator_delete(pcVar4);\n    }\n    pcVar4 = (pIVar16->file_).name_._M_dataplus._M_p;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar4 != &(pIVar16->file_).name_.field_2) {\n      operator_delete(pcVar4);\n    }\n  }" for ( ; (binary_expression "pIVar16 != pIVar3" identifier != identifier) ; (assignment_expression "pIVar16 = pIVar16 + 1" identifier = (binary_expression "pIVar16 + 1" identifier + number_literal)) ) (compound_statement "{\n    pcVar4 = (pIVar16->file_).extra_search_path_._M_dataplus._M_p;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar4 != &(pIVar16->file_).extra_search_path_.field_2) {\n      operator_delete(pcVar4);\n    }\n    pcVar4 = (pIVar16->file_).name_._M_dataplus._M_p;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar4 != &(pIVar16->file_).name_.field_2) {\n      operator_delete(pcVar4);\n    }\n  }" { (expression_statement "pcVar4 = (pIVar16->file_).extra_search_path_._M_dataplus._M_p;" (assignment_expression "pcVar4 = (pIVar16->file_).extra_search_path_._M_dataplus._M_p" identifier = (field_expression "(pIVar16->file_).extra_search_path_._M_dataplus._M_p" (field_expression "(pIVar16->file_).extra_search_path_._M_dataplus" (field_expression "(pIVar16->file_).extra_search_path_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar4 != &(pIVar16->file_).extra_search_path_.field_2) {\n      operator_delete(pcVar4);\n    }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar4 != &(pIVar16->file_).extra_search_path_.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar4 != &(pIVar16->file_).extra_search_path_.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n         *)pcVar4 != &(pIVar16->file_).extra_search_path_.field_2" (binary_expression "allocator<char>_>_9\n         *)pcVar4" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n         *)pcVar4" identifier * (ERROR ")" )) identifier)) != (pointer_expression "&(pIVar16->file_).extra_search_path_.field_2" & (field_expression "(pIVar16->file_).extra_search_path_.field_2" (field_expression "(pIVar16->file_).extra_search_path_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) )) )) (compound_statement "{\n      operator_delete(pcVar4);\n    }" { (expression_statement "operator_delete(pcVar4);" (call_expression "operator_delete(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) })) (expression_statement "pcVar4 = (pIVar16->file_).name_._M_dataplus._M_p;" (assignment_expression "pcVar4 = (pIVar16->file_).name_._M_dataplus._M_p" identifier = (field_expression "(pIVar16->file_).name_._M_dataplus._M_p" (field_expression "(pIVar16->file_).name_._M_dataplus" (field_expression "(pIVar16->file_).name_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar4 != &(pIVar16->file_).name_.field_2) {\n      operator_delete(pcVar4);\n    }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar4 != &(pIVar16->file_).name_.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar4 != &(pIVar16->file_).name_.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n         *)pcVar4 != &(pIVar16->file_).name_.field_2" (binary_expression "allocator<char>_>_9\n         *)pcVar4" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n         *)pcVar4" identifier * (ERROR ")" )) identifier)) != (pointer_expression "&(pIVar16->file_).name_.field_2" & (field_expression "(pIVar16->file_).name_.field_2" (field_expression "(pIVar16->file_).name_" (parenthesized_expression "(pIVar16->file_)" ( (field_expression "pIVar16->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) )) )) (compound_statement "{\n      operator_delete(pcVar4);\n    }" { (expression_statement "operator_delete(pcVar4);" (call_expression "operator_delete(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) })) })) (if_statement "if (pIVar2 != (pointer)0x0) {\n    operator_delete(pIVar2);\n  }" if (parenthesized_expression "(pIVar2 != (pointer)0x0)" ( (binary_expression "pIVar2 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    operator_delete(pIVar2);\n  }" { (expression_statement "operator_delete(pIVar2);" (call_expression "operator_delete(pIVar2)" identifier (argument_list "(pIVar2)" ( identifier ))) ;) })) (expression_statement "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl.\n  _M_start = local_34;" (assignment_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl.\n  _M_start = local_34" (field_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl.\n  _M_start" (field_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl" (parenthesized_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)" ( (ERROR "this->super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "this->super__Vector_base<gold::Input_argument,_std" (binary_expression "this->super__Vector_base<gold" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_argument>_>" (binary_expression "Input_argument>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl.\n  _M_finish = local_2c;" (assignment_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl.\n  _M_finish = local_2c" (field_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl.\n  _M_finish" (field_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl" (parenthesized_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)" ( (ERROR "this->super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "this->super__Vector_base<gold::Input_argument,_std" (binary_expression "this->super__Vector_base<gold" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_argument>_>" (binary_expression "Input_argument>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl.\n  _M_end_of_storage = local_24;" (assignment_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl.\n  _M_end_of_storage = local_24" (field_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl.\n  _M_end_of_storage" (field_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)._M_impl" (parenthesized_expression "(this->super__Vector_base<gold::Input_argument,_std::allocator<gold::Input_argument>_>)" ( (ERROR "this->super__Vector_base<gold::Input_argument,_std::allocator<gold::" (comma_expression "this->super__Vector_base<gold::Input_argument,_std" (binary_expression "this->super__Vector_base<gold" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Input_argument" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_argument>_>" (binary_expression "Input_argument>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_000fdd50(int *param_1,int param_2,undefined1 *param_3)\n\n{\n  undefined1 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined1 *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  undefined1 *local_34;\n  undefined1 *local_2c;\n  undefined1 *local_24;\n  \n  iVar2 = *param_1;\n  iVar3 = param_1[1];\n  iVar6 = iVar3 - iVar2 >> 2;\n  if (iVar6 * -0x1642c859 == 0) {\n    uVar10 = 1;\nLAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;\n  }\n  else {\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }\n  local_34 = (undefined1 *)FUN_001fb470(iVar12);\n  local_24 = local_34 + iVar12;\n  local_2c = local_34 + 0x5c;\nLAB_000fddbd:\n  puVar11 = *(undefined1 **)(param_3 + 4);\n  puVar7 = local_34 + (param_2 - iVar2);\n  *puVar7 = *param_3;\n  *(undefined1 **)(puVar7 + 4) = puVar7 + 0xc;\n  if (puVar11 == param_3 + 0xc) {\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n    *(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);\n    *(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);\n    *(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }\n  uVar4 = *(undefined4 *)(param_3 + 8);\n  *(undefined1 **)(param_3 + 4) = param_3 + 0xc;\n  uVar5 = *(undefined4 *)(param_3 + 0x1c);\n  *(undefined4 *)(param_3 + 8) = 0;\n  *(undefined4 *)(puVar7 + 8) = uVar4;\n  puVar11 = *(undefined1 **)(param_3 + 0x20);\n  *(undefined4 *)(puVar7 + 0x1c) = uVar5;\n  param_3[0xc] = 0;\n  *(undefined1 **)(puVar7 + 0x20) = puVar7 + 0x28;\n  if (puVar11 == param_3 + 0x28) {\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n    *(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);\n    *(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }\n  uVar4 = *(undefined4 *)(param_3 + 0x24);\n  *(undefined1 **)(param_3 + 0x20) = param_3 + 0x28;\n  uVar1 = param_3[0x38];\n  *(undefined4 *)(param_3 + 0x24) = 0;\n  *(undefined4 *)(puVar7 + 0x24) = uVar4;\n  puVar7[0x38] = uVar1;\n  param_3[0x28] = 0;\n  *(undefined4 *)(puVar7 + 0x3c) = *(undefined4 *)(param_3 + 0x3c);\n  *(undefined4 *)(puVar7 + 0x40) = *(undefined4 *)(param_3 + 0x40);\n  *(undefined4 *)(puVar7 + 0x44) = *(undefined4 *)(param_3 + 0x44);\n  *(undefined4 *)(puVar7 + 0x48) = *(undefined4 *)(param_3 + 0x48);\n  *(undefined4 *)(puVar7 + 0x4c) = *(undefined4 *)(param_3 + 0x4c);\n  *(undefined4 *)(puVar7 + 0x50) = *(undefined4 *)(param_3 + 0x50);\n  *(undefined4 *)(puVar7 + 0x54) = *(undefined4 *)(param_3 + 0x54);\n  *(undefined4 *)(puVar7 + 0x58) = *(undefined4 *)(param_3 + 0x58);\n  if (param_2 != iVar2) {\n    uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(iVar2 + 0xc);\n    puVar11 = local_34;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_34 + (uVar10 + 2) * 0x5c;\n  }\n  iVar6 = iVar2;\n  if (param_2 != iVar3) {\n    uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(param_2 + 0xc);\n    puVar11 = local_2c;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_2c + (uVar10 + 1) * 0x5c;\n  }\n  for (; iVar6 != iVar3; iVar6 = iVar6 + 0x5c) {\n    if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }\n    if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }\n  }\n  if (iVar2 != 0) {\n    FUN_001fd020(iVar2);\n  }\n  *param_1 = (int)local_34;\n  param_1[1] = (int)local_2c;\n  param_1[2] = (int)local_24;\n  return;\n}\n\n" (function_definition "void FUN_000fdd50(int *param_1,int param_2,undefined1 *param_3)\n\n{\n  undefined1 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined1 *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  undefined1 *local_34;\n  undefined1 *local_2c;\n  undefined1 *local_24;\n  \n  iVar2 = *param_1;\n  iVar3 = param_1[1];\n  iVar6 = iVar3 - iVar2 >> 2;\n  if (iVar6 * -0x1642c859 == 0) {\n    uVar10 = 1;\nLAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;\n  }\n  else {\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }\n  local_34 = (undefined1 *)FUN_001fb470(iVar12);\n  local_24 = local_34 + iVar12;\n  local_2c = local_34 + 0x5c;\nLAB_000fddbd:\n  puVar11 = *(undefined1 **)(param_3 + 4);\n  puVar7 = local_34 + (param_2 - iVar2);\n  *puVar7 = *param_3;\n  *(undefined1 **)(puVar7 + 4) = puVar7 + 0xc;\n  if (puVar11 == param_3 + 0xc) {\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n    *(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);\n    *(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);\n    *(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }\n  uVar4 = *(undefined4 *)(param_3 + 8);\n  *(undefined1 **)(param_3 + 4) = param_3 + 0xc;\n  uVar5 = *(undefined4 *)(param_3 + 0x1c);\n  *(undefined4 *)(param_3 + 8) = 0;\n  *(undefined4 *)(puVar7 + 8) = uVar4;\n  puVar11 = *(undefined1 **)(param_3 + 0x20);\n  *(undefined4 *)(puVar7 + 0x1c) = uVar5;\n  param_3[0xc] = 0;\n  *(undefined1 **)(puVar7 + 0x20) = puVar7 + 0x28;\n  if (puVar11 == param_3 + 0x28) {\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n    *(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);\n    *(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }\n  uVar4 = *(undefined4 *)(param_3 + 0x24);\n  *(undefined1 **)(param_3 + 0x20) = param_3 + 0x28;\n  uVar1 = param_3[0x38];\n  *(undefined4 *)(param_3 + 0x24) = 0;\n  *(undefined4 *)(puVar7 + 0x24) = uVar4;\n  puVar7[0x38] = uVar1;\n  param_3[0x28] = 0;\n  *(undefined4 *)(puVar7 + 0x3c) = *(undefined4 *)(param_3 + 0x3c);\n  *(undefined4 *)(puVar7 + 0x40) = *(undefined4 *)(param_3 + 0x40);\n  *(undefined4 *)(puVar7 + 0x44) = *(undefined4 *)(param_3 + 0x44);\n  *(undefined4 *)(puVar7 + 0x48) = *(undefined4 *)(param_3 + 0x48);\n  *(undefined4 *)(puVar7 + 0x4c) = *(undefined4 *)(param_3 + 0x4c);\n  *(undefined4 *)(puVar7 + 0x50) = *(undefined4 *)(param_3 + 0x50);\n  *(undefined4 *)(puVar7 + 0x54) = *(undefined4 *)(param_3 + 0x54);\n  *(undefined4 *)(puVar7 + 0x58) = *(undefined4 *)(param_3 + 0x58);\n  if (param_2 != iVar2) {\n    uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(iVar2 + 0xc);\n    puVar11 = local_34;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_34 + (uVar10 + 2) * 0x5c;\n  }\n  iVar6 = iVar2;\n  if (param_2 != iVar3) {\n    uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(param_2 + 0xc);\n    puVar11 = local_2c;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_2c + (uVar10 + 1) * 0x5c;\n  }\n  for (; iVar6 != iVar3; iVar6 = iVar6 + 0x5c) {\n    if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }\n    if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }\n  }\n  if (iVar2 != 0) {\n    FUN_001fd020(iVar2);\n  }\n  *param_1 = (int)local_34;\n  param_1[1] = (int)local_2c;\n  param_1[2] = (int)local_24;\n  return;\n}" primitive_type (function_declarator "FUN_000fdd50(int *param_1,int param_2,undefined1 *param_3)" identifier (parameter_list "(int *param_1,int param_2,undefined1 *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined1 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  undefined1 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined1 *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  undefined1 *local_34;\n  undefined1 *local_2c;\n  undefined1 *local_24;\n  \n  iVar2 = *param_1;\n  iVar3 = param_1[1];\n  iVar6 = iVar3 - iVar2 >> 2;\n  if (iVar6 * -0x1642c859 == 0) {\n    uVar10 = 1;\nLAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;\n  }\n  else {\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }\n  local_34 = (undefined1 *)FUN_001fb470(iVar12);\n  local_24 = local_34 + iVar12;\n  local_2c = local_34 + 0x5c;\nLAB_000fddbd:\n  puVar11 = *(undefined1 **)(param_3 + 4);\n  puVar7 = local_34 + (param_2 - iVar2);\n  *puVar7 = *param_3;\n  *(undefined1 **)(puVar7 + 4) = puVar7 + 0xc;\n  if (puVar11 == param_3 + 0xc) {\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n    *(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);\n    *(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);\n    *(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }\n  uVar4 = *(undefined4 *)(param_3 + 8);\n  *(undefined1 **)(param_3 + 4) = param_3 + 0xc;\n  uVar5 = *(undefined4 *)(param_3 + 0x1c);\n  *(undefined4 *)(param_3 + 8) = 0;\n  *(undefined4 *)(puVar7 + 8) = uVar4;\n  puVar11 = *(undefined1 **)(param_3 + 0x20);\n  *(undefined4 *)(puVar7 + 0x1c) = uVar5;\n  param_3[0xc] = 0;\n  *(undefined1 **)(puVar7 + 0x20) = puVar7 + 0x28;\n  if (puVar11 == param_3 + 0x28) {\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n    *(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);\n    *(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }\n  uVar4 = *(undefined4 *)(param_3 + 0x24);\n  *(undefined1 **)(param_3 + 0x20) = param_3 + 0x28;\n  uVar1 = param_3[0x38];\n  *(undefined4 *)(param_3 + 0x24) = 0;\n  *(undefined4 *)(puVar7 + 0x24) = uVar4;\n  puVar7[0x38] = uVar1;\n  param_3[0x28] = 0;\n  *(undefined4 *)(puVar7 + 0x3c) = *(undefined4 *)(param_3 + 0x3c);\n  *(undefined4 *)(puVar7 + 0x40) = *(undefined4 *)(param_3 + 0x40);\n  *(undefined4 *)(puVar7 + 0x44) = *(undefined4 *)(param_3 + 0x44);\n  *(undefined4 *)(puVar7 + 0x48) = *(undefined4 *)(param_3 + 0x48);\n  *(undefined4 *)(puVar7 + 0x4c) = *(undefined4 *)(param_3 + 0x4c);\n  *(undefined4 *)(puVar7 + 0x50) = *(undefined4 *)(param_3 + 0x50);\n  *(undefined4 *)(puVar7 + 0x54) = *(undefined4 *)(param_3 + 0x54);\n  *(undefined4 *)(puVar7 + 0x58) = *(undefined4 *)(param_3 + 0x58);\n  if (param_2 != iVar2) {\n    uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(iVar2 + 0xc);\n    puVar11 = local_34;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_34 + (uVar10 + 2) * 0x5c;\n  }\n  iVar6 = iVar2;\n  if (param_2 != iVar3) {\n    uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(param_2 + 0xc);\n    puVar11 = local_2c;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_2c + (uVar10 + 1) * 0x5c;\n  }\n  for (; iVar6 != iVar3; iVar6 = iVar6 + 0x5c) {\n    if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }\n    if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }\n  }\n  if (iVar2 != 0) {\n    FUN_001fd020(iVar2);\n  }\n  *param_1 = (int)local_34;\n  param_1[1] = (int)local_2c;\n  param_1[2] = (int)local_24;\n  return;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined1 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "undefined1 *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (expression_statement "iVar2 = *param_1;" (assignment_expression "iVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar3 = param_1[1];" (assignment_expression "iVar3 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = iVar3 - iVar2 >> 2;" (assignment_expression "iVar6 = iVar3 - iVar2 >> 2" identifier = (binary_expression "iVar3 - iVar2 >> 2" (binary_expression "iVar3 - iVar2" identifier - identifier) >> number_literal)) ;) (if_statement "if (iVar6 * -0x1642c859 == 0) {\n    uVar10 = 1;\nLAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;\n  }\n  else {\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }" if (parenthesized_expression "(iVar6 * -0x1642c859 == 0)" ( (binary_expression "iVar6 * -0x1642c859 == 0" (binary_expression "iVar6 * -0x1642c859" identifier * number_literal) == number_literal) )) (compound_statement "{\n    uVar10 = 1;\nLAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;\n  }" { (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;" statement_identifier : (expression_statement "iVar12 = uVar10 * 0x5c;" (assignment_expression "iVar12 = uVar10 * 0x5c" identifier = (binary_expression "uVar10 * 0x5c" identifier * number_literal)) ;)) }) (else_clause "else {\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }" else (compound_statement "{\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }" { (expression_statement "uVar10 = iVar6 * -0x2c8590b2;" (assignment_expression "uVar10 = iVar6 * -0x2c8590b2" identifier = (binary_expression "iVar6 * -0x2c8590b2" identifier * number_literal)) ;) (expression_statement "iVar12 = -0xc;" (assignment_expression "iVar12 = -0xc" identifier = number_literal) ;) (if_statement "if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }" if (parenthesized_expression "(((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c))" ( (binary_expression "((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)" (parenthesized_expression "((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0)" ( (binary_expression "(uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0" (binary_expression "(uint)(iVar6 * -0x1642c859) < uVar10" (call_expression "(uint)(iVar6 * -0x1642c859)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 * -0x1642c859)" ( (binary_expression "iVar6 * -0x1642c859" identifier * number_literal) ))) < identifier) || (binary_expression "iVar6 * 0x1642c859 == 0" (binary_expression "iVar6 * 0x1642c859" identifier * number_literal) == number_literal)) )) && (parenthesized_expression "(uVar10 < 0x2c8590c)" ( (binary_expression "uVar10 < 0x2c8590c" identifier < number_literal) ))) )) (compound_statement "{\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }" { (if_statement "if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }" { (expression_statement "local_2c = (undefined1 *)0x5c;" (assignment_expression "local_2c = (undefined1 *)0x5c" identifier = (cast_expression "(undefined1 *)0x5c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_24 = (undefined1 *)0x0;" (assignment_expression "local_24 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = (undefined1 *)0x0;" (assignment_expression "local_34 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000fddbd;" goto statement_identifier ;) })) (goto_statement "goto LAB_000fe1a5;" goto statement_identifier ;) })) }))) (expression_statement "local_34 = (undefined1 *)FUN_001fb470(iVar12);" (assignment_expression "local_34 = (undefined1 *)FUN_001fb470(iVar12)" identifier = (cast_expression "(undefined1 *)FUN_001fb470(iVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001fb470(iVar12)" identifier (argument_list "(iVar12)" ( identifier ))))) ;) (expression_statement "local_24 = local_34 + iVar12;" (assignment_expression "local_24 = local_34 + iVar12" identifier = (binary_expression "local_34 + iVar12" identifier + identifier)) ;) (expression_statement "local_2c = local_34 + 0x5c;" (assignment_expression "local_2c = local_34 + 0x5c" identifier = (binary_expression "local_34 + 0x5c" identifier + number_literal)) ;) (labeled_statement "LAB_000fddbd:\n  puVar11 = *(undefined1 **)(param_3 + 4);" statement_identifier : (expression_statement "puVar11 = *(undefined1 **)(param_3 + 4);" (assignment_expression "puVar11 = *(undefined1 **)(param_3 + 4)" identifier = (pointer_expression "*(undefined1 **)(param_3 + 4)" * (cast_expression "(undefined1 **)(param_3 + 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) ;)) (expression_statement "puVar7 = local_34 + (param_2 - iVar2);" (assignment_expression "puVar7 = local_34 + (param_2 - iVar2)" identifier = (binary_expression "local_34 + (param_2 - iVar2)" identifier + (parenthesized_expression "(param_2 - iVar2)" ( (binary_expression "param_2 - iVar2" identifier - identifier) )))) ;) (expression_statement "*puVar7 = *param_3;" (assignment_expression "*puVar7 = *param_3" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "*(undefined1 **)(puVar7 + 4) = puVar7 + 0xc;" (assignment_expression "*(undefined1 **)(puVar7 + 4) = puVar7 + 0xc" (pointer_expression "*(undefined1 **)(puVar7 + 4)" * (cast_expression "(undefined1 **)(puVar7 + 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = (binary_expression "puVar7 + 0xc" identifier + number_literal)) ;) (if_statement "if (puVar11 == param_3 + 0xc) {\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n    *(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);\n    *(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);\n    *(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }" if (parenthesized_expression "(puVar11 == param_3 + 0xc)" ( (binary_expression "puVar11 == param_3 + 0xc" identifier == (binary_expression "param_3 + 0xc" identifier + number_literal)) )) (compound_statement "{\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n    *(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);\n    *(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);\n    *(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);\n  }" { (expression_statement "*(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);" (assignment_expression "*(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc)" (pointer_expression "*(undefined4 *)(puVar7 + 0xc)" * (cast_expression "(undefined4 *)(puVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xc)" ( (binary_expression "puVar7 + 0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0xc)" * (cast_expression "(undefined4 *)(param_3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xc)" ( (binary_expression "param_3 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);" (assignment_expression "*(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10)" (pointer_expression "*(undefined4 *)(puVar7 + 0x10)" * (cast_expression "(undefined4 *)(puVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x10)" ( (binary_expression "puVar7 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x10)" * (cast_expression "(undefined4 *)(param_3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);" (assignment_expression "*(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14)" (pointer_expression "*(undefined4 *)(puVar7 + 0x14)" * (cast_expression "(undefined4 *)(puVar7 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x14)" ( (binary_expression "puVar7 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x14)" * (cast_expression "(undefined4 *)(param_3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x14)" ( (binary_expression "param_3 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);" (assignment_expression "*(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18)" (pointer_expression "*(undefined4 *)(puVar7 + 0x18)" * (cast_expression "(undefined4 *)(puVar7 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x18)" ( (binary_expression "puVar7 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x18)" * (cast_expression "(undefined4 *)(param_3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x18)" ( (binary_expression "param_3 + 0x18" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }" else (compound_statement "{\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }" { (expression_statement "*(undefined1 **)(puVar7 + 4) = puVar11;" (assignment_expression "*(undefined1 **)(puVar7 + 4) = puVar11" (pointer_expression "*(undefined1 **)(puVar7 + 4)" * (cast_expression "(undefined1 **)(puVar7 + 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);" (assignment_expression "*(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc)" (pointer_expression "*(undefined4 *)(puVar7 + 0xc)" * (cast_expression "(undefined4 *)(puVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xc)" ( (binary_expression "puVar7 + 0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0xc)" * (cast_expression "(undefined4 *)(param_3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xc)" ( (binary_expression "param_3 + 0xc" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar4 = *(undefined4 *)(param_3 + 8);" (assignment_expression "uVar4 = *(undefined4 *)(param_3 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_3 + 8)" * (cast_expression "(undefined4 *)(param_3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(param_3 + 4) = param_3 + 0xc;" (assignment_expression "*(undefined1 **)(param_3 + 4) = param_3 + 0xc" (pointer_expression "*(undefined1 **)(param_3 + 4)" * (cast_expression "(undefined1 **)(param_3 + 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))) = (binary_expression "param_3 + 0xc" identifier + number_literal)) ;) (expression_statement "uVar5 = *(undefined4 *)(param_3 + 0x1c);" (assignment_expression "uVar5 = *(undefined4 *)(param_3 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(param_3 + 0x1c)" * (cast_expression "(undefined4 *)(param_3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_3 + 8) = 0;" (assignment_expression "*(undefined4 *)(param_3 + 8) = 0" (pointer_expression "*(undefined4 *)(param_3 + 8)" * (cast_expression "(undefined4 *)(param_3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(puVar7 + 8) = uVar4" (pointer_expression "*(undefined4 *)(puVar7 + 8)" * (cast_expression "(undefined4 *)(puVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = *(undefined1 **)(param_3 + 0x20);" (assignment_expression "puVar11 = *(undefined1 **)(param_3 + 0x20)" identifier = (pointer_expression "*(undefined1 **)(param_3 + 0x20)" * (cast_expression "(undefined1 **)(param_3 + 0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x1c) = uVar5;" (assignment_expression "*(undefined4 *)(puVar7 + 0x1c) = uVar5" (pointer_expression "*(undefined4 *)(puVar7 + 0x1c)" * (cast_expression "(undefined4 *)(puVar7 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x1c)" ( (binary_expression "puVar7 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_3[0xc] = 0;" (assignment_expression "param_3[0xc] = 0" (subscript_expression "param_3[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar7 + 0x20) = puVar7 + 0x28;" (assignment_expression "*(undefined1 **)(puVar7 + 0x20) = puVar7 + 0x28" (pointer_expression "*(undefined1 **)(puVar7 + 0x20)" * (cast_expression "(undefined1 **)(puVar7 + 0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x20)" ( (binary_expression "puVar7 + 0x20" identifier + number_literal) )))) = (binary_expression "puVar7 + 0x28" identifier + number_literal)) ;) (if_statement "if (puVar11 == param_3 + 0x28) {\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n    *(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);\n    *(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }" if (parenthesized_expression "(puVar11 == param_3 + 0x28)" ( (binary_expression "puVar11 == param_3 + 0x28" identifier == (binary_expression "param_3 + 0x28" identifier + number_literal)) )) (compound_statement "{\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n    *(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);\n    *(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);\n  }" { (expression_statement "*(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);" (assignment_expression "*(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28)" (pointer_expression "*(undefined4 *)(puVar7 + 0x28)" * (cast_expression "(undefined4 *)(puVar7 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x28)" ( (binary_expression "puVar7 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x28)" * (cast_expression "(undefined4 *)(param_3 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);" (assignment_expression "*(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c)" (pointer_expression "*(undefined4 *)(puVar7 + 0x2c)" * (cast_expression "(undefined4 *)(puVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2c)" ( (binary_expression "puVar7 + 0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x2c)" * (cast_expression "(undefined4 *)(param_3 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2c)" ( (binary_expression "param_3 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);" (assignment_expression "*(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30)" (pointer_expression "*(undefined4 *)(puVar7 + 0x30)" * (cast_expression "(undefined4 *)(puVar7 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x30)" ( (binary_expression "puVar7 + 0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x30)" * (cast_expression "(undefined4 *)(param_3 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x30)" ( (binary_expression "param_3 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);" (assignment_expression "*(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34)" (pointer_expression "*(undefined4 *)(puVar7 + 0x34)" * (cast_expression "(undefined4 *)(puVar7 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x34)" ( (binary_expression "puVar7 + 0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x34)" * (cast_expression "(undefined4 *)(param_3 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x34)" ( (binary_expression "param_3 + 0x34" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }" else (compound_statement "{\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }" { (expression_statement "*(undefined1 **)(puVar7 + 0x20) = puVar11;" (assignment_expression "*(undefined1 **)(puVar7 + 0x20) = puVar11" (pointer_expression "*(undefined1 **)(puVar7 + 0x20)" * (cast_expression "(undefined1 **)(puVar7 + 0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x20)" ( (binary_expression "puVar7 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);" (assignment_expression "*(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28)" (pointer_expression "*(undefined4 *)(puVar7 + 0x28)" * (cast_expression "(undefined4 *)(puVar7 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x28)" ( (binary_expression "puVar7 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x28)" * (cast_expression "(undefined4 *)(param_3 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar4 = *(undefined4 *)(param_3 + 0x24);" (assignment_expression "uVar4 = *(undefined4 *)(param_3 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(param_3 + 0x24)" * (cast_expression "(undefined4 *)(param_3 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(param_3 + 0x20) = param_3 + 0x28;" (assignment_expression "*(undefined1 **)(param_3 + 0x20) = param_3 + 0x28" (pointer_expression "*(undefined1 **)(param_3 + 0x20)" * (cast_expression "(undefined1 **)(param_3 + 0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) )))) = (binary_expression "param_3 + 0x28" identifier + number_literal)) ;) (expression_statement "uVar1 = param_3[0x38];" (assignment_expression "uVar1 = param_3[0x38]" identifier = (subscript_expression "param_3[0x38]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(param_3 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(param_3 + 0x24) = 0" (pointer_expression "*(undefined4 *)(param_3 + 0x24)" * (cast_expression "(undefined4 *)(param_3 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x24) = uVar4;" (assignment_expression "*(undefined4 *)(puVar7 + 0x24) = uVar4" (pointer_expression "*(undefined4 *)(puVar7 + 0x24)" * (cast_expression "(undefined4 *)(puVar7 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x24)" ( (binary_expression "puVar7 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar7[0x38] = uVar1;" (assignment_expression "puVar7[0x38] = uVar1" (subscript_expression "puVar7[0x38]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3[0x28] = 0;" (assignment_expression "param_3[0x28] = 0" (subscript_expression "param_3[0x28]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x3c) = *(undefined4 *)(param_3 + 0x3c);" (assignment_expression "*(undefined4 *)(puVar7 + 0x3c) = *(undefined4 *)(param_3 + 0x3c)" (pointer_expression "*(undefined4 *)(puVar7 + 0x3c)" * (cast_expression "(undefined4 *)(puVar7 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x3c)" ( (binary_expression "puVar7 + 0x3c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x3c)" * (cast_expression "(undefined4 *)(param_3 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3c)" ( (binary_expression "param_3 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x40) = *(undefined4 *)(param_3 + 0x40);" (assignment_expression "*(undefined4 *)(puVar7 + 0x40) = *(undefined4 *)(param_3 + 0x40)" (pointer_expression "*(undefined4 *)(puVar7 + 0x40)" * (cast_expression "(undefined4 *)(puVar7 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x40)" ( (binary_expression "puVar7 + 0x40" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x40)" * (cast_expression "(undefined4 *)(param_3 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x40)" ( (binary_expression "param_3 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x44) = *(undefined4 *)(param_3 + 0x44);" (assignment_expression "*(undefined4 *)(puVar7 + 0x44) = *(undefined4 *)(param_3 + 0x44)" (pointer_expression "*(undefined4 *)(puVar7 + 0x44)" * (cast_expression "(undefined4 *)(puVar7 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x44)" ( (binary_expression "puVar7 + 0x44" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x44)" * (cast_expression "(undefined4 *)(param_3 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x44)" ( (binary_expression "param_3 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x48) = *(undefined4 *)(param_3 + 0x48);" (assignment_expression "*(undefined4 *)(puVar7 + 0x48) = *(undefined4 *)(param_3 + 0x48)" (pointer_expression "*(undefined4 *)(puVar7 + 0x48)" * (cast_expression "(undefined4 *)(puVar7 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x48)" ( (binary_expression "puVar7 + 0x48" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x48)" * (cast_expression "(undefined4 *)(param_3 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x48)" ( (binary_expression "param_3 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x4c) = *(undefined4 *)(param_3 + 0x4c);" (assignment_expression "*(undefined4 *)(puVar7 + 0x4c) = *(undefined4 *)(param_3 + 0x4c)" (pointer_expression "*(undefined4 *)(puVar7 + 0x4c)" * (cast_expression "(undefined4 *)(puVar7 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x4c)" ( (binary_expression "puVar7 + 0x4c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x4c)" * (cast_expression "(undefined4 *)(param_3 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x4c)" ( (binary_expression "param_3 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x50) = *(undefined4 *)(param_3 + 0x50);" (assignment_expression "*(undefined4 *)(puVar7 + 0x50) = *(undefined4 *)(param_3 + 0x50)" (pointer_expression "*(undefined4 *)(puVar7 + 0x50)" * (cast_expression "(undefined4 *)(puVar7 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x50)" ( (binary_expression "puVar7 + 0x50" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x50)" * (cast_expression "(undefined4 *)(param_3 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x50)" ( (binary_expression "param_3 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x54) = *(undefined4 *)(param_3 + 0x54);" (assignment_expression "*(undefined4 *)(puVar7 + 0x54) = *(undefined4 *)(param_3 + 0x54)" (pointer_expression "*(undefined4 *)(puVar7 + 0x54)" * (cast_expression "(undefined4 *)(puVar7 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x54)" ( (binary_expression "puVar7 + 0x54" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x54)" * (cast_expression "(undefined4 *)(param_3 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x54)" ( (binary_expression "param_3 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x58) = *(undefined4 *)(param_3 + 0x58);" (assignment_expression "*(undefined4 *)(puVar7 + 0x58) = *(undefined4 *)(param_3 + 0x58)" (pointer_expression "*(undefined4 *)(puVar7 + 0x58)" * (cast_expression "(undefined4 *)(puVar7 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x58)" ( (binary_expression "puVar7 + 0x58" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_3 + 0x58)" * (cast_expression "(undefined4 *)(param_3 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x58)" ( (binary_expression "param_3 + 0x58" identifier + number_literal) ))))) ;) (if_statement "if (param_2 != iVar2) {\n    uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(iVar2 + 0xc);\n    puVar11 = local_34;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_34 + (uVar10 + 2) * 0x5c;\n  }" if (parenthesized_expression "(param_2 != iVar2)" ( (binary_expression "param_2 != iVar2" identifier != identifier) )) (compound_statement "{\n    uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(iVar2 + 0xc);\n    puVar11 = local_34;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_34 + (uVar10 + 2) * 0x5c;\n  }" { (expression_statement "uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;" (assignment_expression "uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff" identifier = (binary_expression "((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff" (binary_expression "((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7" (parenthesized_expression "((uint)((param_2 + -0x5c) - iVar2) >> 2)" ( (binary_expression "(uint)((param_2 + -0x5c) - iVar2) >> 2" (call_expression "(uint)((param_2 + -0x5c) - iVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_2 + -0x5c) - iVar2)" ( (binary_expression "(param_2 + -0x5c) - iVar2" (parenthesized_expression "(param_2 + -0x5c)" ( (binary_expression "param_2 + -0x5c" identifier + number_literal) )) - identifier) ))) >> number_literal) )) * number_literal) & number_literal)) ;) (expression_statement "puVar9 = (undefined4 *)(iVar2 + 0xc);" (assignment_expression "puVar9 = (undefined4 *)(iVar2 + 0xc)" identifier = (cast_expression "(undefined4 *)(iVar2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) ;) (expression_statement "puVar11 = local_34;" (assignment_expression "puVar11 = local_34" identifier = identifier) ;) (do_statement "do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));" do (compound_statement "{\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    }" { (expression_statement "uVar1 = *(undefined1 *)(puVar9 + -3);" (assignment_expression "uVar1 = *(undefined1 *)(puVar9 + -3)" identifier = (pointer_expression "*(undefined1 *)(puVar9 + -3)" * (cast_expression "(undefined1 *)(puVar9 + -3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -3)" ( (binary_expression "puVar9 + -3" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;" (assignment_expression "*(undefined1 **)(puVar11 + 4) = puVar11 + 0xc" (pointer_expression "*(undefined1 **)(puVar11 + 4)" * (cast_expression "(undefined1 **)(puVar11 + 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 4)" ( (binary_expression "puVar11 + 4" identifier + number_literal) )))) = (binary_expression "puVar11 + 0xc" identifier + number_literal)) ;) (expression_statement "*puVar11 = uVar1;" (assignment_expression "*puVar11 = uVar1" (pointer_expression "*puVar11" * identifier) = identifier) ;) (if_statement "if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" if (parenthesized_expression "((undefined4 *)puVar9[-2] == puVar9)" ( (binary_expression "(undefined4 *)puVar9[-2] == puVar9" (cast_expression "(undefined4 *)puVar9[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[-2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }" { (expression_statement "*(undefined4 *)(puVar11 + 0xc) = *puVar9;" (assignment_expression "*(undefined4 *)(puVar11 + 0xc) = *puVar9" (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" * (cast_expression "(undefined4 *)(puVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) )))) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x10) = puVar9[1];" (assignment_expression "*(undefined4 *)(puVar11 + 0x10) = puVar9[1]" (pointer_expression "*(undefined4 *)(puVar11 + 0x10)" * (cast_expression "(undefined4 *)(puVar11 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))) = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x14) = puVar9[2];" (assignment_expression "*(undefined4 *)(puVar11 + 0x14) = puVar9[2]" (pointer_expression "*(undefined4 *)(puVar11 + 0x14)" * (cast_expression "(undefined4 *)(puVar11 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x18) = puVar9[3];" (assignment_expression "*(undefined4 *)(puVar11 + 0x18) = puVar9[3]" (pointer_expression "*(undefined4 *)(puVar11 + 0x18)" * (cast_expression "(undefined4 *)(puVar11 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x18)" ( (binary_expression "puVar11 + 0x18" identifier + number_literal) )))) = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" else (compound_statement "{\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" { (expression_statement "*(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];" (assignment_expression "*(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2]" (pointer_expression "*(undefined4 **)(puVar11 + 4)" * (cast_expression "(undefined4 **)(puVar11 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 4)" ( (binary_expression "puVar11 + 4" identifier + number_literal) )))) = (cast_expression "(undefined4 *)puVar9[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[-2]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(puVar11 + 0xc) = *puVar9;" (assignment_expression "*(undefined4 *)(puVar11 + 0xc) = *puVar9" (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" * (cast_expression "(undefined4 *)(puVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) )))) = (pointer_expression "*puVar9" * identifier)) ;) }))) (expression_statement "*(undefined4 *)(puVar11 + 8) = puVar9[-1];" (assignment_expression "*(undefined4 *)(puVar11 + 8) = puVar9[-1]" (pointer_expression "*(undefined4 *)(puVar11 + 8)" * (cast_expression "(undefined4 *)(puVar11 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar9[-2] = puVar9;" (assignment_expression "puVar9[-2] = puVar9" (subscript_expression "puVar9[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[-1] = 0;" (assignment_expression "puVar9[-1] = 0" (subscript_expression "puVar9[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar9 = 0;" (assignment_expression "*(undefined1 *)puVar9 = 0" (pointer_expression "*(undefined1 *)puVar9" * (cast_expression "(undefined1 *)puVar9" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x1c) = puVar9[4];" (assignment_expression "*(undefined4 *)(puVar11 + 0x1c) = puVar9[4]" (pointer_expression "*(undefined4 *)(puVar11 + 0x1c)" * (cast_expression "(undefined4 *)(puVar11 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x1c)" ( (binary_expression "puVar11 + 0x1c" identifier + number_literal) )))) = (subscript_expression "puVar9[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;" (assignment_expression "*(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28" (pointer_expression "*(undefined1 **)(puVar11 + 0x20)" * (cast_expression "(undefined1 **)(puVar11 + 0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x20)" ( (binary_expression "puVar11 + 0x20" identifier + number_literal) )))) = (binary_expression "puVar11 + 0x28" identifier + number_literal)) ;) (if_statement "if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" if (parenthesized_expression "((undefined4 *)puVar9[5] == puVar9 + 7)" ( (binary_expression "(undefined4 *)puVar9[5] == puVar9 + 7" (cast_expression "(undefined4 *)puVar9[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[5]" identifier [ number_literal ])) == (binary_expression "puVar9 + 7" identifier + number_literal)) )) (compound_statement "{\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }" { (expression_statement "*(undefined4 *)(puVar11 + 0x28) = puVar9[7];" (assignment_expression "*(undefined4 *)(puVar11 + 0x28) = puVar9[7]" (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" * (cast_expression "(undefined4 *)(puVar11 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x28)" ( (binary_expression "puVar11 + 0x28" identifier + number_literal) )))) = (subscript_expression "puVar9[7]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x2c) = puVar9[8];" (assignment_expression "*(undefined4 *)(puVar11 + 0x2c) = puVar9[8]" (pointer_expression "*(undefined4 *)(puVar11 + 0x2c)" * (cast_expression "(undefined4 *)(puVar11 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x2c)" ( (binary_expression "puVar11 + 0x2c" identifier + number_literal) )))) = (subscript_expression "puVar9[8]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x30) = puVar9[9];" (assignment_expression "*(undefined4 *)(puVar11 + 0x30) = puVar9[9]" (pointer_expression "*(undefined4 *)(puVar11 + 0x30)" * (cast_expression "(undefined4 *)(puVar11 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x30)" ( (binary_expression "puVar11 + 0x30" identifier + number_literal) )))) = (subscript_expression "puVar9[9]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x34) = puVar9[10];" (assignment_expression "*(undefined4 *)(puVar11 + 0x34) = puVar9[10]" (pointer_expression "*(undefined4 *)(puVar11 + 0x34)" * (cast_expression "(undefined4 *)(puVar11 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x34)" ( (binary_expression "puVar11 + 0x34" identifier + number_literal) )))) = (subscript_expression "puVar9[10]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" else (compound_statement "{\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" { (expression_statement "*(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];" (assignment_expression "*(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5]" (pointer_expression "*(undefined4 **)(puVar11 + 0x20)" * (cast_expression "(undefined4 **)(puVar11 + 0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x20)" ( (binary_expression "puVar11 + 0x20" identifier + number_literal) )))) = (cast_expression "(undefined4 *)puVar9[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[5]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x28) = puVar9[7];" (assignment_expression "*(undefined4 *)(puVar11 + 0x28) = puVar9[7]" (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" * (cast_expression "(undefined4 *)(puVar11 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x28)" ( (binary_expression "puVar11 + 0x28" identifier + number_literal) )))) = (subscript_expression "puVar9[7]" identifier [ number_literal ])) ;) }))) (expression_statement "puVar8 = puVar9 + 0x17;" (assignment_expression "puVar8 = puVar9 + 0x17" identifier = (binary_expression "puVar9 + 0x17" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x24) = puVar9[6];" (assignment_expression "*(undefined4 *)(puVar11 + 0x24) = puVar9[6]" (pointer_expression "*(undefined4 *)(puVar11 + 0x24)" * (cast_expression "(undefined4 *)(puVar11 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x24)" ( (binary_expression "puVar11 + 0x24" identifier + number_literal) )))) = (subscript_expression "puVar9[6]" identifier [ number_literal ])) ;) (expression_statement "puVar9[5] = puVar9 + 7;" (assignment_expression "puVar9[5] = puVar9 + 7" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = (binary_expression "puVar9 + 7" identifier + number_literal)) ;) (expression_statement "puVar9[6] = 0;" (assignment_expression "puVar9[6] = 0" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar9 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar9 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar9 + 7)" * (cast_expression "(undefined1 *)(puVar9 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 7)" ( (binary_expression "puVar9 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);" (assignment_expression "puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb)" (subscript_expression "puVar11[0x38]" identifier [ number_literal ]) = (pointer_expression "*(undefined1 *)(puVar9 + 0xb)" * (cast_expression "(undefined1 *)(puVar9 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xb)" ( (binary_expression "puVar9 + 0xb" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];" (assignment_expression "*(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc]" (pointer_expression "*(undefined4 *)(puVar11 + 0x3c)" * (cast_expression "(undefined4 *)(puVar11 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x3c)" ( (binary_expression "puVar11 + 0x3c" identifier + number_literal) )))) = (subscript_expression "puVar9[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];" (assignment_expression "*(undefined4 *)(puVar11 + 0x40) = puVar9[0xd]" (pointer_expression "*(undefined4 *)(puVar11 + 0x40)" * (cast_expression "(undefined4 *)(puVar11 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x40)" ( (binary_expression "puVar11 + 0x40" identifier + number_literal) )))) = (subscript_expression "puVar9[0xd]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];" (assignment_expression "*(undefined4 *)(puVar11 + 0x44) = puVar9[0xe]" (pointer_expression "*(undefined4 *)(puVar11 + 0x44)" * (cast_expression "(undefined4 *)(puVar11 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x44)" ( (binary_expression "puVar11 + 0x44" identifier + number_literal) )))) = (subscript_expression "puVar9[0xe]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];" (assignment_expression "*(undefined4 *)(puVar11 + 0x48) = puVar9[0xf]" (pointer_expression "*(undefined4 *)(puVar11 + 0x48)" * (cast_expression "(undefined4 *)(puVar11 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x48)" ( (binary_expression "puVar11 + 0x48" identifier + number_literal) )))) = (subscript_expression "puVar9[0xf]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];" (assignment_expression "*(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10]" (pointer_expression "*(undefined4 *)(puVar11 + 0x4c)" * (cast_expression "(undefined4 *)(puVar11 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x4c)" ( (binary_expression "puVar11 + 0x4c" identifier + number_literal) )))) = (subscript_expression "puVar9[0x10]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];" (assignment_expression "*(undefined4 *)(puVar11 + 0x50) = puVar9[0x11]" (pointer_expression "*(undefined4 *)(puVar11 + 0x50)" * (cast_expression "(undefined4 *)(puVar11 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x50)" ( (binary_expression "puVar11 + 0x50" identifier + number_literal) )))) = (subscript_expression "puVar9[0x11]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];" (assignment_expression "*(undefined4 *)(puVar11 + 0x54) = puVar9[0x12]" (pointer_expression "*(undefined4 *)(puVar11 + 0x54)" * (cast_expression "(undefined4 *)(puVar11 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x54)" ( (binary_expression "puVar11 + 0x54" identifier + number_literal) )))) = (subscript_expression "puVar9[0x12]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];" (assignment_expression "*(undefined4 *)(puVar11 + 0x58) = puVar9[0x13]" (pointer_expression "*(undefined4 *)(puVar11 + 0x58)" * (cast_expression "(undefined4 *)(puVar11 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x58)" ( (binary_expression "puVar11 + 0x58" identifier + number_literal) )))) = (subscript_expression "puVar9[0x13]" identifier [ number_literal ])) ;) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" identifier = identifier) ;) (expression_statement "puVar11 = puVar11 + 0x5c;" (assignment_expression "puVar11 = puVar11 + 0x5c" identifier = (binary_expression "puVar11 + 0x5c" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c))" ( (binary_expression "puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c)" identifier != (cast_expression "(undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x68 + uVar10 * 0x5c)" ( (binary_expression "iVar2 + 0x68 + uVar10 * 0x5c" (binary_expression "iVar2 + 0x68" identifier + number_literal) + (binary_expression "uVar10 * 0x5c" identifier * number_literal)) )))) )) ;) (expression_statement "local_2c = local_34 + (uVar10 + 2) * 0x5c;" (assignment_expression "local_2c = local_34 + (uVar10 + 2) * 0x5c" identifier = (binary_expression "local_34 + (uVar10 + 2) * 0x5c" identifier + (binary_expression "(uVar10 + 2) * 0x5c" (parenthesized_expression "(uVar10 + 2)" ( (binary_expression "uVar10 + 2" identifier + number_literal) )) * number_literal))) ;) })) (expression_statement "iVar6 = iVar2;" (assignment_expression "iVar6 = iVar2" identifier = identifier) ;) (if_statement "if (param_2 != iVar3) {\n    uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(param_2 + 0xc);\n    puVar11 = local_2c;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_2c + (uVar10 + 1) * 0x5c;\n  }" if (parenthesized_expression "(param_2 != iVar3)" ( (binary_expression "param_2 != iVar3" identifier != identifier) )) (compound_statement "{\n    uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(param_2 + 0xc);\n    puVar11 = local_2c;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_2c + (uVar10 + 1) * 0x5c;\n  }" { (expression_statement "uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;" (assignment_expression "uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff" identifier = (binary_expression "((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff" (binary_expression "((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7" (parenthesized_expression "((iVar3 - param_2) - 0x5cU >> 2)" ( (binary_expression "(iVar3 - param_2) - 0x5cU >> 2" (binary_expression "(iVar3 - param_2) - 0x5cU" (parenthesized_expression "(iVar3 - param_2)" ( (binary_expression "iVar3 - param_2" identifier - identifier) )) - number_literal) >> number_literal) )) * number_literal) & number_literal)) ;) (expression_statement "puVar9 = (undefined4 *)(param_2 + 0xc);" (assignment_expression "puVar9 = (undefined4 *)(param_2 + 0xc)" identifier = (cast_expression "(undefined4 *)(param_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) ;) (expression_statement "puVar11 = local_2c;" (assignment_expression "puVar11 = local_2c" identifier = identifier) ;) (do_statement "do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));" do (compound_statement "{\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    }" { (expression_statement "uVar1 = *(undefined1 *)(puVar9 + -3);" (assignment_expression "uVar1 = *(undefined1 *)(puVar9 + -3)" identifier = (pointer_expression "*(undefined1 *)(puVar9 + -3)" * (cast_expression "(undefined1 *)(puVar9 + -3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -3)" ( (binary_expression "puVar9 + -3" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;" (assignment_expression "*(undefined1 **)(puVar11 + 4) = puVar11 + 0xc" (pointer_expression "*(undefined1 **)(puVar11 + 4)" * (cast_expression "(undefined1 **)(puVar11 + 4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 4)" ( (binary_expression "puVar11 + 4" identifier + number_literal) )))) = (binary_expression "puVar11 + 0xc" identifier + number_literal)) ;) (expression_statement "*puVar11 = uVar1;" (assignment_expression "*puVar11 = uVar1" (pointer_expression "*puVar11" * identifier) = identifier) ;) (if_statement "if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" if (parenthesized_expression "(puVar9 == (undefined4 *)puVar9[-2])" ( (binary_expression "puVar9 == (undefined4 *)puVar9[-2]" identifier == (cast_expression "(undefined4 *)puVar9[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[-2]" identifier [ number_literal ]))) )) (compound_statement "{\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }" { (expression_statement "*(undefined4 *)(puVar11 + 0xc) = *puVar9;" (assignment_expression "*(undefined4 *)(puVar11 + 0xc) = *puVar9" (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" * (cast_expression "(undefined4 *)(puVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) )))) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x10) = puVar9[1];" (assignment_expression "*(undefined4 *)(puVar11 + 0x10) = puVar9[1]" (pointer_expression "*(undefined4 *)(puVar11 + 0x10)" * (cast_expression "(undefined4 *)(puVar11 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))) = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x14) = puVar9[2];" (assignment_expression "*(undefined4 *)(puVar11 + 0x14) = puVar9[2]" (pointer_expression "*(undefined4 *)(puVar11 + 0x14)" * (cast_expression "(undefined4 *)(puVar11 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x18) = puVar9[3];" (assignment_expression "*(undefined4 *)(puVar11 + 0x18) = puVar9[3]" (pointer_expression "*(undefined4 *)(puVar11 + 0x18)" * (cast_expression "(undefined4 *)(puVar11 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x18)" ( (binary_expression "puVar11 + 0x18" identifier + number_literal) )))) = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" else (compound_statement "{\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" { (expression_statement "*(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];" (assignment_expression "*(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2]" (pointer_expression "*(undefined4 **)(puVar11 + 4)" * (cast_expression "(undefined4 **)(puVar11 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 4)" ( (binary_expression "puVar11 + 4" identifier + number_literal) )))) = (cast_expression "(undefined4 *)puVar9[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[-2]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(puVar11 + 0xc) = *puVar9;" (assignment_expression "*(undefined4 *)(puVar11 + 0xc) = *puVar9" (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" * (cast_expression "(undefined4 *)(puVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) )))) = (pointer_expression "*puVar9" * identifier)) ;) }))) (expression_statement "uVar4 = puVar9[-1];" (assignment_expression "uVar4 = puVar9[-1]" identifier = (subscript_expression "puVar9[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar8 = (undefined4 *)puVar9[5];" (assignment_expression "puVar8 = (undefined4 *)puVar9[5]" identifier = (cast_expression "(undefined4 *)puVar9[5]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[5]" identifier [ number_literal ]))) ;) (expression_statement "puVar9[-2] = puVar9;" (assignment_expression "puVar9[-2] = puVar9" (subscript_expression "puVar9[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[-1] = 0;" (assignment_expression "puVar9[-1] = 0" (subscript_expression "puVar9[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar11 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(puVar11 + 8) = uVar4" (pointer_expression "*(undefined4 *)(puVar11 + 8)" * (cast_expression "(undefined4 *)(puVar11 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)puVar9 = 0;" (assignment_expression "*(undefined1 *)puVar9 = 0" (pointer_expression "*(undefined1 *)puVar9" * (cast_expression "(undefined1 *)puVar9" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x1c) = puVar9[4];" (assignment_expression "*(undefined4 *)(puVar11 + 0x1c) = puVar9[4]" (pointer_expression "*(undefined4 *)(puVar11 + 0x1c)" * (cast_expression "(undefined4 *)(puVar11 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x1c)" ( (binary_expression "puVar11 + 0x1c" identifier + number_literal) )))) = (subscript_expression "puVar9[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;" (assignment_expression "*(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28" (pointer_expression "*(undefined1 **)(puVar11 + 0x20)" * (cast_expression "(undefined1 **)(puVar11 + 0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x20)" ( (binary_expression "puVar11 + 0x20" identifier + number_literal) )))) = (binary_expression "puVar11 + 0x28" identifier + number_literal)) ;) (if_statement "if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" if (parenthesized_expression "(puVar8 == puVar9 + 7)" ( (binary_expression "puVar8 == puVar9 + 7" identifier == (binary_expression "puVar9 + 7" identifier + number_literal)) )) (compound_statement "{\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }" { (expression_statement "*(undefined4 *)(puVar11 + 0x28) = puVar9[7];" (assignment_expression "*(undefined4 *)(puVar11 + 0x28) = puVar9[7]" (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" * (cast_expression "(undefined4 *)(puVar11 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x28)" ( (binary_expression "puVar11 + 0x28" identifier + number_literal) )))) = (subscript_expression "puVar9[7]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x2c) = puVar9[8];" (assignment_expression "*(undefined4 *)(puVar11 + 0x2c) = puVar9[8]" (pointer_expression "*(undefined4 *)(puVar11 + 0x2c)" * (cast_expression "(undefined4 *)(puVar11 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x2c)" ( (binary_expression "puVar11 + 0x2c" identifier + number_literal) )))) = (subscript_expression "puVar9[8]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x30) = puVar9[9];" (assignment_expression "*(undefined4 *)(puVar11 + 0x30) = puVar9[9]" (pointer_expression "*(undefined4 *)(puVar11 + 0x30)" * (cast_expression "(undefined4 *)(puVar11 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x30)" ( (binary_expression "puVar11 + 0x30" identifier + number_literal) )))) = (subscript_expression "puVar9[9]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x34) = puVar9[10];" (assignment_expression "*(undefined4 *)(puVar11 + 0x34) = puVar9[10]" (pointer_expression "*(undefined4 *)(puVar11 + 0x34)" * (cast_expression "(undefined4 *)(puVar11 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x34)" ( (binary_expression "puVar11 + 0x34" identifier + number_literal) )))) = (subscript_expression "puVar9[10]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" else (compound_statement "{\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" { (expression_statement "*(undefined4 **)(puVar11 + 0x20) = puVar8;" (assignment_expression "*(undefined4 **)(puVar11 + 0x20) = puVar8" (pointer_expression "*(undefined4 **)(puVar11 + 0x20)" * (cast_expression "(undefined4 **)(puVar11 + 0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x20)" ( (binary_expression "puVar11 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x28) = puVar9[7];" (assignment_expression "*(undefined4 *)(puVar11 + 0x28) = puVar9[7]" (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" * (cast_expression "(undefined4 *)(puVar11 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x28)" ( (binary_expression "puVar11 + 0x28" identifier + number_literal) )))) = (subscript_expression "puVar9[7]" identifier [ number_literal ])) ;) }))) (expression_statement "puVar9[5] = puVar9 + 7;" (assignment_expression "puVar9[5] = puVar9 + 7" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = (binary_expression "puVar9 + 7" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar9 + 0x17;" (assignment_expression "puVar8 = puVar9 + 0x17" identifier = (binary_expression "puVar9 + 0x17" identifier + number_literal)) ;) (expression_statement "uVar4 = puVar9[6];" (assignment_expression "uVar4 = puVar9[6]" identifier = (subscript_expression "puVar9[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(puVar9 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar9 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar9 + 7)" * (cast_expression "(undefined1 *)(puVar9 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 7)" ( (binary_expression "puVar9 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);" (assignment_expression "puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb)" (subscript_expression "puVar11[0x38]" identifier [ number_literal ]) = (pointer_expression "*(undefined1 *)(puVar9 + 0xb)" * (cast_expression "(undefined1 *)(puVar9 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xb)" ( (binary_expression "puVar9 + 0xb" identifier + number_literal) ))))) ;) (expression_statement "puVar9[6] = 0;" (assignment_expression "puVar9[6] = 0" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];" (assignment_expression "*(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc]" (pointer_expression "*(undefined4 *)(puVar11 + 0x3c)" * (cast_expression "(undefined4 *)(puVar11 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x3c)" ( (binary_expression "puVar11 + 0x3c" identifier + number_literal) )))) = (subscript_expression "puVar9[0xc]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar9[0xd];" (assignment_expression "uVar5 = puVar9[0xd]" identifier = (subscript_expression "puVar9[0xd]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x24) = uVar4;" (assignment_expression "*(undefined4 *)(puVar11 + 0x24) = uVar4" (pointer_expression "*(undefined4 *)(puVar11 + 0x24)" * (cast_expression "(undefined4 *)(puVar11 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x24)" ( (binary_expression "puVar11 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x40) = uVar5;" (assignment_expression "*(undefined4 *)(puVar11 + 0x40) = uVar5" (pointer_expression "*(undefined4 *)(puVar11 + 0x40)" * (cast_expression "(undefined4 *)(puVar11 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x40)" ( (binary_expression "puVar11 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];" (assignment_expression "*(undefined4 *)(puVar11 + 0x44) = puVar9[0xe]" (pointer_expression "*(undefined4 *)(puVar11 + 0x44)" * (cast_expression "(undefined4 *)(puVar11 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x44)" ( (binary_expression "puVar11 + 0x44" identifier + number_literal) )))) = (subscript_expression "puVar9[0xe]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];" (assignment_expression "*(undefined4 *)(puVar11 + 0x48) = puVar9[0xf]" (pointer_expression "*(undefined4 *)(puVar11 + 0x48)" * (cast_expression "(undefined4 *)(puVar11 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x48)" ( (binary_expression "puVar11 + 0x48" identifier + number_literal) )))) = (subscript_expression "puVar9[0xf]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];" (assignment_expression "*(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10]" (pointer_expression "*(undefined4 *)(puVar11 + 0x4c)" * (cast_expression "(undefined4 *)(puVar11 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x4c)" ( (binary_expression "puVar11 + 0x4c" identifier + number_literal) )))) = (subscript_expression "puVar9[0x10]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];" (assignment_expression "*(undefined4 *)(puVar11 + 0x50) = puVar9[0x11]" (pointer_expression "*(undefined4 *)(puVar11 + 0x50)" * (cast_expression "(undefined4 *)(puVar11 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x50)" ( (binary_expression "puVar11 + 0x50" identifier + number_literal) )))) = (subscript_expression "puVar9[0x11]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];" (assignment_expression "*(undefined4 *)(puVar11 + 0x54) = puVar9[0x12]" (pointer_expression "*(undefined4 *)(puVar11 + 0x54)" * (cast_expression "(undefined4 *)(puVar11 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x54)" ( (binary_expression "puVar11 + 0x54" identifier + number_literal) )))) = (subscript_expression "puVar9[0x12]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];" (assignment_expression "*(undefined4 *)(puVar11 + 0x58) = puVar9[0x13]" (pointer_expression "*(undefined4 *)(puVar11 + 0x58)" * (cast_expression "(undefined4 *)(puVar11 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x58)" ( (binary_expression "puVar11 + 0x58" identifier + number_literal) )))) = (subscript_expression "puVar9[0x13]" identifier [ number_literal ])) ;) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" identifier = identifier) ;) (expression_statement "puVar11 = puVar11 + 0x5c;" (assignment_expression "puVar11 = puVar11 + 0x5c" identifier = (binary_expression "puVar11 + 0x5c" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c))" ( (binary_expression "puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c)" identifier != (cast_expression "(undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x68 + uVar10 * 0x5c)" ( (binary_expression "param_2 + 0x68 + uVar10 * 0x5c" (binary_expression "param_2 + 0x68" identifier + number_literal) + (binary_expression "uVar10 * 0x5c" identifier * number_literal)) )))) )) ;) (expression_statement "local_2c = local_2c + (uVar10 + 1) * 0x5c;" (assignment_expression "local_2c = local_2c + (uVar10 + 1) * 0x5c" identifier = (binary_expression "local_2c + (uVar10 + 1) * 0x5c" identifier + (binary_expression "(uVar10 + 1) * 0x5c" (parenthesized_expression "(uVar10 + 1)" ( (binary_expression "uVar10 + 1" identifier + number_literal) )) * number_literal))) ;) })) (for_statement "for (; iVar6 != iVar3; iVar6 = iVar6 + 0x5c) {\n    if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }\n    if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }\n  }" for ( ; (binary_expression "iVar6 != iVar3" identifier != identifier) ; (assignment_expression "iVar6 = iVar6 + 0x5c" identifier = (binary_expression "iVar6 + 0x5c" identifier + number_literal)) ) (compound_statement "{\n    if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }\n    if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }\n  }" { (if_statement "if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }" if (parenthesized_expression "(*(int *)(iVar6 + 0x20) != iVar6 + 0x28)" ( (binary_expression "*(int *)(iVar6 + 0x20) != iVar6 + 0x28" (pointer_expression "*(int *)(iVar6 + 0x20)" * (cast_expression "(int *)(iVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) != (binary_expression "iVar6 + 0x28" identifier + number_literal)) )) (compound_statement "{\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }" { (expression_statement "FUN_001fd020(*(int *)(iVar6 + 0x20));" (call_expression "FUN_001fd020(*(int *)(iVar6 + 0x20))" identifier (argument_list "(*(int *)(iVar6 + 0x20))" ( (pointer_expression "*(int *)(iVar6 + 0x20)" * (cast_expression "(int *)(iVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) ))) ;) })) (if_statement "if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }" if (parenthesized_expression "(*(int *)(iVar6 + 4) != iVar6 + 0xc)" ( (binary_expression "*(int *)(iVar6 + 4) != iVar6 + 0xc" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) != (binary_expression "iVar6 + 0xc" identifier + number_literal)) )) (compound_statement "{\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }" { (expression_statement "FUN_001fd020(*(int *)(iVar6 + 4));" (call_expression "FUN_001fd020(*(int *)(iVar6 + 4))" identifier (argument_list "(*(int *)(iVar6 + 4))" ( (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) ))) ;) })) })) (if_statement "if (iVar2 != 0) {\n    FUN_001fd020(iVar2);\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_001fd020(iVar2);\n  }" { (expression_statement "FUN_001fd020(iVar2);" (call_expression "FUN_001fd020(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) })) (expression_statement "*param_1 = (int)local_34;" (assignment_expression "*param_1 = (int)local_34" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[1] = (int)local_2c;" (assignment_expression "param_1[1] = (int)local_2c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[2] = (int)local_24;" (assignment_expression "param_1[2] = (int)local_24" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)local_24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * LIT) ))) < IDENT) || (binary_expression (binary_expression IDENT * LIT) == LIT)) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) ))) >> LIT) )) * LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - LIT) >> LIT) )) * LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) ;) })) (for_statement for ( ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (return_statement return ;) })))
(function_definition "void FUN_000fdd50(int *param_1,int param_2,undefined1 *param_3)\n\n{\n  undefined1 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined1 *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  undefined1 *local_34;\n  undefined1 *local_2c;\n  undefined1 *local_24;\n  \n  iVar2 = *param_1;\n  iVar3 = param_1[1];\n  iVar6 = iVar3 - iVar2 >> 2;\n  if (iVar6 * -0x1642c859 == 0) {\n    uVar10 = 1;\nLAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;\n  }\n  else {\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }\n  local_34 = (undefined1 *)FUN_001fb470(iVar12);\n  local_24 = local_34 + iVar12;\n  local_2c = local_34 + 0x5c;\nLAB_000fddbd:\n  puVar11 = *(undefined1 **)(param_3 + 4);\n  puVar7 = local_34 + (param_2 - iVar2);\n  *puVar7 = *param_3;\n  *(undefined1 **)(puVar7 + 4) = puVar7 + 0xc;\n  if (puVar11 == param_3 + 0xc) {\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n    *(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);\n    *(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);\n    *(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }\n  uVar4 = *(undefined4 *)(param_3 + 8);\n  *(undefined1 **)(param_3 + 4) = param_3 + 0xc;\n  uVar5 = *(undefined4 *)(param_3 + 0x1c);\n  *(undefined4 *)(param_3 + 8) = 0;\n  *(undefined4 *)(puVar7 + 8) = uVar4;\n  puVar11 = *(undefined1 **)(param_3 + 0x20);\n  *(undefined4 *)(puVar7 + 0x1c) = uVar5;\n  param_3[0xc] = 0;\n  *(undefined1 **)(puVar7 + 0x20) = puVar7 + 0x28;\n  if (puVar11 == param_3 + 0x28) {\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n    *(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);\n    *(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }\n  uVar4 = *(undefined4 *)(param_3 + 0x24);\n  *(undefined1 **)(param_3 + 0x20) = param_3 + 0x28;\n  uVar1 = param_3[0x38];\n  *(undefined4 *)(param_3 + 0x24) = 0;\n  *(undefined4 *)(puVar7 + 0x24) = uVar4;\n  puVar7[0x38] = uVar1;\n  param_3[0x28] = 0;\n  *(undefined4 *)(puVar7 + 0x3c) = *(undefined4 *)(param_3 + 0x3c);\n  *(undefined4 *)(puVar7 + 0x40) = *(undefined4 *)(param_3 + 0x40);\n  *(undefined4 *)(puVar7 + 0x44) = *(undefined4 *)(param_3 + 0x44);\n  *(undefined4 *)(puVar7 + 0x48) = *(undefined4 *)(param_3 + 0x48);\n  *(undefined4 *)(puVar7 + 0x4c) = *(undefined4 *)(param_3 + 0x4c);\n  *(undefined4 *)(puVar7 + 0x50) = *(undefined4 *)(param_3 + 0x50);\n  *(undefined4 *)(puVar7 + 0x54) = *(undefined4 *)(param_3 + 0x54);\n  *(undefined4 *)(puVar7 + 0x58) = *(undefined4 *)(param_3 + 0x58);\n  if (param_2 != iVar2) {\n    uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(iVar2 + 0xc);\n    puVar11 = local_34;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_34 + (uVar10 + 2) * 0x5c;\n  }\n  iVar6 = iVar2;\n  if (param_2 != iVar3) {\n    uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(param_2 + 0xc);\n    puVar11 = local_2c;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_2c + (uVar10 + 1) * 0x5c;\n  }\n  for (; iVar6 != iVar3; iVar6 = iVar6 + 0x5c) {\n    if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }\n    if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }\n  }\n  if (iVar2 != 0) {\n    FUN_001fd020(iVar2);\n  }\n  *param_1 = (int)local_34;\n  param_1[1] = (int)local_2c;\n  param_1[2] = (int)local_24;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000fdd50(int *param_1,int param_2,undefined1 *param_3)" (identifier "FUN_000fdd50") (parameter_list "(int *param_1,int param_2,undefined1 *param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined1 *param_3" (type_identifier "undefined1") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  undefined1 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined1 *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  undefined1 *local_34;\n  undefined1 *local_2c;\n  undefined1 *local_24;\n  \n  iVar2 = *param_1;\n  iVar3 = param_1[1];\n  iVar6 = iVar3 - iVar2 >> 2;\n  if (iVar6 * -0x1642c859 == 0) {\n    uVar10 = 1;\nLAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;\n  }\n  else {\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }\n  local_34 = (undefined1 *)FUN_001fb470(iVar12);\n  local_24 = local_34 + iVar12;\n  local_2c = local_34 + 0x5c;\nLAB_000fddbd:\n  puVar11 = *(undefined1 **)(param_3 + 4);\n  puVar7 = local_34 + (param_2 - iVar2);\n  *puVar7 = *param_3;\n  *(undefined1 **)(puVar7 + 4) = puVar7 + 0xc;\n  if (puVar11 == param_3 + 0xc) {\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n    *(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);\n    *(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);\n    *(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }\n  uVar4 = *(undefined4 *)(param_3 + 8);\n  *(undefined1 **)(param_3 + 4) = param_3 + 0xc;\n  uVar5 = *(undefined4 *)(param_3 + 0x1c);\n  *(undefined4 *)(param_3 + 8) = 0;\n  *(undefined4 *)(puVar7 + 8) = uVar4;\n  puVar11 = *(undefined1 **)(param_3 + 0x20);\n  *(undefined4 *)(puVar7 + 0x1c) = uVar5;\n  param_3[0xc] = 0;\n  *(undefined1 **)(puVar7 + 0x20) = puVar7 + 0x28;\n  if (puVar11 == param_3 + 0x28) {\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n    *(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);\n    *(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }\n  uVar4 = *(undefined4 *)(param_3 + 0x24);\n  *(undefined1 **)(param_3 + 0x20) = param_3 + 0x28;\n  uVar1 = param_3[0x38];\n  *(undefined4 *)(param_3 + 0x24) = 0;\n  *(undefined4 *)(puVar7 + 0x24) = uVar4;\n  puVar7[0x38] = uVar1;\n  param_3[0x28] = 0;\n  *(undefined4 *)(puVar7 + 0x3c) = *(undefined4 *)(param_3 + 0x3c);\n  *(undefined4 *)(puVar7 + 0x40) = *(undefined4 *)(param_3 + 0x40);\n  *(undefined4 *)(puVar7 + 0x44) = *(undefined4 *)(param_3 + 0x44);\n  *(undefined4 *)(puVar7 + 0x48) = *(undefined4 *)(param_3 + 0x48);\n  *(undefined4 *)(puVar7 + 0x4c) = *(undefined4 *)(param_3 + 0x4c);\n  *(undefined4 *)(puVar7 + 0x50) = *(undefined4 *)(param_3 + 0x50);\n  *(undefined4 *)(puVar7 + 0x54) = *(undefined4 *)(param_3 + 0x54);\n  *(undefined4 *)(puVar7 + 0x58) = *(undefined4 *)(param_3 + 0x58);\n  if (param_2 != iVar2) {\n    uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(iVar2 + 0xc);\n    puVar11 = local_34;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_34 + (uVar10 + 2) * 0x5c;\n  }\n  iVar6 = iVar2;\n  if (param_2 != iVar3) {\n    uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(param_2 + 0xc);\n    puVar11 = local_2c;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_2c + (uVar10 + 1) * 0x5c;\n  }\n  for (; iVar6 != iVar3; iVar6 = iVar6 + 0x5c) {\n    if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }\n    if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }\n  }\n  if (iVar2 != 0) {\n    FUN_001fd020(iVar2);\n  }\n  *param_1 = (int)local_34;\n  param_1[1] = (int)local_2c;\n  param_1[2] = (int)local_24;\n  return;\n}" ({ "{") (declaration "undefined1 uVar1;" (type_identifier "undefined1") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined1 *puVar7;" (type_identifier "undefined1") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "undefined1 *puVar11;" (type_identifier "undefined1") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined1 *local_34;" (type_identifier "undefined1") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "undefined1 *local_2c;" (type_identifier "undefined1") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (declaration "undefined1 *local_24;" (type_identifier "undefined1") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (expression_statement "iVar2 = *param_1;" (assignment_expression "iVar2 = *param_1" (identifier "iVar2") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iVar3 = param_1[1];" (assignment_expression "iVar3 = param_1[1]" (identifier "iVar3") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar6 = iVar3 - iVar2 >> 2;" (assignment_expression "iVar6 = iVar3 - iVar2 >> 2" (identifier "iVar6") (= "=") (binary_expression "iVar3 - iVar2 >> 2" (binary_expression "iVar3 - iVar2" (identifier "iVar3") (- "-") (identifier "iVar2")) (>> ">>") (number_literal "2"))) (; ";")) (if_statement "if (iVar6 * -0x1642c859 == 0) {\n    uVar10 = 1;\nLAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;\n  }\n  else {\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }" (if "if") (parenthesized_expression "(iVar6 * -0x1642c859 == 0)" (( "(") (binary_expression "iVar6 * -0x1642c859 == 0" (binary_expression "iVar6 * -0x1642c859" (identifier "iVar6") (* "*") (number_literal "-0x1642c859")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar10 = 1;\nLAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;\n  }" ({ "{") (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" (identifier "uVar10") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_000fe1a5:\n    iVar12 = uVar10 * 0x5c;" (statement_identifier "LAB_000fe1a5") (: ":") (expression_statement "iVar12 = uVar10 * 0x5c;" (assignment_expression "iVar12 = uVar10 * 0x5c" (identifier "iVar12") (= "=") (binary_expression "uVar10 * 0x5c" (identifier "uVar10") (* "*") (number_literal "0x5c"))) (; ";"))) (} "}")) (else_clause "else {\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }" (else "else") (compound_statement "{\n    uVar10 = iVar6 * -0x2c8590b2;\n    iVar12 = -0xc;\n    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }\n  }" ({ "{") (expression_statement "uVar10 = iVar6 * -0x2c8590b2;" (assignment_expression "uVar10 = iVar6 * -0x2c8590b2" (identifier "uVar10") (= "=") (binary_expression "iVar6 * -0x2c8590b2" (identifier "iVar6") (* "*") (number_literal "-0x2c8590b2"))) (; ";")) (expression_statement "iVar12 = -0xc;" (assignment_expression "iVar12 = -0xc" (identifier "iVar12") (= "=") (number_literal "-0xc")) (; ";")) (if_statement "if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }" (if "if") (parenthesized_expression "(((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c))" (( "(") (binary_expression "((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)" (parenthesized_expression "((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0)" (( "(") (binary_expression "(uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0" (binary_expression "(uint)(iVar6 * -0x1642c859) < uVar10" (call_expression "(uint)(iVar6 * -0x1642c859)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar6 * -0x1642c859)" (( "(") (binary_expression "iVar6 * -0x1642c859" (identifier "iVar6") (* "*") (number_literal "-0x1642c859")) () ")"))) (< "<") (identifier "uVar10")) (|| "||") (binary_expression "iVar6 * 0x1642c859 == 0" (binary_expression "iVar6 * 0x1642c859" (identifier "iVar6") (* "*") (number_literal "0x1642c859")) (== "==") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "(uVar10 < 0x2c8590c)" (( "(") (binary_expression "uVar10 < 0x2c8590c" (identifier "uVar10") (< "<") (number_literal "0x2c8590c")) () ")"))) () ")")) (compound_statement "{\n      if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }\n      goto LAB_000fe1a5;\n    }" ({ "{") (if_statement "if (uVar10 == 0) {\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }" (if "if") (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_2c = (undefined1 *)0x5c;\n        local_24 = (undefined1 *)0x0;\n        local_34 = (undefined1 *)0x0;\n        goto LAB_000fddbd;\n      }" ({ "{") (expression_statement "local_2c = (undefined1 *)0x5c;" (assignment_expression "local_2c = (undefined1 *)0x5c" (identifier "local_2c") (= "=") (cast_expression "(undefined1 *)0x5c" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5c"))) (; ";")) (expression_statement "local_24 = (undefined1 *)0x0;" (assignment_expression "local_24 = (undefined1 *)0x0" (identifier "local_24") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_34 = (undefined1 *)0x0;" (assignment_expression "local_34 = (undefined1 *)0x0" (identifier "local_34") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_000fddbd;" (goto "goto") (statement_identifier "LAB_000fddbd") (; ";")) (} "}"))) (goto_statement "goto LAB_000fe1a5;" (goto "goto") (statement_identifier "LAB_000fe1a5") (; ";")) (} "}"))) (} "}")))) (expression_statement "local_34 = (undefined1 *)FUN_001fb470(iVar12);" (assignment_expression "local_34 = (undefined1 *)FUN_001fb470(iVar12)" (identifier "local_34") (= "=") (cast_expression "(undefined1 *)FUN_001fb470(iVar12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001fb470(iVar12)" (identifier "FUN_001fb470") (argument_list "(iVar12)" (( "(") (identifier "iVar12") () ")"))))) (; ";")) (expression_statement "local_24 = local_34 + iVar12;" (assignment_expression "local_24 = local_34 + iVar12" (identifier "local_24") (= "=") (binary_expression "local_34 + iVar12" (identifier "local_34") (+ "+") (identifier "iVar12"))) (; ";")) (expression_statement "local_2c = local_34 + 0x5c;" (assignment_expression "local_2c = local_34 + 0x5c" (identifier "local_2c") (= "=") (binary_expression "local_34 + 0x5c" (identifier "local_34") (+ "+") (number_literal "0x5c"))) (; ";")) (labeled_statement "LAB_000fddbd:\n  puVar11 = *(undefined1 **)(param_3 + 4);" (statement_identifier "LAB_000fddbd") (: ":") (expression_statement "puVar11 = *(undefined1 **)(param_3 + 4);" (assignment_expression "puVar11 = *(undefined1 **)(param_3 + 4)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined1 **)(param_3 + 4)" (* "*") (cast_expression "(undefined1 **)(param_3 + 4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")"))))) (; ";"))) (expression_statement "puVar7 = local_34 + (param_2 - iVar2);" (assignment_expression "puVar7 = local_34 + (param_2 - iVar2)" (identifier "puVar7") (= "=") (binary_expression "local_34 + (param_2 - iVar2)" (identifier "local_34") (+ "+") (parenthesized_expression "(param_2 - iVar2)" (( "(") (binary_expression "param_2 - iVar2" (identifier "param_2") (- "-") (identifier "iVar2")) () ")")))) (; ";")) (expression_statement "*puVar7 = *param_3;" (assignment_expression "*puVar7 = *param_3" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "*(undefined1 **)(puVar7 + 4) = puVar7 + 0xc;" (assignment_expression "*(undefined1 **)(puVar7 + 4) = puVar7 + 0xc" (pointer_expression "*(undefined1 **)(puVar7 + 4)" (* "*") (cast_expression "(undefined1 **)(puVar7 + 4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar7 + 0xc" (identifier "puVar7") (+ "+") (number_literal "0xc"))) (; ";")) (if_statement "if (puVar11 == param_3 + 0xc) {\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n    *(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);\n    *(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);\n    *(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }" (if "if") (parenthesized_expression "(puVar11 == param_3 + 0xc)" (( "(") (binary_expression "puVar11 == param_3 + 0xc" (identifier "puVar11") (== "==") (binary_expression "param_3 + 0xc" (identifier "param_3") (+ "+") (number_literal "0xc"))) () ")")) (compound_statement "{\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n    *(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);\n    *(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);\n    *(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);\n  }" ({ "{") (expression_statement "*(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);" (assignment_expression "*(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc)" (pointer_expression "*(undefined4 *)(puVar7 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0xc)" (( "(") (binary_expression "puVar7 + 0xc" (identifier "puVar7") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xc)" (( "(") (binary_expression "param_3 + 0xc" (identifier "param_3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);" (assignment_expression "*(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10)" (pointer_expression "*(undefined4 *)(puVar7 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x10)" (( "(") (binary_expression "puVar7 + 0x10" (identifier "puVar7") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x10)" (( "(") (binary_expression "param_3 + 0x10" (identifier "param_3") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);" (assignment_expression "*(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14)" (pointer_expression "*(undefined4 *)(puVar7 + 0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x14)" (( "(") (binary_expression "puVar7 + 0x14" (identifier "puVar7") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x14)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x14)" (( "(") (binary_expression "param_3 + 0x14" (identifier "param_3") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);" (assignment_expression "*(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18)" (pointer_expression "*(undefined4 *)(puVar7 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x18)" (( "(") (binary_expression "puVar7 + 0x18" (identifier "puVar7") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x18)" (( "(") (binary_expression "param_3 + 0x18" (identifier "param_3") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }" (else "else") (compound_statement "{\n    *(undefined1 **)(puVar7 + 4) = puVar11;\n    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);\n  }" ({ "{") (expression_statement "*(undefined1 **)(puVar7 + 4) = puVar11;" (assignment_expression "*(undefined1 **)(puVar7 + 4) = puVar11" (pointer_expression "*(undefined1 **)(puVar7 + 4)" (* "*") (cast_expression "(undefined1 **)(puVar7 + 4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);" (assignment_expression "*(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc)" (pointer_expression "*(undefined4 *)(puVar7 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0xc)" (( "(") (binary_expression "puVar7 + 0xc" (identifier "puVar7") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xc)" (( "(") (binary_expression "param_3 + 0xc" (identifier "param_3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar4 = *(undefined4 *)(param_3 + 8);" (assignment_expression "uVar4 = *(undefined4 *)(param_3 + 8)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(param_3 + 8)" (* "*") (cast_expression "(undefined4 *)(param_3 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 8)" (( "(") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(param_3 + 4) = param_3 + 0xc;" (assignment_expression "*(undefined1 **)(param_3 + 4) = param_3 + 0xc" (pointer_expression "*(undefined1 **)(param_3 + 4)" (* "*") (cast_expression "(undefined1 **)(param_3 + 4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "param_3 + 0xc" (identifier "param_3") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(param_3 + 0x1c);" (assignment_expression "uVar5 = *(undefined4 *)(param_3 + 0x1c)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x1c)" (( "(") (binary_expression "param_3 + 0x1c" (identifier "param_3") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_3 + 8) = 0;" (assignment_expression "*(undefined4 *)(param_3 + 8) = 0" (pointer_expression "*(undefined4 *)(param_3 + 8)" (* "*") (cast_expression "(undefined4 *)(param_3 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 8)" (( "(") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(puVar7 + 8) = uVar4" (pointer_expression "*(undefined4 *)(puVar7 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 8)" (( "(") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar11 = *(undefined1 **)(param_3 + 0x20);" (assignment_expression "puVar11 = *(undefined1 **)(param_3 + 0x20)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined1 **)(param_3 + 0x20)" (* "*") (cast_expression "(undefined1 **)(param_3 + 0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x20)" (( "(") (binary_expression "param_3 + 0x20" (identifier "param_3") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x1c) = uVar5;" (assignment_expression "*(undefined4 *)(puVar7 + 0x1c) = uVar5" (pointer_expression "*(undefined4 *)(puVar7 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x1c)" (( "(") (binary_expression "puVar7 + 0x1c" (identifier "puVar7") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "param_3[0xc] = 0;" (assignment_expression "param_3[0xc] = 0" (subscript_expression "param_3[0xc]" (identifier "param_3") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 **)(puVar7 + 0x20) = puVar7 + 0x28;" (assignment_expression "*(undefined1 **)(puVar7 + 0x20) = puVar7 + 0x28" (pointer_expression "*(undefined1 **)(puVar7 + 0x20)" (* "*") (cast_expression "(undefined1 **)(puVar7 + 0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 0x20)" (( "(") (binary_expression "puVar7 + 0x20" (identifier "puVar7") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "puVar7 + 0x28" (identifier "puVar7") (+ "+") (number_literal "0x28"))) (; ";")) (if_statement "if (puVar11 == param_3 + 0x28) {\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n    *(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);\n    *(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);\n  }\n  else {\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }" (if "if") (parenthesized_expression "(puVar11 == param_3 + 0x28)" (( "(") (binary_expression "puVar11 == param_3 + 0x28" (identifier "puVar11") (== "==") (binary_expression "param_3 + 0x28" (identifier "param_3") (+ "+") (number_literal "0x28"))) () ")")) (compound_statement "{\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n    *(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);\n    *(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);\n    *(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);\n  }" ({ "{") (expression_statement "*(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);" (assignment_expression "*(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28)" (pointer_expression "*(undefined4 *)(puVar7 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x28)" (( "(") (binary_expression "puVar7 + 0x28" (identifier "puVar7") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x28)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x28)" (( "(") (binary_expression "param_3 + 0x28" (identifier "param_3") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);" (assignment_expression "*(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c)" (pointer_expression "*(undefined4 *)(puVar7 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x2c)" (( "(") (binary_expression "puVar7 + 0x2c" (identifier "puVar7") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2c)" (( "(") (binary_expression "param_3 + 0x2c" (identifier "param_3") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);" (assignment_expression "*(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30)" (pointer_expression "*(undefined4 *)(puVar7 + 0x30)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x30)" (( "(") (binary_expression "puVar7 + 0x30" (identifier "puVar7") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x30)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x30)" (( "(") (binary_expression "param_3 + 0x30" (identifier "param_3") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);" (assignment_expression "*(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34)" (pointer_expression "*(undefined4 *)(puVar7 + 0x34)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x34)" (( "(") (binary_expression "puVar7 + 0x34" (identifier "puVar7") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x34)" (( "(") (binary_expression "param_3 + 0x34" (identifier "param_3") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }" (else "else") (compound_statement "{\n    *(undefined1 **)(puVar7 + 0x20) = puVar11;\n    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);\n  }" ({ "{") (expression_statement "*(undefined1 **)(puVar7 + 0x20) = puVar11;" (assignment_expression "*(undefined1 **)(puVar7 + 0x20) = puVar11" (pointer_expression "*(undefined1 **)(puVar7 + 0x20)" (* "*") (cast_expression "(undefined1 **)(puVar7 + 0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 0x20)" (( "(") (binary_expression "puVar7 + 0x20" (identifier "puVar7") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);" (assignment_expression "*(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28)" (pointer_expression "*(undefined4 *)(puVar7 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x28)" (( "(") (binary_expression "puVar7 + 0x28" (identifier "puVar7") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x28)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x28)" (( "(") (binary_expression "param_3 + 0x28" (identifier "param_3") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar4 = *(undefined4 *)(param_3 + 0x24);" (assignment_expression "uVar4 = *(undefined4 *)(param_3 + 0x24)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x24)" (( "(") (binary_expression "param_3 + 0x24" (identifier "param_3") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(param_3 + 0x20) = param_3 + 0x28;" (assignment_expression "*(undefined1 **)(param_3 + 0x20) = param_3 + 0x28" (pointer_expression "*(undefined1 **)(param_3 + 0x20)" (* "*") (cast_expression "(undefined1 **)(param_3 + 0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x20)" (( "(") (binary_expression "param_3 + 0x20" (identifier "param_3") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "param_3 + 0x28" (identifier "param_3") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "uVar1 = param_3[0x38];" (assignment_expression "uVar1 = param_3[0x38]" (identifier "uVar1") (= "=") (subscript_expression "param_3[0x38]" (identifier "param_3") ([ "[") (number_literal "0x38") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(param_3 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(param_3 + 0x24) = 0" (pointer_expression "*(undefined4 *)(param_3 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x24)" (( "(") (binary_expression "param_3 + 0x24" (identifier "param_3") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x24) = uVar4;" (assignment_expression "*(undefined4 *)(puVar7 + 0x24) = uVar4" (pointer_expression "*(undefined4 *)(puVar7 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x24)" (( "(") (binary_expression "puVar7 + 0x24" (identifier "puVar7") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar7[0x38] = uVar1;" (assignment_expression "puVar7[0x38] = uVar1" (subscript_expression "puVar7[0x38]" (identifier "puVar7") ([ "[") (number_literal "0x38") (] "]")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "param_3[0x28] = 0;" (assignment_expression "param_3[0x28] = 0" (subscript_expression "param_3[0x28]" (identifier "param_3") ([ "[") (number_literal "0x28") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x3c) = *(undefined4 *)(param_3 + 0x3c);" (assignment_expression "*(undefined4 *)(puVar7 + 0x3c) = *(undefined4 *)(param_3 + 0x3c)" (pointer_expression "*(undefined4 *)(puVar7 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x3c)" (( "(") (binary_expression "puVar7 + 0x3c" (identifier "puVar7") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x3c)" (( "(") (binary_expression "param_3 + 0x3c" (identifier "param_3") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x40) = *(undefined4 *)(param_3 + 0x40);" (assignment_expression "*(undefined4 *)(puVar7 + 0x40) = *(undefined4 *)(param_3 + 0x40)" (pointer_expression "*(undefined4 *)(puVar7 + 0x40)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x40)" (( "(") (binary_expression "puVar7 + 0x40" (identifier "puVar7") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x40)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x40)" (( "(") (binary_expression "param_3 + 0x40" (identifier "param_3") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x44) = *(undefined4 *)(param_3 + 0x44);" (assignment_expression "*(undefined4 *)(puVar7 + 0x44) = *(undefined4 *)(param_3 + 0x44)" (pointer_expression "*(undefined4 *)(puVar7 + 0x44)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x44)" (( "(") (binary_expression "puVar7 + 0x44" (identifier "puVar7") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x44)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x44)" (( "(") (binary_expression "param_3 + 0x44" (identifier "param_3") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x48) = *(undefined4 *)(param_3 + 0x48);" (assignment_expression "*(undefined4 *)(puVar7 + 0x48) = *(undefined4 *)(param_3 + 0x48)" (pointer_expression "*(undefined4 *)(puVar7 + 0x48)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x48)" (( "(") (binary_expression "puVar7 + 0x48" (identifier "puVar7") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x48)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x48)" (( "(") (binary_expression "param_3 + 0x48" (identifier "param_3") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x4c) = *(undefined4 *)(param_3 + 0x4c);" (assignment_expression "*(undefined4 *)(puVar7 + 0x4c) = *(undefined4 *)(param_3 + 0x4c)" (pointer_expression "*(undefined4 *)(puVar7 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x4c)" (( "(") (binary_expression "puVar7 + 0x4c" (identifier "puVar7") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x4c)" (( "(") (binary_expression "param_3 + 0x4c" (identifier "param_3") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x50) = *(undefined4 *)(param_3 + 0x50);" (assignment_expression "*(undefined4 *)(puVar7 + 0x50) = *(undefined4 *)(param_3 + 0x50)" (pointer_expression "*(undefined4 *)(puVar7 + 0x50)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x50)" (( "(") (binary_expression "puVar7 + 0x50" (identifier "puVar7") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x50)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x50)" (( "(") (binary_expression "param_3 + 0x50" (identifier "param_3") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x54) = *(undefined4 *)(param_3 + 0x54);" (assignment_expression "*(undefined4 *)(puVar7 + 0x54) = *(undefined4 *)(param_3 + 0x54)" (pointer_expression "*(undefined4 *)(puVar7 + 0x54)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x54)" (( "(") (binary_expression "puVar7 + 0x54" (identifier "puVar7") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x54)" (( "(") (binary_expression "param_3 + 0x54" (identifier "param_3") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x58) = *(undefined4 *)(param_3 + 0x58);" (assignment_expression "*(undefined4 *)(puVar7 + 0x58) = *(undefined4 *)(param_3 + 0x58)" (pointer_expression "*(undefined4 *)(puVar7 + 0x58)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x58)" (( "(") (binary_expression "puVar7 + 0x58" (identifier "puVar7") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0x58)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x58)" (( "(") (binary_expression "param_3 + 0x58" (identifier "param_3") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (if_statement "if (param_2 != iVar2) {\n    uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(iVar2 + 0xc);\n    puVar11 = local_34;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_34 + (uVar10 + 2) * 0x5c;\n  }" (if "if") (parenthesized_expression "(param_2 != iVar2)" (( "(") (binary_expression "param_2 != iVar2" (identifier "param_2") (!= "!=") (identifier "iVar2")) () ")")) (compound_statement "{\n    uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(iVar2 + 0xc);\n    puVar11 = local_34;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_34 + (uVar10 + 2) * 0x5c;\n  }" ({ "{") (expression_statement "uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;" (assignment_expression "uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff" (identifier "uVar10") (= "=") (binary_expression "((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff" (binary_expression "((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7" (parenthesized_expression "((uint)((param_2 + -0x5c) - iVar2) >> 2)" (( "(") (binary_expression "(uint)((param_2 + -0x5c) - iVar2) >> 2" (call_expression "(uint)((param_2 + -0x5c) - iVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_2 + -0x5c) - iVar2)" (( "(") (binary_expression "(param_2 + -0x5c) - iVar2" (parenthesized_expression "(param_2 + -0x5c)" (( "(") (binary_expression "param_2 + -0x5c" (identifier "param_2") (+ "+") (number_literal "-0x5c")) () ")")) (- "-") (identifier "iVar2")) () ")"))) (>> ">>") (number_literal "2")) () ")")) (* "*") (number_literal "0x29bd37a7")) (& "&") (number_literal "0x3fffffff"))) (; ";")) (expression_statement "puVar9 = (undefined4 *)(iVar2 + 0xc);" (assignment_expression "puVar9 = (undefined4 *)(iVar2 + 0xc)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(iVar2 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "puVar11 = local_34;" (assignment_expression "puVar11 = local_34" (identifier "puVar11") (= "=") (identifier "local_34")) (; ";")) (do_statement "do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));" (do "do") (compound_statement "{\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      *(undefined4 *)(puVar11 + 8) = puVar9[-1];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar8 = puVar9 + 0x17;\n      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];\n      puVar9[5] = puVar9 + 7;\n      puVar9[6] = 0;\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    }" ({ "{") (expression_statement "uVar1 = *(undefined1 *)(puVar9 + -3);" (assignment_expression "uVar1 = *(undefined1 *)(puVar9 + -3)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)(puVar9 + -3)" (* "*") (cast_expression "(undefined1 *)(puVar9 + -3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -3)" (( "(") (binary_expression "puVar9 + -3" (identifier "puVar9") (+ "+") (number_literal "-3")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;" (assignment_expression "*(undefined1 **)(puVar11 + 4) = puVar11 + 0xc" (pointer_expression "*(undefined1 **)(puVar11 + 4)" (* "*") (cast_expression "(undefined1 **)(puVar11 + 4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 4)" (( "(") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar11 + 0xc" (identifier "puVar11") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "*puVar11 = uVar1;" (assignment_expression "*puVar11 = uVar1" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (identifier "uVar1")) (; ";")) (if_statement "if ((undefined4 *)puVar9[-2] == puVar9) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" (if "if") (parenthesized_expression "((undefined4 *)puVar9[-2] == puVar9)" (( "(") (binary_expression "(undefined4 *)puVar9[-2] == puVar9" (cast_expression "(undefined4 *)puVar9[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[-2]" (identifier "puVar9") ([ "[") (number_literal "-2") (] "]"))) (== "==") (identifier "puVar9")) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar11 + 0xc) = *puVar9;" (assignment_expression "*(undefined4 *)(puVar11 + 0xc) = *puVar9" (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0xc)" (( "(") (binary_expression "puVar11 + 0xc" (identifier "puVar11") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x10) = puVar9[1];" (assignment_expression "*(undefined4 *)(puVar11 + 0x10) = puVar9[1]" (pointer_expression "*(undefined4 *)(puVar11 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x10)" (( "(") (binary_expression "puVar11 + 0x10" (identifier "puVar11") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x14) = puVar9[2];" (assignment_expression "*(undefined4 *)(puVar11 + 0x14) = puVar9[2]" (pointer_expression "*(undefined4 *)(puVar11 + 0x14)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x18) = puVar9[3];" (assignment_expression "*(undefined4 *)(puVar11 + 0x18) = puVar9[3]" (pointer_expression "*(undefined4 *)(puVar11 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x18)" (( "(") (binary_expression "puVar11 + 0x18" (identifier "puVar11") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" (else "else") (compound_statement "{\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" ({ "{") (expression_statement "*(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];" (assignment_expression "*(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2]" (pointer_expression "*(undefined4 **)(puVar11 + 4)" (* "*") (cast_expression "(undefined4 **)(puVar11 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 4)" (( "(") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4")) () ")")))) (= "=") (cast_expression "(undefined4 *)puVar9[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[-2]" (identifier "puVar9") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0xc) = *puVar9;" (assignment_expression "*(undefined4 *)(puVar11 + 0xc) = *puVar9" (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0xc)" (( "(") (binary_expression "puVar11 + 0xc" (identifier "puVar11") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (} "}")))) (expression_statement "*(undefined4 *)(puVar11 + 8) = puVar9[-1];" (assignment_expression "*(undefined4 *)(puVar11 + 8) = puVar9[-1]" (pointer_expression "*(undefined4 *)(puVar11 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 8)" (( "(") (binary_expression "puVar11 + 8" (identifier "puVar11") (+ "+") (number_literal "8")) () ")")))) (= "=") (subscript_expression "puVar9[-1]" (identifier "puVar9") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar9[-2] = puVar9;" (assignment_expression "puVar9[-2] = puVar9" (subscript_expression "puVar9[-2]" (identifier "puVar9") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "puVar9[-1] = 0;" (assignment_expression "puVar9[-1] = 0" (subscript_expression "puVar9[-1]" (identifier "puVar9") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar9 = 0;" (assignment_expression "*(undefined1 *)puVar9 = 0" (pointer_expression "*(undefined1 *)puVar9" (* "*") (cast_expression "(undefined1 *)puVar9" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x1c) = puVar9[4];" (assignment_expression "*(undefined4 *)(puVar11 + 0x1c) = puVar9[4]" (pointer_expression "*(undefined4 *)(puVar11 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x1c)" (( "(") (binary_expression "puVar11 + 0x1c" (identifier "puVar11") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (subscript_expression "puVar9[4]" (identifier "puVar9") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;" (assignment_expression "*(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28" (pointer_expression "*(undefined1 **)(puVar11 + 0x20)" (* "*") (cast_expression "(undefined1 **)(puVar11 + 0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x20)" (( "(") (binary_expression "puVar11 + 0x20" (identifier "puVar11") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "puVar11 + 0x28" (identifier "puVar11") (+ "+") (number_literal "0x28"))) (; ";")) (if_statement "if ((undefined4 *)puVar9[5] == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" (if "if") (parenthesized_expression "((undefined4 *)puVar9[5] == puVar9 + 7)" (( "(") (binary_expression "(undefined4 *)puVar9[5] == puVar9 + 7" (cast_expression "(undefined4 *)puVar9[5]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]"))) (== "==") (binary_expression "puVar9 + 7" (identifier "puVar9") (+ "+") (number_literal "7"))) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar11 + 0x28) = puVar9[7];" (assignment_expression "*(undefined4 *)(puVar11 + 0x28) = puVar9[7]" (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x28)" (( "(") (binary_expression "puVar11 + 0x28" (identifier "puVar11") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x2c) = puVar9[8];" (assignment_expression "*(undefined4 *)(puVar11 + 0x2c) = puVar9[8]" (pointer_expression "*(undefined4 *)(puVar11 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x2c)" (( "(") (binary_expression "puVar11 + 0x2c" (identifier "puVar11") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (subscript_expression "puVar9[8]" (identifier "puVar9") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x30) = puVar9[9];" (assignment_expression "*(undefined4 *)(puVar11 + 0x30) = puVar9[9]" (pointer_expression "*(undefined4 *)(puVar11 + 0x30)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x30)" (( "(") (binary_expression "puVar11 + 0x30" (identifier "puVar11") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (subscript_expression "puVar9[9]" (identifier "puVar9") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x34) = puVar9[10];" (assignment_expression "*(undefined4 *)(puVar11 + 0x34) = puVar9[10]" (pointer_expression "*(undefined4 *)(puVar11 + 0x34)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x34)" (( "(") (binary_expression "puVar11 + 0x34" (identifier "puVar11") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (subscript_expression "puVar9[10]" (identifier "puVar9") ([ "[") (number_literal "10") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" (else "else") (compound_statement "{\n        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" ({ "{") (expression_statement "*(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];" (assignment_expression "*(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5]" (pointer_expression "*(undefined4 **)(puVar11 + 0x20)" (* "*") (cast_expression "(undefined4 **)(puVar11 + 0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x20)" (( "(") (binary_expression "puVar11 + 0x20" (identifier "puVar11") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (cast_expression "(undefined4 *)puVar9[5]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x28) = puVar9[7];" (assignment_expression "*(undefined4 *)(puVar11 + 0x28) = puVar9[7]" (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x28)" (( "(") (binary_expression "puVar11 + 0x28" (identifier "puVar11") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}")))) (expression_statement "puVar8 = puVar9 + 0x17;" (assignment_expression "puVar8 = puVar9 + 0x17" (identifier "puVar8") (= "=") (binary_expression "puVar9 + 0x17" (identifier "puVar9") (+ "+") (number_literal "0x17"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x24) = puVar9[6];" (assignment_expression "*(undefined4 *)(puVar11 + 0x24) = puVar9[6]" (pointer_expression "*(undefined4 *)(puVar11 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x24)" (( "(") (binary_expression "puVar11 + 0x24" (identifier "puVar11") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar9[5] = puVar9 + 7;" (assignment_expression "puVar9[5] = puVar9 + 7" (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "puVar9 + 7" (identifier "puVar9") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "puVar9[6] = 0;" (assignment_expression "puVar9[6] = 0" (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar9 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar9 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar9 + 7)" (* "*") (cast_expression "(undefined1 *)(puVar9 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 7)" (( "(") (binary_expression "puVar9 + 7" (identifier "puVar9") (+ "+") (number_literal "7")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);" (assignment_expression "puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb)" (subscript_expression "puVar11[0x38]" (identifier "puVar11") ([ "[") (number_literal "0x38") (] "]")) (= "=") (pointer_expression "*(undefined1 *)(puVar9 + 0xb)" (* "*") (cast_expression "(undefined1 *)(puVar9 + 0xb)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0xb)" (( "(") (binary_expression "puVar9 + 0xb" (identifier "puVar9") (+ "+") (number_literal "0xb")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];" (assignment_expression "*(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc]" (pointer_expression "*(undefined4 *)(puVar11 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x3c)" (( "(") (binary_expression "puVar11 + 0x3c" (identifier "puVar11") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (subscript_expression "puVar9[0xc]" (identifier "puVar9") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];" (assignment_expression "*(undefined4 *)(puVar11 + 0x40) = puVar9[0xd]" (pointer_expression "*(undefined4 *)(puVar11 + 0x40)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x40)" (( "(") (binary_expression "puVar11 + 0x40" (identifier "puVar11") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (subscript_expression "puVar9[0xd]" (identifier "puVar9") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];" (assignment_expression "*(undefined4 *)(puVar11 + 0x44) = puVar9[0xe]" (pointer_expression "*(undefined4 *)(puVar11 + 0x44)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x44)" (( "(") (binary_expression "puVar11 + 0x44" (identifier "puVar11") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (subscript_expression "puVar9[0xe]" (identifier "puVar9") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];" (assignment_expression "*(undefined4 *)(puVar11 + 0x48) = puVar9[0xf]" (pointer_expression "*(undefined4 *)(puVar11 + 0x48)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x48)" (( "(") (binary_expression "puVar11 + 0x48" (identifier "puVar11") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (subscript_expression "puVar9[0xf]" (identifier "puVar9") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];" (assignment_expression "*(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10]" (pointer_expression "*(undefined4 *)(puVar11 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x4c)" (( "(") (binary_expression "puVar11 + 0x4c" (identifier "puVar11") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (subscript_expression "puVar9[0x10]" (identifier "puVar9") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];" (assignment_expression "*(undefined4 *)(puVar11 + 0x50) = puVar9[0x11]" (pointer_expression "*(undefined4 *)(puVar11 + 0x50)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x50)" (( "(") (binary_expression "puVar11 + 0x50" (identifier "puVar11") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (subscript_expression "puVar9[0x11]" (identifier "puVar9") ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];" (assignment_expression "*(undefined4 *)(puVar11 + 0x54) = puVar9[0x12]" (pointer_expression "*(undefined4 *)(puVar11 + 0x54)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x54)" (( "(") (binary_expression "puVar11 + 0x54" (identifier "puVar11") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (subscript_expression "puVar9[0x12]" (identifier "puVar9") ([ "[") (number_literal "0x12") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];" (assignment_expression "*(undefined4 *)(puVar11 + 0x58) = puVar9[0x13]" (pointer_expression "*(undefined4 *)(puVar11 + 0x58)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x58)" (( "(") (binary_expression "puVar11 + 0x58" (identifier "puVar11") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (subscript_expression "puVar9[0x13]" (identifier "puVar9") ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" (identifier "puVar9") (= "=") (identifier "puVar8")) (; ";")) (expression_statement "puVar11 = puVar11 + 0x5c;" (assignment_expression "puVar11 = puVar11 + 0x5c" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 0x5c" (identifier "puVar11") (+ "+") (number_literal "0x5c"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c))" (( "(") (binary_expression "puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c)" (identifier "puVar8") (!= "!=") (cast_expression "(undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x68 + uVar10 * 0x5c)" (( "(") (binary_expression "iVar2 + 0x68 + uVar10 * 0x5c" (binary_expression "iVar2 + 0x68" (identifier "iVar2") (+ "+") (number_literal "0x68")) (+ "+") (binary_expression "uVar10 * 0x5c" (identifier "uVar10") (* "*") (number_literal "0x5c"))) () ")")))) () ")")) (; ";")) (expression_statement "local_2c = local_34 + (uVar10 + 2) * 0x5c;" (assignment_expression "local_2c = local_34 + (uVar10 + 2) * 0x5c" (identifier "local_2c") (= "=") (binary_expression "local_34 + (uVar10 + 2) * 0x5c" (identifier "local_34") (+ "+") (binary_expression "(uVar10 + 2) * 0x5c" (parenthesized_expression "(uVar10 + 2)" (( "(") (binary_expression "uVar10 + 2" (identifier "uVar10") (+ "+") (number_literal "2")) () ")")) (* "*") (number_literal "0x5c")))) (; ";")) (} "}"))) (expression_statement "iVar6 = iVar2;" (assignment_expression "iVar6 = iVar2" (identifier "iVar6") (= "=") (identifier "iVar2")) (; ";")) (if_statement "if (param_2 != iVar3) {\n    uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(param_2 + 0xc);\n    puVar11 = local_2c;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_2c + (uVar10 + 1) * 0x5c;\n  }" (if "if") (parenthesized_expression "(param_2 != iVar3)" (( "(") (binary_expression "param_2 != iVar3" (identifier "param_2") (!= "!=") (identifier "iVar3")) () ")")) (compound_statement "{\n    uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;\n    puVar9 = (undefined4 *)(param_2 + 0xc);\n    puVar11 = local_2c;\n    do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));\n    local_2c = local_2c + (uVar10 + 1) * 0x5c;\n  }" ({ "{") (expression_statement "uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;" (assignment_expression "uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff" (identifier "uVar10") (= "=") (binary_expression "((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff" (binary_expression "((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7" (parenthesized_expression "((iVar3 - param_2) - 0x5cU >> 2)" (( "(") (binary_expression "(iVar3 - param_2) - 0x5cU >> 2" (binary_expression "(iVar3 - param_2) - 0x5cU" (parenthesized_expression "(iVar3 - param_2)" (( "(") (binary_expression "iVar3 - param_2" (identifier "iVar3") (- "-") (identifier "param_2")) () ")")) (- "-") (number_literal "0x5cU")) (>> ">>") (number_literal "2")) () ")")) (* "*") (number_literal "0x29bd37a7")) (& "&") (number_literal "0x3fffffff"))) (; ";")) (expression_statement "puVar9 = (undefined4 *)(param_2 + 0xc);" (assignment_expression "puVar9 = (undefined4 *)(param_2 + 0xc)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(param_2 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "puVar11 = local_2c;" (assignment_expression "puVar11 = local_2c" (identifier "puVar11") (= "=") (identifier "local_2c")) (; ";")) (do_statement "do {\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));" (do "do") (compound_statement "{\n      uVar1 = *(undefined1 *)(puVar9 + -3);\n      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;\n      *puVar11 = uVar1;\n      if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }\n      uVar4 = puVar9[-1];\n      puVar8 = (undefined4 *)puVar9[5];\n      puVar9[-2] = puVar9;\n      puVar9[-1] = 0;\n      *(undefined4 *)(puVar11 + 8) = uVar4;\n      *(undefined1 *)puVar9 = 0;\n      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];\n      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;\n      if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }\n      puVar9[5] = puVar9 + 7;\n      puVar8 = puVar9 + 0x17;\n      uVar4 = puVar9[6];\n      *(undefined1 *)(puVar9 + 7) = 0;\n      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);\n      puVar9[6] = 0;\n      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];\n      uVar5 = puVar9[0xd];\n      *(undefined4 *)(puVar11 + 0x24) = uVar4;\n      *(undefined4 *)(puVar11 + 0x40) = uVar5;\n      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];\n      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];\n      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];\n      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];\n      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];\n      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];\n      puVar9 = puVar8;\n      puVar11 = puVar11 + 0x5c;\n    }" ({ "{") (expression_statement "uVar1 = *(undefined1 *)(puVar9 + -3);" (assignment_expression "uVar1 = *(undefined1 *)(puVar9 + -3)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)(puVar9 + -3)" (* "*") (cast_expression "(undefined1 *)(puVar9 + -3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -3)" (( "(") (binary_expression "puVar9 + -3" (identifier "puVar9") (+ "+") (number_literal "-3")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;" (assignment_expression "*(undefined1 **)(puVar11 + 4) = puVar11 + 0xc" (pointer_expression "*(undefined1 **)(puVar11 + 4)" (* "*") (cast_expression "(undefined1 **)(puVar11 + 4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 4)" (( "(") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar11 + 0xc" (identifier "puVar11") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "*puVar11 = uVar1;" (assignment_expression "*puVar11 = uVar1" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (identifier "uVar1")) (; ";")) (if_statement "if (puVar9 == (undefined4 *)puVar9[-2]) {\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" (if "if") (parenthesized_expression "(puVar9 == (undefined4 *)puVar9[-2])" (( "(") (binary_expression "puVar9 == (undefined4 *)puVar9[-2]" (identifier "puVar9") (== "==") (cast_expression "(undefined4 *)puVar9[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[-2]" (identifier "puVar9") ([ "[") (number_literal "-2") (] "]")))) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];\n        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];\n        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar11 + 0xc) = *puVar9;" (assignment_expression "*(undefined4 *)(puVar11 + 0xc) = *puVar9" (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0xc)" (( "(") (binary_expression "puVar11 + 0xc" (identifier "puVar11") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x10) = puVar9[1];" (assignment_expression "*(undefined4 *)(puVar11 + 0x10) = puVar9[1]" (pointer_expression "*(undefined4 *)(puVar11 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x10)" (( "(") (binary_expression "puVar11 + 0x10" (identifier "puVar11") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x14) = puVar9[2];" (assignment_expression "*(undefined4 *)(puVar11 + 0x14) = puVar9[2]" (pointer_expression "*(undefined4 *)(puVar11 + 0x14)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x18) = puVar9[3];" (assignment_expression "*(undefined4 *)(puVar11 + 0x18) = puVar9[3]" (pointer_expression "*(undefined4 *)(puVar11 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x18)" (( "(") (binary_expression "puVar11 + 0x18" (identifier "puVar11") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" (else "else") (compound_statement "{\n        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];\n        *(undefined4 *)(puVar11 + 0xc) = *puVar9;\n      }" ({ "{") (expression_statement "*(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];" (assignment_expression "*(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2]" (pointer_expression "*(undefined4 **)(puVar11 + 4)" (* "*") (cast_expression "(undefined4 **)(puVar11 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 4)" (( "(") (binary_expression "puVar11 + 4" (identifier "puVar11") (+ "+") (number_literal "4")) () ")")))) (= "=") (cast_expression "(undefined4 *)puVar9[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[-2]" (identifier "puVar9") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0xc) = *puVar9;" (assignment_expression "*(undefined4 *)(puVar11 + 0xc) = *puVar9" (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0xc)" (( "(") (binary_expression "puVar11 + 0xc" (identifier "puVar11") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (} "}")))) (expression_statement "uVar4 = puVar9[-1];" (assignment_expression "uVar4 = puVar9[-1]" (identifier "uVar4") (= "=") (subscript_expression "puVar9[-1]" (identifier "puVar9") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar8 = (undefined4 *)puVar9[5];" (assignment_expression "puVar8 = (undefined4 *)puVar9[5]" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)puVar9[5]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "puVar9[-2] = puVar9;" (assignment_expression "puVar9[-2] = puVar9" (subscript_expression "puVar9[-2]" (identifier "puVar9") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "puVar9[-1] = 0;" (assignment_expression "puVar9[-1] = 0" (subscript_expression "puVar9[-1]" (identifier "puVar9") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(puVar11 + 8) = uVar4" (pointer_expression "*(undefined4 *)(puVar11 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 8)" (( "(") (binary_expression "puVar11 + 8" (identifier "puVar11") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(undefined1 *)puVar9 = 0;" (assignment_expression "*(undefined1 *)puVar9 = 0" (pointer_expression "*(undefined1 *)puVar9" (* "*") (cast_expression "(undefined1 *)puVar9" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x1c) = puVar9[4];" (assignment_expression "*(undefined4 *)(puVar11 + 0x1c) = puVar9[4]" (pointer_expression "*(undefined4 *)(puVar11 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x1c)" (( "(") (binary_expression "puVar11 + 0x1c" (identifier "puVar11") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (subscript_expression "puVar9[4]" (identifier "puVar9") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;" (assignment_expression "*(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28" (pointer_expression "*(undefined1 **)(puVar11 + 0x20)" (* "*") (cast_expression "(undefined1 **)(puVar11 + 0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x20)" (( "(") (binary_expression "puVar11 + 0x20" (identifier "puVar11") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "puVar11 + 0x28" (identifier "puVar11") (+ "+") (number_literal "0x28"))) (; ";")) (if_statement "if (puVar8 == puVar9 + 7) {\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }\n      else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" (if "if") (parenthesized_expression "(puVar8 == puVar9 + 7)" (( "(") (binary_expression "puVar8 == puVar9 + 7" (identifier "puVar8") (== "==") (binary_expression "puVar9 + 7" (identifier "puVar9") (+ "+") (number_literal "7"))) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];\n        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];\n        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar11 + 0x28) = puVar9[7];" (assignment_expression "*(undefined4 *)(puVar11 + 0x28) = puVar9[7]" (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x28)" (( "(") (binary_expression "puVar11 + 0x28" (identifier "puVar11") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x2c) = puVar9[8];" (assignment_expression "*(undefined4 *)(puVar11 + 0x2c) = puVar9[8]" (pointer_expression "*(undefined4 *)(puVar11 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x2c)" (( "(") (binary_expression "puVar11 + 0x2c" (identifier "puVar11") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (subscript_expression "puVar9[8]" (identifier "puVar9") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x30) = puVar9[9];" (assignment_expression "*(undefined4 *)(puVar11 + 0x30) = puVar9[9]" (pointer_expression "*(undefined4 *)(puVar11 + 0x30)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x30)" (( "(") (binary_expression "puVar11 + 0x30" (identifier "puVar11") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (subscript_expression "puVar9[9]" (identifier "puVar9") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x34) = puVar9[10];" (assignment_expression "*(undefined4 *)(puVar11 + 0x34) = puVar9[10]" (pointer_expression "*(undefined4 *)(puVar11 + 0x34)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x34)" (( "(") (binary_expression "puVar11 + 0x34" (identifier "puVar11") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (subscript_expression "puVar9[10]" (identifier "puVar9") ([ "[") (number_literal "10") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" (else "else") (compound_statement "{\n        *(undefined4 **)(puVar11 + 0x20) = puVar8;\n        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];\n      }" ({ "{") (expression_statement "*(undefined4 **)(puVar11 + 0x20) = puVar8;" (assignment_expression "*(undefined4 **)(puVar11 + 0x20) = puVar8" (pointer_expression "*(undefined4 **)(puVar11 + 0x20)" (* "*") (cast_expression "(undefined4 **)(puVar11 + 0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x20)" (( "(") (binary_expression "puVar11 + 0x20" (identifier "puVar11") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x28) = puVar9[7];" (assignment_expression "*(undefined4 *)(puVar11 + 0x28) = puVar9[7]" (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x28)" (( "(") (binary_expression "puVar11 + 0x28" (identifier "puVar11") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}")))) (expression_statement "puVar9[5] = puVar9 + 7;" (assignment_expression "puVar9[5] = puVar9 + 7" (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "puVar9 + 7" (identifier "puVar9") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "puVar8 = puVar9 + 0x17;" (assignment_expression "puVar8 = puVar9 + 0x17" (identifier "puVar8") (= "=") (binary_expression "puVar9 + 0x17" (identifier "puVar9") (+ "+") (number_literal "0x17"))) (; ";")) (expression_statement "uVar4 = puVar9[6];" (assignment_expression "uVar4 = puVar9[6]" (identifier "uVar4") (= "=") (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(puVar9 + 7) = 0;" (assignment_expression "*(undefined1 *)(puVar9 + 7) = 0" (pointer_expression "*(undefined1 *)(puVar9 + 7)" (* "*") (cast_expression "(undefined1 *)(puVar9 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 7)" (( "(") (binary_expression "puVar9 + 7" (identifier "puVar9") (+ "+") (number_literal "7")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);" (assignment_expression "puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb)" (subscript_expression "puVar11[0x38]" (identifier "puVar11") ([ "[") (number_literal "0x38") (] "]")) (= "=") (pointer_expression "*(undefined1 *)(puVar9 + 0xb)" (* "*") (cast_expression "(undefined1 *)(puVar9 + 0xb)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0xb)" (( "(") (binary_expression "puVar9 + 0xb" (identifier "puVar9") (+ "+") (number_literal "0xb")) () ")"))))) (; ";")) (expression_statement "puVar9[6] = 0;" (assignment_expression "puVar9[6] = 0" (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];" (assignment_expression "*(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc]" (pointer_expression "*(undefined4 *)(puVar11 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x3c)" (( "(") (binary_expression "puVar11 + 0x3c" (identifier "puVar11") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (subscript_expression "puVar9[0xc]" (identifier "puVar9") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "uVar5 = puVar9[0xd];" (assignment_expression "uVar5 = puVar9[0xd]" (identifier "uVar5") (= "=") (subscript_expression "puVar9[0xd]" (identifier "puVar9") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x24) = uVar4;" (assignment_expression "*(undefined4 *)(puVar11 + 0x24) = uVar4" (pointer_expression "*(undefined4 *)(puVar11 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x24)" (( "(") (binary_expression "puVar11 + 0x24" (identifier "puVar11") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x40) = uVar5;" (assignment_expression "*(undefined4 *)(puVar11 + 0x40) = uVar5" (pointer_expression "*(undefined4 *)(puVar11 + 0x40)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x40)" (( "(") (binary_expression "puVar11 + 0x40" (identifier "puVar11") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];" (assignment_expression "*(undefined4 *)(puVar11 + 0x44) = puVar9[0xe]" (pointer_expression "*(undefined4 *)(puVar11 + 0x44)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x44)" (( "(") (binary_expression "puVar11 + 0x44" (identifier "puVar11") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (subscript_expression "puVar9[0xe]" (identifier "puVar9") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];" (assignment_expression "*(undefined4 *)(puVar11 + 0x48) = puVar9[0xf]" (pointer_expression "*(undefined4 *)(puVar11 + 0x48)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x48)" (( "(") (binary_expression "puVar11 + 0x48" (identifier "puVar11") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (subscript_expression "puVar9[0xf]" (identifier "puVar9") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];" (assignment_expression "*(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10]" (pointer_expression "*(undefined4 *)(puVar11 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x4c)" (( "(") (binary_expression "puVar11 + 0x4c" (identifier "puVar11") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (subscript_expression "puVar9[0x10]" (identifier "puVar9") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];" (assignment_expression "*(undefined4 *)(puVar11 + 0x50) = puVar9[0x11]" (pointer_expression "*(undefined4 *)(puVar11 + 0x50)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x50)" (( "(") (binary_expression "puVar11 + 0x50" (identifier "puVar11") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (subscript_expression "puVar9[0x11]" (identifier "puVar9") ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];" (assignment_expression "*(undefined4 *)(puVar11 + 0x54) = puVar9[0x12]" (pointer_expression "*(undefined4 *)(puVar11 + 0x54)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x54)" (( "(") (binary_expression "puVar11 + 0x54" (identifier "puVar11") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (subscript_expression "puVar9[0x12]" (identifier "puVar9") ([ "[") (number_literal "0x12") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];" (assignment_expression "*(undefined4 *)(puVar11 + 0x58) = puVar9[0x13]" (pointer_expression "*(undefined4 *)(puVar11 + 0x58)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x58)" (( "(") (binary_expression "puVar11 + 0x58" (identifier "puVar11") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (subscript_expression "puVar9[0x13]" (identifier "puVar9") ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" (identifier "puVar9") (= "=") (identifier "puVar8")) (; ";")) (expression_statement "puVar11 = puVar11 + 0x5c;" (assignment_expression "puVar11 = puVar11 + 0x5c" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 0x5c" (identifier "puVar11") (+ "+") (number_literal "0x5c"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c))" (( "(") (binary_expression "puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c)" (identifier "puVar8") (!= "!=") (cast_expression "(undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x68 + uVar10 * 0x5c)" (( "(") (binary_expression "param_2 + 0x68 + uVar10 * 0x5c" (binary_expression "param_2 + 0x68" (identifier "param_2") (+ "+") (number_literal "0x68")) (+ "+") (binary_expression "uVar10 * 0x5c" (identifier "uVar10") (* "*") (number_literal "0x5c"))) () ")")))) () ")")) (; ";")) (expression_statement "local_2c = local_2c + (uVar10 + 1) * 0x5c;" (assignment_expression "local_2c = local_2c + (uVar10 + 1) * 0x5c" (identifier "local_2c") (= "=") (binary_expression "local_2c + (uVar10 + 1) * 0x5c" (identifier "local_2c") (+ "+") (binary_expression "(uVar10 + 1) * 0x5c" (parenthesized_expression "(uVar10 + 1)" (( "(") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "0x5c")))) (; ";")) (} "}"))) (for_statement "for (; iVar6 != iVar3; iVar6 = iVar6 + 0x5c) {\n    if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }\n    if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }\n  }" (for "for") (( "(") (; ";") (binary_expression "iVar6 != iVar3" (identifier "iVar6") (!= "!=") (identifier "iVar3")) (; ";") (assignment_expression "iVar6 = iVar6 + 0x5c" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 0x5c" (identifier "iVar6") (+ "+") (number_literal "0x5c"))) () ")") (compound_statement "{\n    if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }\n    if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }\n  }" ({ "{") (if_statement "if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 0x20) != iVar6 + 0x28)" (( "(") (binary_expression "*(int *)(iVar6 + 0x20) != iVar6 + 0x28" (pointer_expression "*(int *)(iVar6 + 0x20)" (* "*") (cast_expression "(int *)(iVar6 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x20)" (( "(") (binary_expression "iVar6 + 0x20" (identifier "iVar6") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (binary_expression "iVar6 + 0x28" (identifier "iVar6") (+ "+") (number_literal "0x28"))) () ")")) (compound_statement "{\n      FUN_001fd020(*(int *)(iVar6 + 0x20));\n    }" ({ "{") (expression_statement "FUN_001fd020(*(int *)(iVar6 + 0x20));" (call_expression "FUN_001fd020(*(int *)(iVar6 + 0x20))" (identifier "FUN_001fd020") (argument_list "(*(int *)(iVar6 + 0x20))" (( "(") (pointer_expression "*(int *)(iVar6 + 0x20)" (* "*") (cast_expression "(int *)(iVar6 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x20)" (( "(") (binary_expression "iVar6 + 0x20" (identifier "iVar6") (+ "+") (number_literal "0x20")) () ")")))) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 4) != iVar6 + 0xc)" (( "(") (binary_expression "*(int *)(iVar6 + 4) != iVar6 + 0xc" (pointer_expression "*(int *)(iVar6 + 4)" (* "*") (cast_expression "(int *)(iVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (binary_expression "iVar6 + 0xc" (identifier "iVar6") (+ "+") (number_literal "0xc"))) () ")")) (compound_statement "{\n      FUN_001fd020(*(int *)(iVar6 + 4));\n    }" ({ "{") (expression_statement "FUN_001fd020(*(int *)(iVar6 + 4));" (call_expression "FUN_001fd020(*(int *)(iVar6 + 4))" (identifier "FUN_001fd020") (argument_list "(*(int *)(iVar6 + 4))" (( "(") (pointer_expression "*(int *)(iVar6 + 4)" (* "*") (cast_expression "(int *)(iVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (iVar2 != 0) {\n    FUN_001fd020(iVar2);\n  }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001fd020(iVar2);\n  }" ({ "{") (expression_statement "FUN_001fd020(iVar2);" (call_expression "FUN_001fd020(iVar2)" (identifier "FUN_001fd020") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "*param_1 = (int)local_34;" (assignment_expression "*param_1 = (int)local_34" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34"))) (; ";")) (expression_statement "param_1[1] = (int)local_2c;" (assignment_expression "param_1[1] = (int)local_2c" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)local_2c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_2c"))) (; ";")) (expression_statement "param_1[2] = (int)local_24;" (assignment_expression "param_1[2] = (int)local_24" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)local_24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_24"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */
/* DWARF original prototype: void
   _M_realloc_insert<gold::Input_argument>(vector<gold::Input_argument,_std::allocator<gold::Input_argument>_>
   * this, iterator __position, Input_argument * __args#0) */

void __thiscall
std::vector<gold::var_7,_std::var_1<gold::var_7>var_3>::
_M_realloc_insert<gold::var_7>
          (vector<gold::var_7,_std::var_1<gold::var_7>var_3> *this,
          iterator __position,var_7 *__args_0)

{
  bool bVar1;
  type_1 var_16;
  type_1 var_18;
  type_1 var_15;
  type_2 sVar5;
  type_3 IVar6;
  type_4 uVar7;
  type_2 var_20;
  type_5 OVar9;
  type_2 *var_19;
  int var_9;
  type_6 *var_14;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_5;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_6;
  type_7 var_10;
  type_1 var_17;
  type_1 var_21;
  type_7 var_12;
  type_1 var_13;
  type_1 var_22;
  type_1 local_24;
  
  var_16 = (this->super__Vector_base<gold::var_7,_std::var_1<gold::var_7>var_3>var_8).
           _M_impl._M_start;
  var_18 = (this->super__Vector_base<gold::var_7,_std::var_1<gold::var_7>var_3>var_8).
           _M_impl._M_finish;
  var_9 = (int)var_18 - (int)var_16 >> 2;
  if (var_9 * -0x1642c859 == 0) {
    var_10 = 1;
LAB_000fe1a5:
    var_12 = var_10 * 0x5c;
  }
  else {
    var_10 = var_9 * -0x2c8590b2;
    var_12 = 0xfffffff4;
    if (((type_7)(var_9 * -0x1642c859) < var_10 || var_9 * 0x1642c859 == 0) && (var_10 < 0x2c8590c))
    {
      if (var_10 == 0) {
        var_22 = (type_1)0x5c;
        local_24 = (type_1)0x0;
        var_13 = (type_1)0x0;
        goto LAB_000fddbd;
      }
      goto LAB_000fe1a5;
    }
  }
  var_13 = (type_1)var_11(var_12);
  local_24 = (type_1)(&var_13->is_file_ + var_12);
  var_22 = var_13 + 1;
LAB_000fddbd:
  var_15 = (__args_0->file_).name_._M_dataplus._M_p;
  var_14 = (type_6 *)((int)var_13 + ((int)__position._M_current - (int)var_16));
  *var_14 = __args_0->is_file_;
  var_6 = &(__args_0->file_).name_.field_2;
  *(type_6 **)(var_14 + 4) = var_14 + 0xc;
  if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
       *)var_15 == var_6) {
    *(type_2 *)(var_14 + 0xc) = (__args_0->file_).name_.field_2._M_allocated_capacity;
    *(type_4 *)(var_14 + 0x10) = *(type_4 *)((int)&(__args_0->file_).name_.field_2 + 4);
    *(type_4 *)(var_14 + 0x14) = *(type_4 *)((int)&(__args_0->file_).name_.field_2 + 8);
    *(type_4 *)(var_14 + 0x18) = *(type_4 *)((int)&(__args_0->file_).name_.field_2 + 0xc);
  }
  else {
    *(type_1 *)(var_14 + 4) = var_15;
    *(type_2 *)(var_14 + 0xc) = (__args_0->file_).name_.field_2._M_allocated_capacity;
  }
  sVar5 = (__args_0->file_).name_._M_string_length;
  (__args_0->file_).name_._M_dataplus._M_p = (type_1)var_6;
  IVar6 = (__args_0->file_).type_;
  (__args_0->file_).name_._M_string_length = 0;
  *(type_2 *)(var_14 + 8) = sVar5;
  var_15 = (__args_0->file_).extra_search_path_._M_dataplus._M_p;
  *(type_3 *)(var_14 + 0x1c) = IVar6;
  var_6 = &(__args_0->file_).extra_search_path_.field_2;
  (__args_0->file_).name_.field_2._M_local_buf[0] = '\0';
  *(type_6 **)(var_14 + 0x20) = var_14 + 0x28;
  if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
       *)var_15 == var_6) {
    *(type_2 *)(var_14 + 0x28) =
         (__args_0->file_).extra_search_path_.field_2._M_allocated_capacity;
    *(type_4 *)(var_14 + 0x2c) =
         *(type_4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 4);
    *(type_4 *)(var_14 + 0x30) =
         *(type_4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 8);
    *(type_4 *)(var_14 + 0x34) =
         *(type_4 *)((int)&(__args_0->file_).extra_search_path_.field_2 + 0xc);
  }
  else {
    *(type_1 *)(var_14 + 0x20) = var_15;
    *(type_2 *)(var_14 + 0x28) =
         (__args_0->file_).extra_search_path_.field_2._M_allocated_capacity;
  }
  sVar5 = (__args_0->file_).extra_search_path_._M_string_length;
  (__args_0->file_).extra_search_path_._M_dataplus._M_p = (type_1)var_6;
  bVar1 = (__args_0->file_).just_symbols_;
  (__args_0->file_).extra_search_path_._M_string_length = 0;
  *(type_2 *)(var_14 + 0x24) = sVar5;
  var_14[0x38] = bVar1;
  uVar7 = *(type_4 *)&(__args_0->file_).options_;
  (__args_0->file_).extra_search_path_.field_2._M_local_buf[0] = '\0';
  *(type_4 *)(var_14 + 0x3c) = uVar7;
  *(type_5 *)(var_14 + 0x40) = (__args_0->file_).options_.format_enum_;
  *(type_4 *)(var_14 + 0x44) = *(type_4 *)&(__args_0->file_).options_.whole_archive_;
  *(type_8 *)(var_14 + 0x48) = (__args_0->file_).options_.incremental_disposition_
  ;
  *(type_7 *)(var_14 + 0x4c) = (__args_0->file_).arg_serial_;
  *(type_9 **)(var_14 + 0x50) = __args_0->group_;
  *(type_10 **)(var_14 + 0x54) = __args_0->lib_;
  *(type_11 **)(var_14 + 0x58) = __args_0->script_info_;
  if (__position._M_current != var_16) {
    var_10 = ((type_7)((int)__position._M_current + (-0x5c - (int)var_16)) >> 2) * 0x29bd37a7 &
             0x3fffffff;
    var_6 = &(var_16->file_).name_.field_2;
    var_17 = var_13;
    do {
      bVar1 = *(bool *)((int)var_6 + -0xc);
      (var_17->file_).name_._M_dataplus._M_p = (type_1)&(var_17->file_).name_.field_2;
      var_17->is_file_ = bVar1;
      var_15 = (((type_12 *)((int)var_6 + -8))->_M_dataplus)._M_p;
      if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
           *)var_15 == var_6) {
        (var_17->file_).name_.field_2._M_allocated_capacity = var_6->_M_allocated_capacity;
        *(type_4 *)((int)&(var_17->file_).name_.field_2 + 4) =
             *(type_4 *)((int)var_6 + 4);
        *(type_4 *)((int)&(var_17->file_).name_.field_2 + 8) =
             *(type_4 *)((int)var_6 + 8);
        *(type_4 *)((int)&(var_17->file_).name_.field_2 + 0xc) =
             *(type_4 *)((int)var_6 + 0xc);
      }
      else {
        (var_17->file_).name_._M_dataplus._M_p = var_15;
        (var_17->file_).name_.field_2._M_allocated_capacity = var_6->_M_allocated_capacity;
      }
      (var_17->file_).name_._M_string_length = *(type_2 *)((int)var_6 + -4);
      IVar6 = var_6[1]._M_allocated_capacity;
      (((type_12 *)((int)var_6 + -8))->_M_dataplus)._M_p = (type_1)var_6;
      *(type_2 *)((int)var_6 + -4) = 0;
      var_6->_M_local_buf[0] = '\0';
      (var_17->file_).type_ = IVar6;
      (var_17->file_).extra_search_path_._M_dataplus._M_p =
           (type_1)&(var_17->file_).extra_search_path_.field_2;
      if (*(type_1 *)((int)var_6 + 0x14) == (type_1)((int)var_6 + 0x1c)) {
        (var_17->file_).extra_search_path_.field_2._M_allocated_capacity =
             *(type_2 *)((int)var_6 + 0x1c);
        *(type_2 *)((int)&(var_17->file_).extra_search_path_.field_2 + 4) =
             var_6[2]._M_allocated_capacity;
        *(type_4 *)((int)&(var_17->file_).extra_search_path_.field_2 + 8) =
             *(type_4 *)((int)var_6 + 0x24);
        *(type_4 *)((int)&(var_17->file_).extra_search_path_.field_2 + 0xc) =
             *(type_4 *)((int)var_6 + 0x28);
      }
      else {
        (var_17->file_).extra_search_path_._M_dataplus._M_p = *(type_1 *)((int)var_6 + 0x14);
        (var_17->file_).extra_search_path_.field_2._M_allocated_capacity =
             *(type_2 *)((int)var_6 + 0x1c);
      }
      var_5 = (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                 *)((int)var_6 + 0x5c);
      (var_17->file_).extra_search_path_._M_string_length = *(type_2 *)((int)var_6 + 0x18);
      *(type_1 *)((int)var_6 + 0x14) = (type_1)((int)var_6 + 0x1c);
      *(type_4 *)((int)var_6 + 0x18) = 0;
      *(type_6 *)((int)var_6 + 0x1c) = 0;
      (var_17->file_).just_symbols_ = *(bool *)((int)var_6 + 0x2c);
      uVar7 = var_6[3]._M_allocated_capacity;
      (var_17->file_).options_.as_needed_ = (bool)(char)uVar7;
      (var_17->file_).options_.Bdynamic_ = (bool)(char)((type_7)uVar7 >> 8);
      *(short *)&(var_17->file_).options_.field_0x2 = (short)((type_7)uVar7 >> 0x10);
      (var_17->file_).options_.format_enum_ = *(type_5 *)((int)var_6 + 0x34);
      *(type_4 *)&(var_17->file_).options_.whole_archive_ =
           *(type_4 *)((int)var_6 + 0x38);
      (var_17->file_).options_.incremental_disposition_ =
           *(type_8 *)((int)var_6 + 0x3c);
      (var_17->file_).arg_serial_ = var_6[4]._M_allocated_capacity;
      var_17->group_ = *(type_9 **)((int)var_6 + 0x44);
      var_17->lib_ = *(type_10 **)((int)var_6 + 0x48);
      var_17->script_info_ = *(type_11 **)((int)var_6 + 0x4c);
      var_6 = var_5;
      var_17 = var_17 + 1;
    } while (var_5 != &var_16[var_10 + 1].file_.name_.field_2);
    var_22 = var_13 + var_10 + 2;
  }
  var_17 = var_16;
  if (__position._M_current != var_18) {
    var_10 = ((type_7)((int)var_18 + (-0x5c - (int)__position._M_current)) >> 2) * 0x29bd37a7 &
             0x3fffffff;
    var_6 = &((__position._M_current)->file_).name_.field_2;
    var_21 = var_22;
    do {
      bVar1 = *(bool *)((int)var_6 + -0xc);
      (var_21->file_).name_._M_dataplus._M_p = (type_1)&(var_21->file_).name_.field_2;
      var_21->is_file_ = bVar1;
      var_19 = (type_2 *)(((type_12 *)((int)var_6 + -8))->_M_dataplus)._M_p;
      if (var_6 ==
          (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
           *)var_19) {
        (var_21->file_).name_.field_2._M_allocated_capacity = var_6->_M_allocated_capacity;
        *(type_2 *)((int)&(var_21->file_).name_.field_2 + 4) = *(type_2 *)((int)var_6 + 4);
        *(type_2 *)((int)&(var_21->file_).name_.field_2 + 8) = *(type_2 *)((int)var_6 + 8);
        *(type_2 *)((int)&(var_21->file_).name_.field_2 + 0xc) =
             *(type_2 *)((int)var_6 + 0xc);
      }
      else {
        (var_21->file_).name_._M_dataplus._M_p = (type_1)var_19;
        (var_21->file_).name_.field_2._M_allocated_capacity = var_6->_M_allocated_capacity;
      }
      sVar5 = *(type_2 *)((int)var_6 + -4);
      var_19 = *(type_2 **)((int)var_6 + 0x14);
      (((type_12 *)((int)var_6 + -8))->_M_dataplus)._M_p = (type_1)var_6;
      *(type_2 *)((int)var_6 + -4) = 0;
      (var_21->file_).name_._M_string_length = sVar5;
      var_6->_M_local_buf[0] = '\0';
      (var_21->file_).type_ = var_6[1]._M_allocated_capacity;
      (var_21->file_).extra_search_path_._M_dataplus._M_p =
           (type_1)&(var_21->file_).extra_search_path_.field_2;
      if (var_19 == (type_2 *)((int)var_6 + 0x1c)) {
        (var_21->file_).extra_search_path_.field_2._M_allocated_capacity =
             *(type_2 *)((int)var_6 + 0x1c);
        *(type_2 *)((int)&(var_21->file_).extra_search_path_.field_2 + 4) =
             var_6[2]._M_allocated_capacity;
        *(type_2 *)((int)&(var_21->file_).extra_search_path_.field_2 + 8) =
             *(type_2 *)((int)var_6 + 0x24);
        *(type_2 *)((int)&(var_21->file_).extra_search_path_.field_2 + 0xc) =
             *(type_2 *)((int)var_6 + 0x28);
      }
      else {
        (var_21->file_).extra_search_path_._M_dataplus._M_p = (type_1)var_19;
        (var_21->file_).extra_search_path_.field_2._M_allocated_capacity =
             *(type_2 *)((int)var_6 + 0x1c);
      }
      *(type_2 **)((int)var_6 + 0x14) = (type_2 *)((int)var_6 + 0x1c);
      var_5 = (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                 *)((int)var_6 + 0x5c);
      sVar5 = *(type_2 *)((int)var_6 + 0x18);
      *(char *)((int)var_6 + 0x1c) = '\0';
      (var_21->file_).just_symbols_ = *(bool *)((int)var_6 + 0x2c);
      var_20 = var_6[3]._M_allocated_capacity;
      *(type_2 *)((int)var_6 + 0x18) = 0;
      (var_21->file_).options_.as_needed_ = (bool)(char)var_20;
      (var_21->file_).options_.Bdynamic_ = (bool)(char)(var_20 >> 8);
      *(short *)&(var_21->file_).options_.field_0x2 = (short)(var_20 >> 0x10);
      OVar9 = *(type_5 *)((int)var_6 + 0x34);
      (var_21->file_).extra_search_path_._M_string_length = sVar5;
      (var_21->file_).options_.format_enum_ = OVar9;
      *(type_2 *)&(var_21->file_).options_.whole_archive_ = *(type_2 *)((int)var_6 + 0x38);
      (var_21->file_).options_.incremental_disposition_ =
           *(type_8 *)((int)var_6 + 0x3c);
      (var_21->file_).arg_serial_ = var_6[4]._M_allocated_capacity;
      var_21->group_ = *(type_9 **)((int)var_6 + 0x44);
      var_21->lib_ = *(type_10 **)((int)var_6 + 0x48);
      var_21->script_info_ = *(type_11 **)((int)var_6 + 0x4c);
      var_6 = var_5;
      var_21 = var_21 + 1;
    } while (var_5 != &__position._M_current[var_10 + 1].file_.name_.field_2);
    var_22 = var_22 + var_10 + 1;
  }
  for (; var_17 != var_18; var_17 = var_17 + 1) {
    var_15 = (var_17->file_).extra_search_path_._M_dataplus._M_p;
    if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
         *)var_15 != &(var_17->file_).extra_search_path_.field_2) {
      var_23(var_15);
    }
    var_15 = (var_17->file_).name_._M_dataplus._M_p;
    if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
         *)var_15 != &(var_17->file_).name_.field_2) {
      var_23(var_15);
    }
  }
  if (var_16 != (type_1)0x0) {
    var_23(var_16);
  }
  (this->super__Vector_base<gold::var_7,_std::var_1<gold::var_7>var_3>var_8)._M_impl.
  _M_start = var_13;
  (this->super__Vector_base<gold::var_7,_std::var_1<gold::var_7>var_3>var_8)._M_impl.
  _M_finish = var_22;
  (this->super__Vector_base<gold::var_7,_std::var_1<gold::var_7>var_3>var_8)._M_impl.
  _M_end_of_storage = local_24;
  return;
}


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

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

void MASKED(int *param_1,int param_2,undefined1 *param_3)

{
  undefined1 uVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  int iVar6;
  undefined1 *puVar7;
  undefined4 *puVar8;
  undefined4 *puVar9;
  uint uVar10;
  undefined1 *puVar11;
  int iVar12;
  undefined1 *local_34;
  undefined1 *local_2c;
  undefined1 *local_24;
  
  iVar2 = *param_1;
  iVar3 = param_1[1];
  iVar6 = iVar3 - iVar2 >> 2;
  if (iVar6 * -0x1642c859 == 0) {
    uVar10 = 1;
LAB_000fe1a5:
    iVar12 = uVar10 * 0x5c;
  }
  else {
    uVar10 = iVar6 * -0x2c8590b2;
    iVar12 = -0xc;
    if (((uint)(iVar6 * -0x1642c859) < uVar10 || iVar6 * 0x1642c859 == 0) && (uVar10 < 0x2c8590c)) {
      if (uVar10 == 0) {
        local_2c = (undefined1 *)0x5c;
        local_24 = (undefined1 *)0x0;
        local_34 = (undefined1 *)0x0;
        goto LAB_000fddbd;
      }
      goto LAB_000fe1a5;
    }
  }
  local_34 = (undefined1 *)FUN_001fb470(iVar12);
  local_24 = local_34 + iVar12;
  local_2c = local_34 + 0x5c;
LAB_000fddbd:
  puVar11 = *(undefined1 **)(param_3 + 4);
  puVar7 = local_34 + (param_2 - iVar2);
  *puVar7 = *param_3;
  *(undefined1 **)(puVar7 + 4) = puVar7 + 0xc;
  if (puVar11 == param_3 + 0xc) {
    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);
    *(undefined4 *)(puVar7 + 0x10) = *(undefined4 *)(param_3 + 0x10);
    *(undefined4 *)(puVar7 + 0x14) = *(undefined4 *)(param_3 + 0x14);
    *(undefined4 *)(puVar7 + 0x18) = *(undefined4 *)(param_3 + 0x18);
  }
  else {
    *(undefined1 **)(puVar7 + 4) = puVar11;
    *(undefined4 *)(puVar7 + 0xc) = *(undefined4 *)(param_3 + 0xc);
  }
  uVar4 = *(undefined4 *)(param_3 + 8);
  *(undefined1 **)(param_3 + 4) = param_3 + 0xc;
  uVar5 = *(undefined4 *)(param_3 + 0x1c);
  *(undefined4 *)(param_3 + 8) = 0;
  *(undefined4 *)(puVar7 + 8) = uVar4;
  puVar11 = *(undefined1 **)(param_3 + 0x20);
  *(undefined4 *)(puVar7 + 0x1c) = uVar5;
  param_3[0xc] = 0;
  *(undefined1 **)(puVar7 + 0x20) = puVar7 + 0x28;
  if (puVar11 == param_3 + 0x28) {
    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);
    *(undefined4 *)(puVar7 + 0x2c) = *(undefined4 *)(param_3 + 0x2c);
    *(undefined4 *)(puVar7 + 0x30) = *(undefined4 *)(param_3 + 0x30);
    *(undefined4 *)(puVar7 + 0x34) = *(undefined4 *)(param_3 + 0x34);
  }
  else {
    *(undefined1 **)(puVar7 + 0x20) = puVar11;
    *(undefined4 *)(puVar7 + 0x28) = *(undefined4 *)(param_3 + 0x28);
  }
  uVar4 = *(undefined4 *)(param_3 + 0x24);
  *(undefined1 **)(param_3 + 0x20) = param_3 + 0x28;
  uVar1 = param_3[0x38];
  *(undefined4 *)(param_3 + 0x24) = 0;
  *(undefined4 *)(puVar7 + 0x24) = uVar4;
  puVar7[0x38] = uVar1;
  param_3[0x28] = 0;
  *(undefined4 *)(puVar7 + 0x3c) = *(undefined4 *)(param_3 + 0x3c);
  *(undefined4 *)(puVar7 + 0x40) = *(undefined4 *)(param_3 + 0x40);
  *(undefined4 *)(puVar7 + 0x44) = *(undefined4 *)(param_3 + 0x44);
  *(undefined4 *)(puVar7 + 0x48) = *(undefined4 *)(param_3 + 0x48);
  *(undefined4 *)(puVar7 + 0x4c) = *(undefined4 *)(param_3 + 0x4c);
  *(undefined4 *)(puVar7 + 0x50) = *(undefined4 *)(param_3 + 0x50);
  *(undefined4 *)(puVar7 + 0x54) = *(undefined4 *)(param_3 + 0x54);
  *(undefined4 *)(puVar7 + 0x58) = *(undefined4 *)(param_3 + 0x58);
  if (param_2 != iVar2) {
    uVar10 = ((uint)((param_2 + -0x5c) - iVar2) >> 2) * 0x29bd37a7 & 0x3fffffff;
    puVar9 = (undefined4 *)(iVar2 + 0xc);
    puVar11 = local_34;
    do {
      uVar1 = *(undefined1 *)(puVar9 + -3);
      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;
      *puVar11 = uVar1;
      if ((undefined4 *)puVar9[-2] == puVar9) {
        *(undefined4 *)(puVar11 + 0xc) = *puVar9;
        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];
        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];
        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];
      }
      else {
        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];
        *(undefined4 *)(puVar11 + 0xc) = *puVar9;
      }
      *(undefined4 *)(puVar11 + 8) = puVar9[-1];
      puVar9[-2] = puVar9;
      puVar9[-1] = 0;
      *(undefined1 *)puVar9 = 0;
      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];
      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;
      if ((undefined4 *)puVar9[5] == puVar9 + 7) {
        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];
        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];
        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];
        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];
      }
      else {
        *(undefined4 **)(puVar11 + 0x20) = (undefined4 *)puVar9[5];
        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];
      }
      puVar8 = puVar9 + 0x17;
      *(undefined4 *)(puVar11 + 0x24) = puVar9[6];
      puVar9[5] = puVar9 + 7;
      puVar9[6] = 0;
      *(undefined1 *)(puVar9 + 7) = 0;
      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);
      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];
      *(undefined4 *)(puVar11 + 0x40) = puVar9[0xd];
      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];
      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];
      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];
      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];
      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];
      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];
      puVar9 = puVar8;
      puVar11 = puVar11 + 0x5c;
    } while (puVar8 != (undefined4 *)(iVar2 + 0x68 + uVar10 * 0x5c));
    local_2c = local_34 + (uVar10 + 2) * 0x5c;
  }
  iVar6 = iVar2;
  if (param_2 != iVar3) {
    uVar10 = ((iVar3 - param_2) - 0x5cU >> 2) * 0x29bd37a7 & 0x3fffffff;
    puVar9 = (undefined4 *)(param_2 + 0xc);
    puVar11 = local_2c;
    do {
      uVar1 = *(undefined1 *)(puVar9 + -3);
      *(undefined1 **)(puVar11 + 4) = puVar11 + 0xc;
      *puVar11 = uVar1;
      if (puVar9 == (undefined4 *)puVar9[-2]) {
        *(undefined4 *)(puVar11 + 0xc) = *puVar9;
        *(undefined4 *)(puVar11 + 0x10) = puVar9[1];
        *(undefined4 *)(puVar11 + 0x14) = puVar9[2];
        *(undefined4 *)(puVar11 + 0x18) = puVar9[3];
      }
      else {
        *(undefined4 **)(puVar11 + 4) = (undefined4 *)puVar9[-2];
        *(undefined4 *)(puVar11 + 0xc) = *puVar9;
      }
      uVar4 = puVar9[-1];
      puVar8 = (undefined4 *)puVar9[5];
      puVar9[-2] = puVar9;
      puVar9[-1] = 0;
      *(undefined4 *)(puVar11 + 8) = uVar4;
      *(undefined1 *)puVar9 = 0;
      *(undefined4 *)(puVar11 + 0x1c) = puVar9[4];
      *(undefined1 **)(puVar11 + 0x20) = puVar11 + 0x28;
      if (puVar8 == puVar9 + 7) {
        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];
        *(undefined4 *)(puVar11 + 0x2c) = puVar9[8];
        *(undefined4 *)(puVar11 + 0x30) = puVar9[9];
        *(undefined4 *)(puVar11 + 0x34) = puVar9[10];
      }
      else {
        *(undefined4 **)(puVar11 + 0x20) = puVar8;
        *(undefined4 *)(puVar11 + 0x28) = puVar9[7];
      }
      puVar9[5] = puVar9 + 7;
      puVar8 = puVar9 + 0x17;
      uVar4 = puVar9[6];
      *(undefined1 *)(puVar9 + 7) = 0;
      puVar11[0x38] = *(undefined1 *)(puVar9 + 0xb);
      puVar9[6] = 0;
      *(undefined4 *)(puVar11 + 0x3c) = puVar9[0xc];
      uVar5 = puVar9[0xd];
      *(undefined4 *)(puVar11 + 0x24) = uVar4;
      *(undefined4 *)(puVar11 + 0x40) = uVar5;
      *(undefined4 *)(puVar11 + 0x44) = puVar9[0xe];
      *(undefined4 *)(puVar11 + 0x48) = puVar9[0xf];
      *(undefined4 *)(puVar11 + 0x4c) = puVar9[0x10];
      *(undefined4 *)(puVar11 + 0x50) = puVar9[0x11];
      *(undefined4 *)(puVar11 + 0x54) = puVar9[0x12];
      *(undefined4 *)(puVar11 + 0x58) = puVar9[0x13];
      puVar9 = puVar8;
      puVar11 = puVar11 + 0x5c;
    } while (puVar8 != (undefined4 *)(param_2 + 0x68 + uVar10 * 0x5c));
    local_2c = local_2c + (uVar10 + 1) * 0x5c;
  }
  for (; iVar6 != iVar3; iVar6 = iVar6 + 0x5c) {
    if (*(int *)(iVar6 + 0x20) != iVar6 + 0x28) {
      FUN_001fd020(*(int *)(iVar6 + 0x20));
    }
    if (*(int *)(iVar6 + 4) != iVar6 + 0xc) {
      FUN_001fd020(*(int *)(iVar6 + 4));
    }
  }
  if (iVar2 != 0) {
    FUN_001fd020(iVar2);
  }
  *param_1 = (int)local_34;
  param_1[1] = (int)local_2c;
  param_1[2] = (int)local_24;
  return;
}

