
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: void record_got_page_entry(Mips_got_info<64,_true> * this,
   Mips_relobj<64,_true> * object, uint symndx, int addend) */

void __thiscall
anon_unknown.dwarf_29466b::Mips_got_info<64,_true>::record_got_page_entry
          (Mips_got_info<64,_true> *this,Mips_relobj<64,_true> *object,uint symndx,int addend)

{
  undefined *puVar1;
  int iVar2;
  int iVar3;
  Got_page_range *pGVar4;
  uint uVar5;
  Got_page_range *pGVar6;
  int iVar7;
  int iVar8;
  Got_page_range *pGVar9;
  Got_page_entry_set *__k;
  Mips_got_info<64,_true> *pMVar10;
  float fVar11;
  _Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
  a_Stack_30 [8];
  Got_page_entry *entry;
  int local_20 [3];
  
  entry = (Got_page_entry *)(*(code *)PTR_operator_new_004c13a8)(0xc);
  __k = &this->got_page_entries_;
  entry->object = (Object *)object;
  entry->symndx = symndx;
  entry->ranges = (Got_page_range *)0x0;
  std::
  _Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
  ::find((_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
          *)local_20,(key_type *)__k);
  if (local_20[0] == 0) {
    std::
    _Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
    ::
    _M_insert<(anonymous_namespace)::Got_page_entry*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>_>
              (a_Stack_30,__k);
    pMVar10 = object->got_info_;
  }
  else {
    entry = *(Got_page_entry **)(local_20[0] + 4);
    pMVar10 = object->got_info_;
  }
  if (pMVar10 == (Mips_got_info<64,_true> *)0x0) {
    pMVar10 = (Mips_got_info<64,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x9c);
    pMVar10->local_gotno_ = 0;
    pMVar10->page_gotno_ = 0;
    puVar1 = PTR_s_ral_options14Struct_no_crefE_004c127c;
    pMVar10->global_gotno_ = 0;
    pMVar10->reloc_only_gotno_ = 0;
    fVar11 = *(float *)(puVar1 + 0x355c);
    pMVar10->tls_gotno_ = 0;
    pMVar10->tls_ldm_offset_ = 0xffffffff;
    (pMVar10->global_got_symbols_)._M_h._M_element_count = 0;
    (pMVar10->global_got_symbols_)._M_h._M_single_bucket = (__bucket_type)0x0;
    (pMVar10->global_got_symbols_)._M_h._M_buckets =
         &(pMVar10->global_got_symbols_)._M_h._M_single_bucket;
    (pMVar10->global_got_symbols_)._M_h._M_bucket_count = 1;
    (pMVar10->global_got_symbols_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;
    (pMVar10->global_got_symbols_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;
    (pMVar10->global_got_symbols_)._M_h._M_rehash_policy._M_next_resize = 0;
    (pMVar10->got_entries_)._M_h._M_element_count = 0;
    (pMVar10->got_entries_)._M_h._M_single_bucket = (__bucket_type)0x0;
    (pMVar10->got_entries_)._M_h._M_buckets = &(pMVar10->got_entries_)._M_h._M_single_bucket;
    (pMVar10->got_entries_)._M_h._M_bucket_count = 1;
    (pMVar10->got_entries_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;
    (pMVar10->got_entries_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;
    (pMVar10->got_entries_)._M_h._M_rehash_policy._M_next_resize = 0;
    (pMVar10->got_page_entries_)._M_h._M_element_count = 0;
    (pMVar10->got_page_entries_)._M_h._M_single_bucket = (__bucket_type)0x0;
    (pMVar10->got_page_entries_)._M_h._M_buckets =
         &(pMVar10->got_page_entries_)._M_h._M_single_bucket;
    (pMVar10->got_page_entries_)._M_h._M_bucket_count = 1;
    (pMVar10->got_page_entries_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;
    (pMVar10->got_page_entries_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;
    (pMVar10->got_page_entries_)._M_h._M_rehash_policy._M_next_resize = 0;
    pMVar10->got_page_offset_start_ = 0;
    pMVar10->got_page_offset_next_ = 0;
    (pMVar10->got_page_offsets_)._M_h._M_element_count = 0;
    (pMVar10->got_page_offsets_)._M_h._M_single_bucket = (__bucket_type)0x0;
    (pMVar10->got_page_offsets_)._M_h._M_buckets =
         &(pMVar10->got_page_offsets_)._M_h._M_single_bucket;
    (pMVar10->got_page_offsets_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;
    (pMVar10->got_page_offsets_)._M_h._M_bucket_count = 1;
    (pMVar10->got_page_offsets_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;
    (pMVar10->got_page_offsets_)._M_h._M_rehash_policy._M_next_resize = 0;
    pMVar10->next_ = (Mips_got_info<64,_true> *)0x0;
    pMVar10->index_ = 0xffffffff;
    pMVar10->offset_ = 0;
    object->got_info_ = pMVar10;
  }
  pGVar4 = entry->ranges;
  pGVar9 = (Got_page_range *)&entry->ranges;
  if (pGVar4 != (Got_page_range *)0x0) {
    iVar2 = pGVar4->max_addend;
    while (pGVar6 = pGVar4, iVar2 + 0xffff < addend) {
      pGVar4 = pGVar6->next;
      pGVar9 = pGVar6;
      if (pGVar4 == (Got_page_range *)0x0) goto LAB_000e13a8;
      iVar2 = pGVar4->max_addend;
    }
    iVar2 = pGVar6->min_addend;
    if (iVar2 + -0xffff <= addend) {
      iVar3 = pGVar6->max_addend;
      iVar8 = (iVar3 - iVar2) + 0x1ffff >> 0x10;
      if (addend < iVar2) {
        pGVar6->min_addend = addend;
        iVar2 = (iVar3 - addend) + 0x1ffff >> 0x10;
      }
      else {
        if (addend <= iVar3) {
          return;
        }
        pGVar9 = pGVar6->next;
        if ((pGVar9 == (Got_page_range *)0x0) ||
           (iVar3 = pGVar9->min_addend, addend < iVar3 + -0xffff)) {
          pGVar6->max_addend = addend;
          iVar2 = (addend - iVar2) + 0x1ffff >> 0x10;
        }
        else {
          iVar7 = pGVar9->max_addend;
          pGVar9 = pGVar9->next;
          pGVar6->max_addend = iVar7;
          pGVar6->next = pGVar9;
          iVar2 = (iVar7 - iVar2) + 0x1ffff >> 0x10;
          iVar8 = iVar8 + ((iVar7 - iVar3) + 0x1ffff >> 0x10);
        }
      }
      if (iVar8 == iVar2) {
        return;
      }
      this->page_gotno_ = this->page_gotno_ + (iVar2 - iVar8);
      pMVar10->page_gotno_ = pMVar10->page_gotno_ + (iVar2 - iVar8);
      return;
    }
  }
LAB_000e13a8:
  pGVar4 = (Got_page_range *)(*(code *)PTR_operator_new_004c13a8)(0xc);
  uVar5 = this->page_gotno_;
  pGVar4->next = (Got_page_range *)0x0;
  pGVar6 = pGVar9->next;
  pGVar4->min_addend = addend;
  pGVar4->max_addend = addend;
  pGVar4->next = pGVar6;
  pGVar9->next = pGVar4;
  this->page_gotno_ = uVar5 + 1;
  pMVar10->page_gotno_ = pMVar10->page_gotno_ + 1;
  return;
}



void FUN_000e12c0(int param_1,int param_2,int param_3,int param_4)

{
  int *piVar1;
  undefined *puVar2;
  int iVar3;
  int *piVar4;
  int iVar5;
  int iVar6;
  int *piVar7;
  int iVar8;
  int iVar9;
  undefined4 *puVar10;
  undefined4 uVar11;
  undefined1 auStack_30 [8];
  int *local_28 [2];
  int local_20 [3];
  
  local_28[0] = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);
  iVar9 = param_1 + 0x50;
  *local_28[0] = param_2;
  local_28[0][1] = param_3;
  local_28[0][2] = 0;
  FUN_000d0184(local_20,iVar9,local_28);
  if (local_20[0] == 0) {
    FUN_000d9ec4(auStack_30,iVar9);
    puVar10 = *(undefined4 **)(param_2 + 0x1fc);
  }
  else {
    local_28[0] = *(int **)(local_20[0] + 4);
    puVar10 = *(undefined4 **)(param_2 + 0x1fc);
  }
  if (puVar10 == (undefined4 *)0x0) {
    puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);
    *puVar10 = 0;
    puVar10[1] = 0;
    puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;
    puVar10[2] = 0;
    puVar10[3] = 0;
    uVar11 = *(undefined4 *)(puVar2 + 0x355c);
    puVar10[4] = 0;
    puVar10[5] = 0xffffffff;
    puVar10[9] = 0;
    puVar10[0xc] = 0;
    puVar10[6] = puVar10 + 0xc;
    puVar10[7] = 1;
    puVar10[8] = 0;
    puVar10[10] = uVar11;
    puVar10[0xb] = 0;
    puVar10[0x10] = 0;
    puVar10[0x13] = 0;
    puVar10[0xd] = puVar10 + 0x13;
    puVar10[0xe] = 1;
    puVar10[0xf] = 0;
    puVar10[0x11] = uVar11;
    puVar10[0x12] = 0;
    puVar10[0x17] = 0;
    puVar10[0x1a] = 0;
    puVar10[0x14] = puVar10 + 0x1a;
    puVar10[0x15] = 1;
    puVar10[0x16] = 0;
    puVar10[0x18] = uVar11;
    puVar10[0x19] = 0;
    puVar10[0x1b] = 0;
    puVar10[0x1c] = 0;
    puVar10[0x20] = 0;
    puVar10[0x23] = 0;
    puVar10[0x1d] = puVar10 + 0x23;
    puVar10[0x21] = uVar11;
    puVar10[0x1e] = 1;
    puVar10[0x1f] = 0;
    puVar10[0x22] = 0;
    puVar10[0x24] = 0;
    puVar10[0x25] = 0xffffffff;
    puVar10[0x26] = 0;
    *(undefined4 **)(param_2 + 0x1fc) = puVar10;
  }
  piVar4 = (int *)local_28[0][2];
  piVar7 = local_28[0] + 2;
  if (piVar4 != (int *)0x0) {
    iVar9 = piVar4[2];
    while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {
      piVar4 = (int *)*piVar1;
      piVar7 = piVar1;
      if (piVar4 == (int *)0x0) goto LAB_000e13a8;
      iVar9 = piVar4[2];
    }
    iVar9 = piVar1[1];
    if (iVar9 + -0xffff <= param_4) {
      iVar3 = piVar1[2];
      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;
      if (param_4 < iVar9) {
        piVar1[1] = param_4;
        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;
      }
      else {
        if (param_4 <= iVar3) {
          return;
        }
        piVar7 = (int *)*piVar1;
        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {
          piVar1[2] = param_4;
          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;
        }
        else {
          iVar5 = piVar7[2];
          iVar8 = *piVar7;
          piVar1[2] = iVar5;
          *piVar1 = iVar8;
          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;
          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);
        }
      }
      if (iVar6 == iVar9) {
        return;
      }
      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);
      puVar10[1] = puVar10[1] + (iVar9 - iVar6);
      return;
    }
  }
LAB_000e13a8:
  piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);
  iVar9 = *(int *)(param_1 + 4);
  *piVar4 = 0;
  iVar3 = *piVar7;
  piVar4[1] = param_4;
  piVar4[2] = param_4;
  *piVar4 = iVar3;
  *piVar7 = (int)piVar4;
  *(int *)(param_1 + 4) = iVar9 + 1;
  puVar10[1] = puVar10[1] + 1;
  return;
}


lui gp,0x3e
addiu gp,gp,0x7f80
addu gp,gp,t9
addiu sp,sp,-0x48
lw t9,-0x7e98(gp)
sw s3,0x40(sp)
or s3,a0,zero
li a0,0xc
sw gp,0x10(sp)
sw ra,0x44(sp)
sw s2,0x3c(sp)
or s2,a1,zero
sw s1,0x38(sp)
or s1,a2,zero
sw s0,0x34(sp)
jalr t9
_or s0,a3,zero
addiu t5,s3,0x50
lw gp,0x10(sp)
addiu t6,sp,0x20
addiu a0,sp,0x28
sw v0,0x20(sp)
sw s2,0x0(v0)
or a2,t6,zero
sw s1,0x4(v0)
or a1,t5,zero
lw t9,-0x77f4(gp)
addiu t9,t9,0x184
bal 0x000d0184
_sw zero,0x8(v0)
lw v0,0x28(sp)
beq v0,zero,0x000e14e0
_lw gp,0x10(sp)
lw v0,0x4(v0)
lw s1,0x1fc(s2)
beq s1,zero,0x000e1500
_sw v0,0x20(sp)
lw v0,0x20(sp)
lw v1,0x8(v0)
beq v1,zero,0x000e13a8
_addiu s2,v0,0x8
lw v0,0x8(v1)
ori a0,zero,0xffff
addu v0,v0,a0
slt v0,v0,s0
bne v0,zero,0x000e1398
_nop
b 0x000e1404
_lui a0,0xffff
lw v0,0x8(v1)
addu v0,v0,a0
slt v0,v0,s0
beq v0,zero,0x000e1400
_nop
or s2,v1,zero
lw v1,0x0(v1)
bne v1,zero,0x000e1384
_nop
lw t9,-0x7e98(gp)
jalr t9
_li a0,0xc
lw v1,0x4(s3)
sw zero,0x0(v0)
lw a0,0x0(s2)
addiu v1,v1,0x1
sw s0,0x4(v0)
sw s0,0x8(v0)
sw a0,0x0(v0)
sw v0,0x0(s2)
sw v1,0x4(s3)
lw v0,0x4(s1)
addiu v0,v0,0x1
sw v0,0x4(s1)
lw ra,0x44(sp)
lw s3,0x40(sp)
lw s2,0x3c(sp)
lw s1,0x38(sp)
lw s0,0x34(sp)
jr ra
_addiu sp,sp,0x48
lui a0,0xffff
lw a2,0x4(v1)
addiu a0,a0,0x1
addu v0,a2,a0
slt v0,s0,v0
bne v0,zero,0x000e13a8
_lui a3,0x1
lw v0,0x8(v1)
slt t0,s0,a2
ori a3,a3,0xffff
subu a1,v0,a2
addu a1,a1,a3
beq t0,zero,0x000e1484
_sra a1,a1,0x10
subu v0,v0,s0
sw s0,0x4(v1)
addu v0,v0,a3
sra v0,v0,0x10
beq a1,v0,0x000e13e4
_subu v0,v0,a1
lw v1,0x4(s3)
lw ra,0x44(sp)
lw s2,0x3c(sp)
addu v1,v1,v0
lw s0,0x34(sp)
sw v1,0x4(s3)
lw v1,0x4(s1)
lw s3,0x40(sp)
addu v0,v1,v0
sw v0,0x4(s1)
lw s1,0x38(sp)
jr ra
_addiu sp,sp,0x48
slt v0,v0,s0
beq v0,zero,0x000e13e8
_lw ra,0x44(sp)
lw t0,0x0(v1)
beq t0,zero,0x000e15d8
_nop
lw v0,0x4(t0)
addu a0,v0,a0
slt a0,s0,a0
bne a0,zero,0x000e15d8
_nop
lw a0,0x8(t0)
lw t0,0x0(t0)
subu v0,a0,v0
sw a0,0x8(v1)
subu a0,a0,a2
sw t0,0x0(v1)
addu v0,v0,a3
addu v1,a0,a3
sra a0,v0,0x10
sra v0,v1,0x10
b 0x000e1448
_addu a1,a1,a0
lw t9,-0x777c(gp)
addiu a0,sp,0x18
addiu t9,t9,-0x613c
bal 0x000d9ec4
_or a1,t5,zero
lw s1,0x1fc(s2)
bne s1,zero,0x000e1354
_lw gp,0x10(sp)
lw t9,-0x7e98(gp)
jalr t9
_li a0,0x9c
li v1,0x1
lw gp,0x10(sp)
or s1,v0,zero
addiu a3,s1,0x30
li v0,-0x1
sw zero,0x0(s1)
addiu a2,s1,0x4c
sw zero,0x4(s1)
lw a0,-0x7fc4(gp)
addiu a1,s1,0x68
sw zero,0x8(s1)
sw zero,0xc(s1)
lwc1 f0,0x355c(a0)
addiu a0,s1,0x8c
sw zero,0x10(s1)
sw v0,0x14(s1)
sw zero,0x24(s1)
sw zero,0x30(s1)
sw a3,0x18(s1)
sw v1,0x1c(s1)
sw zero,0x20(s1)
swc1 f0,0x28(s1)
sw zero,0x2c(s1)
sw zero,0x40(s1)
sw zero,0x4c(s1)
sw a2,0x34(s1)
sw v1,0x38(s1)
sw zero,0x3c(s1)
swc1 f0,0x44(s1)
sw zero,0x48(s1)
sw zero,0x5c(s1)
sw zero,0x68(s1)
sw a1,0x50(s1)
sw v1,0x54(s1)
sw zero,0x58(s1)
swc1 f0,0x60(s1)
sw zero,0x64(s1)
sw zero,0x6c(s1)
sw zero,0x70(s1)
sw zero,0x80(s1)
sw zero,0x8c(s1)
sw a0,0x74(s1)
swc1 f0,0x84(s1)
sw v1,0x78(s1)
sw zero,0x7c(s1)
sw zero,0x88(s1)
sw zero,0x90(s1)
sw v0,0x94(s1)
sw zero,0x98(s1)
b 0x000e1354
_sw s1,0x1fc(s2)
sw s0,0x8(v1)
lui v1,0x1
subu v0,s0,a2
ori v1,v1,0xffff
addu v0,v0,v1
b 0x000e1448
_sra v0,v0,0x10
(translation_unit "void FUN_000e12c0(int param_1,int param_2,int param_3,int param_4)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  undefined1 auStack_30 [8];\n  int *local_28 [2];\n  int local_20 [3];\n  \n  local_28[0] = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  iVar9 = param_1 + 0x50;\n  *local_28[0] = param_2;\n  local_28[0][1] = param_3;\n  local_28[0][2] = 0;\n  FUN_000d0184(local_20,iVar9,local_28);\n  if (local_20[0] == 0) {\n    FUN_000d9ec4(auStack_30,iVar9);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  else {\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  if (puVar10 == (undefined4 *)0x0) {\n    puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    *puVar10 = 0;\n    puVar10[1] = 0;\n    puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    uVar11 = *(undefined4 *)(puVar2 + 0x355c);\n    puVar10[4] = 0;\n    puVar10[5] = 0xffffffff;\n    puVar10[9] = 0;\n    puVar10[0xc] = 0;\n    puVar10[6] = puVar10 + 0xc;\n    puVar10[7] = 1;\n    puVar10[8] = 0;\n    puVar10[10] = uVar11;\n    puVar10[0xb] = 0;\n    puVar10[0x10] = 0;\n    puVar10[0x13] = 0;\n    puVar10[0xd] = puVar10 + 0x13;\n    puVar10[0xe] = 1;\n    puVar10[0xf] = 0;\n    puVar10[0x11] = uVar11;\n    puVar10[0x12] = 0;\n    puVar10[0x17] = 0;\n    puVar10[0x1a] = 0;\n    puVar10[0x14] = puVar10 + 0x1a;\n    puVar10[0x15] = 1;\n    puVar10[0x16] = 0;\n    puVar10[0x18] = uVar11;\n    puVar10[0x19] = 0;\n    puVar10[0x1b] = 0;\n    puVar10[0x1c] = 0;\n    puVar10[0x20] = 0;\n    puVar10[0x23] = 0;\n    puVar10[0x1d] = puVar10 + 0x23;\n    puVar10[0x21] = uVar11;\n    puVar10[0x1e] = 1;\n    puVar10[0x1f] = 0;\n    puVar10[0x22] = 0;\n    puVar10[0x24] = 0;\n    puVar10[0x25] = 0xffffffff;\n    puVar10[0x26] = 0;\n    *(undefined4 **)(param_2 + 0x1fc) = puVar10;\n  }\n  piVar4 = (int *)local_28[0][2];\n  piVar7 = local_28[0] + 2;\n  if (piVar4 != (int *)0x0) {\n    iVar9 = piVar4[2];\n    while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }\n    iVar9 = piVar1[1];\n    if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }\n  }\nLAB_000e13a8:\n  piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  iVar9 = *(int *)(param_1 + 4);\n  *piVar4 = 0;\n  iVar3 = *piVar7;\n  piVar4[1] = param_4;\n  piVar4[2] = param_4;\n  *piVar4 = iVar3;\n  *piVar7 = (int)piVar4;\n  *(int *)(param_1 + 4) = iVar9 + 1;\n  puVar10[1] = puVar10[1] + 1;\n  return;\n}\n\n" (function_definition "void FUN_000e12c0(int param_1,int param_2,int param_3,int param_4)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  undefined1 auStack_30 [8];\n  int *local_28 [2];\n  int local_20 [3];\n  \n  local_28[0] = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  iVar9 = param_1 + 0x50;\n  *local_28[0] = param_2;\n  local_28[0][1] = param_3;\n  local_28[0][2] = 0;\n  FUN_000d0184(local_20,iVar9,local_28);\n  if (local_20[0] == 0) {\n    FUN_000d9ec4(auStack_30,iVar9);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  else {\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  if (puVar10 == (undefined4 *)0x0) {\n    puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    *puVar10 = 0;\n    puVar10[1] = 0;\n    puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    uVar11 = *(undefined4 *)(puVar2 + 0x355c);\n    puVar10[4] = 0;\n    puVar10[5] = 0xffffffff;\n    puVar10[9] = 0;\n    puVar10[0xc] = 0;\n    puVar10[6] = puVar10 + 0xc;\n    puVar10[7] = 1;\n    puVar10[8] = 0;\n    puVar10[10] = uVar11;\n    puVar10[0xb] = 0;\n    puVar10[0x10] = 0;\n    puVar10[0x13] = 0;\n    puVar10[0xd] = puVar10 + 0x13;\n    puVar10[0xe] = 1;\n    puVar10[0xf] = 0;\n    puVar10[0x11] = uVar11;\n    puVar10[0x12] = 0;\n    puVar10[0x17] = 0;\n    puVar10[0x1a] = 0;\n    puVar10[0x14] = puVar10 + 0x1a;\n    puVar10[0x15] = 1;\n    puVar10[0x16] = 0;\n    puVar10[0x18] = uVar11;\n    puVar10[0x19] = 0;\n    puVar10[0x1b] = 0;\n    puVar10[0x1c] = 0;\n    puVar10[0x20] = 0;\n    puVar10[0x23] = 0;\n    puVar10[0x1d] = puVar10 + 0x23;\n    puVar10[0x21] = uVar11;\n    puVar10[0x1e] = 1;\n    puVar10[0x1f] = 0;\n    puVar10[0x22] = 0;\n    puVar10[0x24] = 0;\n    puVar10[0x25] = 0xffffffff;\n    puVar10[0x26] = 0;\n    *(undefined4 **)(param_2 + 0x1fc) = puVar10;\n  }\n  piVar4 = (int *)local_28[0][2];\n  piVar7 = local_28[0] + 2;\n  if (piVar4 != (int *)0x0) {\n    iVar9 = piVar4[2];\n    while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }\n    iVar9 = piVar1[1];\n    if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }\n  }\nLAB_000e13a8:\n  piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  iVar9 = *(int *)(param_1 + 4);\n  *piVar4 = 0;\n  iVar3 = *piVar7;\n  piVar4[1] = param_4;\n  piVar4[2] = param_4;\n  *piVar4 = iVar3;\n  *piVar7 = (int)piVar4;\n  *(int *)(param_1 + 4) = iVar9 + 1;\n  puVar10[1] = puVar10[1] + 1;\n  return;\n}" primitive_type (function_declarator "FUN_000e12c0(int param_1,int param_2,int param_3,int param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  undefined1 auStack_30 [8];\n  int *local_28 [2];\n  int local_20 [3];\n  \n  local_28[0] = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  iVar9 = param_1 + 0x50;\n  *local_28[0] = param_2;\n  local_28[0][1] = param_3;\n  local_28[0][2] = 0;\n  FUN_000d0184(local_20,iVar9,local_28);\n  if (local_20[0] == 0) {\n    FUN_000d9ec4(auStack_30,iVar9);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  else {\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  if (puVar10 == (undefined4 *)0x0) {\n    puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    *puVar10 = 0;\n    puVar10[1] = 0;\n    puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    uVar11 = *(undefined4 *)(puVar2 + 0x355c);\n    puVar10[4] = 0;\n    puVar10[5] = 0xffffffff;\n    puVar10[9] = 0;\n    puVar10[0xc] = 0;\n    puVar10[6] = puVar10 + 0xc;\n    puVar10[7] = 1;\n    puVar10[8] = 0;\n    puVar10[10] = uVar11;\n    puVar10[0xb] = 0;\n    puVar10[0x10] = 0;\n    puVar10[0x13] = 0;\n    puVar10[0xd] = puVar10 + 0x13;\n    puVar10[0xe] = 1;\n    puVar10[0xf] = 0;\n    puVar10[0x11] = uVar11;\n    puVar10[0x12] = 0;\n    puVar10[0x17] = 0;\n    puVar10[0x1a] = 0;\n    puVar10[0x14] = puVar10 + 0x1a;\n    puVar10[0x15] = 1;\n    puVar10[0x16] = 0;\n    puVar10[0x18] = uVar11;\n    puVar10[0x19] = 0;\n    puVar10[0x1b] = 0;\n    puVar10[0x1c] = 0;\n    puVar10[0x20] = 0;\n    puVar10[0x23] = 0;\n    puVar10[0x1d] = puVar10 + 0x23;\n    puVar10[0x21] = uVar11;\n    puVar10[0x1e] = 1;\n    puVar10[0x1f] = 0;\n    puVar10[0x22] = 0;\n    puVar10[0x24] = 0;\n    puVar10[0x25] = 0xffffffff;\n    puVar10[0x26] = 0;\n    *(undefined4 **)(param_2 + 0x1fc) = puVar10;\n  }\n  piVar4 = (int *)local_28[0][2];\n  piVar7 = local_28[0] + 2;\n  if (piVar4 != (int *)0x0) {\n    iVar9 = piVar4[2];\n    while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }\n    iVar9 = piVar1[1];\n    if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }\n  }\nLAB_000e13a8:\n  piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  iVar9 = *(int *)(param_1 + 4);\n  *piVar4 = 0;\n  iVar3 = *piVar7;\n  piVar4[1] = param_4;\n  piVar4[2] = param_4;\n  *piVar4 = iVar3;\n  *piVar7 = (int)piVar4;\n  *(int *)(param_1 + 4) = iVar9 + 1;\n  puVar10[1] = puVar10[1] + 1;\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined1 auStack_30 [8];" type_identifier (array_declarator "auStack_30 [8]" identifier [ number_literal ]) ;) (declaration "int *local_28 [2];" primitive_type (pointer_declarator "*local_28 [2]" * (array_declarator "local_28 [2]" identifier [ number_literal ])) ;) (declaration "int local_20 [3];" primitive_type (array_declarator "local_20 [3]" identifier [ number_literal ]) ;) (expression_statement "local_28[0] = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "local_28[0] = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (subscript_expression "local_28[0]" identifier [ number_literal ]) = (cast_expression "(int *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "iVar9 = param_1 + 0x50;" (assignment_expression "iVar9 = param_1 + 0x50" identifier = (binary_expression "param_1 + 0x50" identifier + number_literal)) ;) (expression_statement "*local_28[0] = param_2;" (assignment_expression "*local_28[0] = param_2" (pointer_expression "*local_28[0]" * (subscript_expression "local_28[0]" identifier [ number_literal ])) = identifier) ;) (expression_statement "local_28[0][1] = param_3;" (assignment_expression "local_28[0][1] = param_3" (subscript_expression "local_28[0][1]" (subscript_expression "local_28[0]" identifier [ number_literal ]) [ number_literal ]) = identifier) ;) (expression_statement "local_28[0][2] = 0;" (assignment_expression "local_28[0][2] = 0" (subscript_expression "local_28[0][2]" (subscript_expression "local_28[0]" identifier [ number_literal ]) [ number_literal ]) = number_literal) ;) (expression_statement "FUN_000d0184(local_20,iVar9,local_28);" (call_expression "FUN_000d0184(local_20,iVar9,local_28)" identifier (argument_list "(local_20,iVar9,local_28)" ( identifier , identifier , identifier ))) ;) (if_statement "if (local_20[0] == 0) {\n    FUN_000d9ec4(auStack_30,iVar9);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  else {\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }" if (parenthesized_expression "(local_20[0] == 0)" ( (binary_expression "local_20[0] == 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    FUN_000d9ec4(auStack_30,iVar9);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }" { (expression_statement "FUN_000d9ec4(auStack_30,iVar9);" (call_expression "FUN_000d9ec4(auStack_30,iVar9)" identifier (argument_list "(auStack_30,iVar9)" ( identifier , identifier ))) ;) (expression_statement "puVar10 = *(undefined4 **)(param_2 + 0x1fc);" (assignment_expression "puVar10 = *(undefined4 **)(param_2 + 0x1fc)" identifier = (pointer_expression "*(undefined4 **)(param_2 + 0x1fc)" * (cast_expression "(undefined4 **)(param_2 + 0x1fc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1fc)" ( (binary_expression "param_2 + 0x1fc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }" else (compound_statement "{\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }" { (expression_statement "local_28[0] = *(int **)(local_20[0] + 4);" (assignment_expression "local_28[0] = *(int **)(local_20[0] + 4)" (subscript_expression "local_28[0]" identifier [ number_literal ]) = (pointer_expression "*(int **)(local_20[0] + 4)" * (cast_expression "(int **)(local_20[0] + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20[0] + 4)" ( (binary_expression "local_20[0] + 4" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "puVar10 = *(undefined4 **)(param_2 + 0x1fc);" (assignment_expression "puVar10 = *(undefined4 **)(param_2 + 0x1fc)" identifier = (pointer_expression "*(undefined4 **)(param_2 + 0x1fc)" * (cast_expression "(undefined4 **)(param_2 + 0x1fc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1fc)" ( (binary_expression "param_2 + 0x1fc" identifier + number_literal) ))))) ;) }))) (if_statement "if (puVar10 == (undefined4 *)0x0) {\n    puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    *puVar10 = 0;\n    puVar10[1] = 0;\n    puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    uVar11 = *(undefined4 *)(puVar2 + 0x355c);\n    puVar10[4] = 0;\n    puVar10[5] = 0xffffffff;\n    puVar10[9] = 0;\n    puVar10[0xc] = 0;\n    puVar10[6] = puVar10 + 0xc;\n    puVar10[7] = 1;\n    puVar10[8] = 0;\n    puVar10[10] = uVar11;\n    puVar10[0xb] = 0;\n    puVar10[0x10] = 0;\n    puVar10[0x13] = 0;\n    puVar10[0xd] = puVar10 + 0x13;\n    puVar10[0xe] = 1;\n    puVar10[0xf] = 0;\n    puVar10[0x11] = uVar11;\n    puVar10[0x12] = 0;\n    puVar10[0x17] = 0;\n    puVar10[0x1a] = 0;\n    puVar10[0x14] = puVar10 + 0x1a;\n    puVar10[0x15] = 1;\n    puVar10[0x16] = 0;\n    puVar10[0x18] = uVar11;\n    puVar10[0x19] = 0;\n    puVar10[0x1b] = 0;\n    puVar10[0x1c] = 0;\n    puVar10[0x20] = 0;\n    puVar10[0x23] = 0;\n    puVar10[0x1d] = puVar10 + 0x23;\n    puVar10[0x21] = uVar11;\n    puVar10[0x1e] = 1;\n    puVar10[0x1f] = 0;\n    puVar10[0x22] = 0;\n    puVar10[0x24] = 0;\n    puVar10[0x25] = 0xffffffff;\n    puVar10[0x26] = 0;\n    *(undefined4 **)(param_2 + 0x1fc) = puVar10;\n  }" if (parenthesized_expression "(puVar10 == (undefined4 *)0x0)" ( (binary_expression "puVar10 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    *puVar10 = 0;\n    puVar10[1] = 0;\n    puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    uVar11 = *(undefined4 *)(puVar2 + 0x355c);\n    puVar10[4] = 0;\n    puVar10[5] = 0xffffffff;\n    puVar10[9] = 0;\n    puVar10[0xc] = 0;\n    puVar10[6] = puVar10 + 0xc;\n    puVar10[7] = 1;\n    puVar10[8] = 0;\n    puVar10[10] = uVar11;\n    puVar10[0xb] = 0;\n    puVar10[0x10] = 0;\n    puVar10[0x13] = 0;\n    puVar10[0xd] = puVar10 + 0x13;\n    puVar10[0xe] = 1;\n    puVar10[0xf] = 0;\n    puVar10[0x11] = uVar11;\n    puVar10[0x12] = 0;\n    puVar10[0x17] = 0;\n    puVar10[0x1a] = 0;\n    puVar10[0x14] = puVar10 + 0x1a;\n    puVar10[0x15] = 1;\n    puVar10[0x16] = 0;\n    puVar10[0x18] = uVar11;\n    puVar10[0x19] = 0;\n    puVar10[0x1b] = 0;\n    puVar10[0x1c] = 0;\n    puVar10[0x20] = 0;\n    puVar10[0x23] = 0;\n    puVar10[0x1d] = puVar10 + 0x23;\n    puVar10[0x21] = uVar11;\n    puVar10[0x1e] = 1;\n    puVar10[0x1f] = 0;\n    puVar10[0x22] = 0;\n    puVar10[0x24] = 0;\n    puVar10[0x25] = 0xffffffff;\n    puVar10[0x26] = 0;\n    *(undefined4 **)(param_2 + 0x1fc) = puVar10;\n  }" { (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x9c)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x9c)" ( number_literal ))))) ;) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar10[1] = 0;" (assignment_expression "puVar10[1] = 0" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;" (assignment_expression "puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c" identifier = identifier) ;) (expression_statement "puVar10[2] = 0;" (assignment_expression "puVar10[2] = 0" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[3] = 0;" (assignment_expression "puVar10[3] = 0" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar11 = *(undefined4 *)(puVar2 + 0x355c);" (assignment_expression "uVar11 = *(undefined4 *)(puVar2 + 0x355c)" identifier = (pointer_expression "*(undefined4 *)(puVar2 + 0x355c)" * (cast_expression "(undefined4 *)(puVar2 + 0x355c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x355c)" ( (binary_expression "puVar2 + 0x355c" identifier + number_literal) ))))) ;) (expression_statement "puVar10[4] = 0;" (assignment_expression "puVar10[4] = 0" (subscript_expression "puVar10[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[5] = 0xffffffff;" (assignment_expression "puVar10[5] = 0xffffffff" (subscript_expression "puVar10[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[9] = 0;" (assignment_expression "puVar10[9] = 0" (subscript_expression "puVar10[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0xc] = 0;" (assignment_expression "puVar10[0xc] = 0" (subscript_expression "puVar10[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[6] = puVar10 + 0xc;" (assignment_expression "puVar10[6] = puVar10 + 0xc" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (binary_expression "puVar10 + 0xc" identifier + number_literal)) ;) (expression_statement "puVar10[7] = 1;" (assignment_expression "puVar10[7] = 1" (subscript_expression "puVar10[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[8] = 0;" (assignment_expression "puVar10[8] = 0" (subscript_expression "puVar10[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[10] = uVar11;" (assignment_expression "puVar10[10] = uVar11" (subscript_expression "puVar10[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[0xb] = 0;" (assignment_expression "puVar10[0xb] = 0" (subscript_expression "puVar10[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x10] = 0;" (assignment_expression "puVar10[0x10] = 0" (subscript_expression "puVar10[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x13] = 0;" (assignment_expression "puVar10[0x13] = 0" (subscript_expression "puVar10[0x13]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0xd] = puVar10 + 0x13;" (assignment_expression "puVar10[0xd] = puVar10 + 0x13" (subscript_expression "puVar10[0xd]" identifier [ number_literal ]) = (binary_expression "puVar10 + 0x13" identifier + number_literal)) ;) (expression_statement "puVar10[0xe] = 1;" (assignment_expression "puVar10[0xe] = 1" (subscript_expression "puVar10[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0xf] = 0;" (assignment_expression "puVar10[0xf] = 0" (subscript_expression "puVar10[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x11] = uVar11;" (assignment_expression "puVar10[0x11] = uVar11" (subscript_expression "puVar10[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[0x12] = 0;" (assignment_expression "puVar10[0x12] = 0" (subscript_expression "puVar10[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x17] = 0;" (assignment_expression "puVar10[0x17] = 0" (subscript_expression "puVar10[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x1a] = 0;" (assignment_expression "puVar10[0x1a] = 0" (subscript_expression "puVar10[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x14] = puVar10 + 0x1a;" (assignment_expression "puVar10[0x14] = puVar10 + 0x1a" (subscript_expression "puVar10[0x14]" identifier [ number_literal ]) = (binary_expression "puVar10 + 0x1a" identifier + number_literal)) ;) (expression_statement "puVar10[0x15] = 1;" (assignment_expression "puVar10[0x15] = 1" (subscript_expression "puVar10[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x16] = 0;" (assignment_expression "puVar10[0x16] = 0" (subscript_expression "puVar10[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x18] = uVar11;" (assignment_expression "puVar10[0x18] = uVar11" (subscript_expression "puVar10[0x18]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[0x19] = 0;" (assignment_expression "puVar10[0x19] = 0" (subscript_expression "puVar10[0x19]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x1b] = 0;" (assignment_expression "puVar10[0x1b] = 0" (subscript_expression "puVar10[0x1b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x1c] = 0;" (assignment_expression "puVar10[0x1c] = 0" (subscript_expression "puVar10[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x20] = 0;" (assignment_expression "puVar10[0x20] = 0" (subscript_expression "puVar10[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x23] = 0;" (assignment_expression "puVar10[0x23] = 0" (subscript_expression "puVar10[0x23]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x1d] = puVar10 + 0x23;" (assignment_expression "puVar10[0x1d] = puVar10 + 0x23" (subscript_expression "puVar10[0x1d]" identifier [ number_literal ]) = (binary_expression "puVar10 + 0x23" identifier + number_literal)) ;) (expression_statement "puVar10[0x21] = uVar11;" (assignment_expression "puVar10[0x21] = uVar11" (subscript_expression "puVar10[0x21]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[0x1e] = 1;" (assignment_expression "puVar10[0x1e] = 1" (subscript_expression "puVar10[0x1e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x1f] = 0;" (assignment_expression "puVar10[0x1f] = 0" (subscript_expression "puVar10[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x22] = 0;" (assignment_expression "puVar10[0x22] = 0" (subscript_expression "puVar10[0x22]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x24] = 0;" (assignment_expression "puVar10[0x24] = 0" (subscript_expression "puVar10[0x24]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x25] = 0xffffffff;" (assignment_expression "puVar10[0x25] = 0xffffffff" (subscript_expression "puVar10[0x25]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x26] = 0;" (assignment_expression "puVar10[0x26] = 0" (subscript_expression "puVar10[0x26]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(param_2 + 0x1fc) = puVar10;" (assignment_expression "*(undefined4 **)(param_2 + 0x1fc) = puVar10" (pointer_expression "*(undefined4 **)(param_2 + 0x1fc)" * (cast_expression "(undefined4 **)(param_2 + 0x1fc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1fc)" ( (binary_expression "param_2 + 0x1fc" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "piVar4 = (int *)local_28[0][2];" (assignment_expression "piVar4 = (int *)local_28[0][2]" identifier = (cast_expression "(int *)local_28[0][2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[0][2]" (subscript_expression "local_28[0]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "piVar7 = local_28[0] + 2;" (assignment_expression "piVar7 = local_28[0] + 2" identifier = (binary_expression "local_28[0] + 2" (subscript_expression "local_28[0]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (piVar4 != (int *)0x0) {\n    iVar9 = piVar4[2];\n    while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }\n    iVar9 = piVar1[1];\n    if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }\n  }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar9 = piVar4[2];\n    while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }\n    iVar9 = piVar1[1];\n    if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }\n  }" { (expression_statement "iVar9 = piVar4[2];" (assignment_expression "iVar9 = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (while_statement "while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }" while (parenthesized_expression "(piVar1 = piVar4, iVar9 + 0xffff < param_4)" ( (comma_expression "piVar1 = piVar4, iVar9 + 0xffff < param_4" (assignment_expression "piVar1 = piVar4" identifier = identifier) , (binary_expression "iVar9 + 0xffff < param_4" (binary_expression "iVar9 + 0xffff" identifier + number_literal) < identifier)) )) (compound_statement "{\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }" { (expression_statement "piVar4 = (int *)*piVar1;" (assignment_expression "piVar4 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (expression_statement "piVar7 = piVar1;" (assignment_expression "piVar7 = piVar1" identifier = identifier) ;) (if_statement "if (piVar4 == (int *)0x0) goto LAB_000e13a8;" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e13a8;" goto statement_identifier ;)) (expression_statement "iVar9 = piVar4[2];" (assignment_expression "iVar9 = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) })) (expression_statement "iVar9 = piVar1[1];" (assignment_expression "iVar9 = piVar1[1]" identifier = (subscript_expression "piVar1[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }" if (parenthesized_expression "(iVar9 + -0xffff <= param_4)" ( (binary_expression "iVar9 + -0xffff <= param_4" (binary_expression "iVar9 + -0xffff" identifier + number_literal) <= identifier) )) (compound_statement "{\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }" { (expression_statement "iVar3 = piVar1[2];" (assignment_expression "iVar3 = piVar1[2]" identifier = (subscript_expression "piVar1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;" (assignment_expression "iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10" identifier = (binary_expression "(iVar3 - iVar9) + 0x1ffff >> 0x10" (binary_expression "(iVar3 - iVar9) + 0x1ffff" (parenthesized_expression "(iVar3 - iVar9)" ( (binary_expression "iVar3 - iVar9" identifier - identifier) )) + number_literal) >> number_literal)) ;) (if_statement "if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }" if (parenthesized_expression "(param_4 < iVar9)" ( (binary_expression "param_4 < iVar9" identifier < identifier) )) (compound_statement "{\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }" { (expression_statement "piVar1[1] = param_4;" (assignment_expression "piVar1[1] = param_4" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;" (assignment_expression "iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10" identifier = (binary_expression "(iVar3 - param_4) + 0x1ffff >> 0x10" (binary_expression "(iVar3 - param_4) + 0x1ffff" (parenthesized_expression "(iVar3 - param_4)" ( (binary_expression "iVar3 - param_4" identifier - identifier) )) + number_literal) >> number_literal)) ;) }) (else_clause "else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }" else (compound_statement "{\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }" { (if_statement "if (param_4 <= iVar3) {\n          return;\n        }" if (parenthesized_expression "(param_4 <= iVar3)" ( (binary_expression "param_4 <= iVar3" identifier <= identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "piVar7 = (int *)*piVar1;" (assignment_expression "piVar7 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (if_statement "if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }" if (parenthesized_expression "((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff))" ( (binary_expression "(piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)" (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)" ( (comma_expression "iVar3 = piVar7[1], param_4 < iVar3 + -0xffff" (assignment_expression "iVar3 = piVar7[1]" identifier = (subscript_expression "piVar7[1]" identifier [ number_literal ])) , (binary_expression "param_4 < iVar3 + -0xffff" identifier < (binary_expression "iVar3 + -0xffff" identifier + number_literal))) ))) )) (compound_statement "{\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }" { (expression_statement "piVar1[2] = param_4;" (assignment_expression "piVar1[2] = param_4" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;" (assignment_expression "iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10" identifier = (binary_expression "(param_4 - iVar9) + 0x1ffff >> 0x10" (binary_expression "(param_4 - iVar9) + 0x1ffff" (parenthesized_expression "(param_4 - iVar9)" ( (binary_expression "param_4 - iVar9" identifier - identifier) )) + number_literal) >> number_literal)) ;) }) (else_clause "else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }" else (compound_statement "{\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }" { (expression_statement "iVar5 = piVar7[2];" (assignment_expression "iVar5 = piVar7[2]" identifier = (subscript_expression "piVar7[2]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = *piVar7;" (assignment_expression "iVar8 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "piVar1[2] = iVar5;" (assignment_expression "piVar1[2] = iVar5" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar1 = iVar8;" (assignment_expression "*piVar1 = iVar8" (pointer_expression "*piVar1" * identifier) = identifier) ;) (expression_statement "iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;" (assignment_expression "iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10" identifier = (binary_expression "(iVar5 - iVar9) + 0x1ffff >> 0x10" (binary_expression "(iVar5 - iVar9) + 0x1ffff" (parenthesized_expression "(iVar5 - iVar9)" ( (binary_expression "iVar5 - iVar9" identifier - identifier) )) + number_literal) >> number_literal)) ;) (expression_statement "iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);" (assignment_expression "iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10)" identifier = (binary_expression "iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10)" identifier + (parenthesized_expression "((iVar5 - iVar3) + 0x1ffff >> 0x10)" ( (binary_expression "(iVar5 - iVar3) + 0x1ffff >> 0x10" (binary_expression "(iVar5 - iVar3) + 0x1ffff" (parenthesized_expression "(iVar5 - iVar3)" ( (binary_expression "iVar5 - iVar3" identifier - identifier) )) + number_literal) >> number_literal) )))) ;) }))) }))) (if_statement "if (iVar6 == iVar9) {\n        return;\n      }" if (parenthesized_expression "(iVar6 == iVar9)" ( (binary_expression "iVar6 == iVar9" identifier == identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);" (assignment_expression "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6)" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 4) + (iVar9 - iVar6)" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + (parenthesized_expression "(iVar9 - iVar6)" ( (binary_expression "iVar9 - iVar6" identifier - identifier) )))) ;) (expression_statement "puVar10[1] = puVar10[1] + (iVar9 - iVar6);" (assignment_expression "puVar10[1] = puVar10[1] + (iVar9 - iVar6)" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = (binary_expression "puVar10[1] + (iVar9 - iVar6)" (subscript_expression "puVar10[1]" identifier [ number_literal ]) + (parenthesized_expression "(iVar9 - iVar6)" ( (binary_expression "iVar9 - iVar6" identifier - identifier) )))) ;) (return_statement "return;" return ;) })) })) (labeled_statement "LAB_000e13a8:\n  piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);" statement_identifier : (expression_statement "piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(int *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;)) (expression_statement "iVar9 = *(int *)(param_1 + 4);" (assignment_expression "iVar9 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "*piVar4 = 0;" (assignment_expression "*piVar4 = 0" (pointer_expression "*piVar4" * identifier) = number_literal) ;) (expression_statement "iVar3 = *piVar7;" (assignment_expression "iVar3 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "piVar4[1] = param_4;" (assignment_expression "piVar4[1] = param_4" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[2] = param_4;" (assignment_expression "piVar4[2] = param_4" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar4 = iVar3;" (assignment_expression "*piVar4 = iVar3" (pointer_expression "*piVar4" * identifier) = identifier) ;) (expression_statement "*piVar7 = (int)piVar4;" (assignment_expression "*piVar7 = (int)piVar4" (pointer_expression "*piVar7" * identifier) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(int *)(param_1 + 4) = iVar9 + 1;" (assignment_expression "*(int *)(param_1 + 4) = iVar9 + 1" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "puVar10[1] = puVar10[1] + 1;" (assignment_expression "puVar10[1] = puVar10[1] + 1" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = (binary_expression "puVar10[1] + 1" (subscript_expression "puVar10[1]" identifier [ number_literal ]) + number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* DWARF original prototype: void record_got_page_entry(Mips_got_info<64,_true> * this,\n   Mips_relobj<64,_true> * object, uint symndx, int addend) */\n\nvoid __thiscall\nanon_unknown.dwarf_29466b::Mips_got_info<64,_true>::record_got_page_entry\n          (Mips_got_info<64,_true> *this,Mips_relobj<64,_true> *object,uint symndx,int addend)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  Got_page_range *pGVar4;\n  uint uVar5;\n  Got_page_range *pGVar6;\n  int iVar7;\n  int iVar8;\n  Got_page_range *pGVar9;\n  Got_page_entry_set *__k;\n  Mips_got_info<64,_true> *pMVar10;\n  float fVar11;\n  _Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  a_Stack_30 [8];\n  Got_page_entry *entry;\n  int local_20 [3];\n  \n  entry = (Got_page_entry *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  __k = &this->got_page_entries_;\n  entry->object = (Object *)object;\n  entry->symndx = symndx;\n  entry->ranges = (Got_page_range *)0x0;\n  std::\n  _Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  ::find((_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          *)local_20,(key_type *)__k);\n  if (local_20[0] == 0) {\n    std::\n    _Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n    ::\n    _M_insert<(anonymous_namespace)::Got_page_entry*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>_>\n              (a_Stack_30,__k);\n    pMVar10 = object->got_info_;\n  }\n  else {\n    entry = *(Got_page_entry **)(local_20[0] + 4);\n    pMVar10 = object->got_info_;\n  }\n  if (pMVar10 == (Mips_got_info<64,_true> *)0x0) {\n    pMVar10 = (Mips_got_info<64,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    pMVar10->local_gotno_ = 0;\n    pMVar10->page_gotno_ = 0;\n    puVar1 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    pMVar10->global_gotno_ = 0;\n    pMVar10->reloc_only_gotno_ = 0;\n    fVar11 = *(float *)(puVar1 + 0x355c);\n    pMVar10->tls_gotno_ = 0;\n    pMVar10->tls_ldm_offset_ = 0xffffffff;\n    (pMVar10->global_got_symbols_)._M_h._M_element_count = 0;\n    (pMVar10->global_got_symbols_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    (pMVar10->global_got_symbols_)._M_h._M_buckets =\n         &(pMVar10->global_got_symbols_)._M_h._M_single_bucket;\n    (pMVar10->global_got_symbols_)._M_h._M_bucket_count = 1;\n    (pMVar10->global_got_symbols_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pMVar10->global_got_symbols_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;\n    (pMVar10->global_got_symbols_)._M_h._M_rehash_policy._M_next_resize = 0;\n    (pMVar10->got_entries_)._M_h._M_element_count = 0;\n    (pMVar10->got_entries_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    (pMVar10->got_entries_)._M_h._M_buckets = &(pMVar10->got_entries_)._M_h._M_single_bucket;\n    (pMVar10->got_entries_)._M_h._M_bucket_count = 1;\n    (pMVar10->got_entries_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pMVar10->got_entries_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;\n    (pMVar10->got_entries_)._M_h._M_rehash_policy._M_next_resize = 0;\n    (pMVar10->got_page_entries_)._M_h._M_element_count = 0;\n    (pMVar10->got_page_entries_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    (pMVar10->got_page_entries_)._M_h._M_buckets =\n         &(pMVar10->got_page_entries_)._M_h._M_single_bucket;\n    (pMVar10->got_page_entries_)._M_h._M_bucket_count = 1;\n    (pMVar10->got_page_entries_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pMVar10->got_page_entries_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;\n    (pMVar10->got_page_entries_)._M_h._M_rehash_policy._M_next_resize = 0;\n    pMVar10->got_page_offset_start_ = 0;\n    pMVar10->got_page_offset_next_ = 0;\n    (pMVar10->got_page_offsets_)._M_h._M_element_count = 0;\n    (pMVar10->got_page_offsets_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    (pMVar10->got_page_offsets_)._M_h._M_buckets =\n         &(pMVar10->got_page_offsets_)._M_h._M_single_bucket;\n    (pMVar10->got_page_offsets_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;\n    (pMVar10->got_page_offsets_)._M_h._M_bucket_count = 1;\n    (pMVar10->got_page_offsets_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pMVar10->got_page_offsets_)._M_h._M_rehash_policy._M_next_resize = 0;\n    pMVar10->next_ = (Mips_got_info<64,_true> *)0x0;\n    pMVar10->index_ = 0xffffffff;\n    pMVar10->offset_ = 0;\n    object->got_info_ = pMVar10;\n  }\n  pGVar4 = entry->ranges;\n  pGVar9 = (Got_page_range *)&entry->ranges;\n  if (pGVar4 != (Got_page_range *)0x0) {\n    iVar2 = pGVar4->max_addend;\n    while (pGVar6 = pGVar4, iVar2 + 0xffff < addend) {\n      pGVar4 = pGVar6->next;\n      pGVar9 = pGVar6;\n      if (pGVar4 == (Got_page_range *)0x0) goto LAB_000e13a8;\n      iVar2 = pGVar4->max_addend;\n    }\n    iVar2 = pGVar6->min_addend;\n    if (iVar2 + -0xffff <= addend) {\n      iVar3 = pGVar6->max_addend;\n      iVar8 = (iVar3 - iVar2) + 0x1ffff >> 0x10;\n      if (addend < iVar2) {\n        pGVar6->min_addend = addend;\n        iVar2 = (iVar3 - addend) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (addend <= iVar3) {\n          return;\n        }\n        pGVar9 = pGVar6->next;\n        if ((pGVar9 == (Got_page_range *)0x0) ||\n           (iVar3 = pGVar9->min_addend, addend < iVar3 + -0xffff)) {\n          pGVar6->max_addend = addend;\n          iVar2 = (addend - iVar2) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar7 = pGVar9->max_addend;\n          pGVar9 = pGVar9->next;\n          pGVar6->max_addend = iVar7;\n          pGVar6->next = pGVar9;\n          iVar2 = (iVar7 - iVar2) + 0x1ffff >> 0x10;\n          iVar8 = iVar8 + ((iVar7 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar8 == iVar2) {\n        return;\n      }\n      this->page_gotno_ = this->page_gotno_ + (iVar2 - iVar8);\n      pMVar10->page_gotno_ = pMVar10->page_gotno_ + (iVar2 - iVar8);\n      return;\n    }\n  }\nLAB_000e13a8:\n  pGVar4 = (Got_page_range *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  uVar5 = this->page_gotno_;\n  pGVar4->next = (Got_page_range *)0x0;\n  pGVar6 = pGVar9->next;\n  pGVar4->min_addend = addend;\n  pGVar4->max_addend = addend;\n  pGVar4->next = pGVar6;\n  pGVar9->next = pGVar4;\n  this->page_gotno_ = uVar5 + 1;\n  pMVar10->page_gotno_ = pMVar10->page_gotno_ + 1;\n  return;\n}\n\n" comment comment comment (declaration "void __thiscall\nanon_unknown.dwarf_29466b::Mips_got_info<64,_true>::record_got_page_entry\n          (Mips_got_info<64,_true> *this,Mips_relobj<64,_true> *object,uint symndx,int addend)\n\n{\n  undefined *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_29466b::" identifier . identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>::record_got_page_entry\n          (Mips_got_info<64,_true> *this,Mips_relobj<64,_true> *object,uint symndx,int addend)\n\n{\n  undefined" identifier > : : (function_declarator "record_got_page_entry\n          (Mips_got_info<64,_true> *this,Mips_relobj<64,_true> *object,uint symndx,int addend)" identifier (parameter_list "(Mips_got_info<64,_true> *this,Mips_relobj<64,_true> *object,uint symndx,int addend)" ( (parameter_declaration "Mips_got_info" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Mips_relobj" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_true> *object" type_identifier (ERROR ">" >) (pointer_declarator "*object" * identifier)) , (parameter_declaration "uint symndx" type_identifier identifier) , (parameter_declaration "int addend" primitive_type identifier) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "Got_page_range *pGVar4;" type_identifier (pointer_declarator "*pGVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "Got_page_range *pGVar6;" type_identifier (pointer_declarator "*pGVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "Got_page_range *pGVar9;" type_identifier (pointer_declarator "*pGVar9" * identifier) ;) (declaration "Got_page_entry_set *__k;" type_identifier (pointer_declarator "*__k" * identifier) ;) (expression_statement "Mips_got_info<64,_true> *pMVar10;" (update_expression "Mips_got_info<64,_true> *pMVar10" (binary_expression "Mips_got_info<64,_true> *pMVar10" (binary_expression "Mips_got_info<64" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*pMVar10" * identifier)) --) ;) (declaration "float fVar11;" primitive_type identifier ;) (ERROR "_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity," (binary_expression "_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std" (binary_expression "_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)" (binary_expression "_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std" (binary_expression "_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)" (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Got_page_entry" : : identifier) * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) (ERROR "::Got_page_entry" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Got_page_entry" : : identifier) * (ERROR ">," > ,) identifier) : : identifier : : identifier ,) (declaration "_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  a_Stack_30 [8];" type_identifier (parenthesized_declarator "(anonymous_namespace)" ( identifier )) (ERROR "::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash" : : identifier , (function_declarator "_(anonymous_namespace)::Got_page_entry_hash" identifier (parameter_list "(anonymous_namespace)" ( (parameter_declaration "anonymous_namespace" type_identifier) )) (ERROR "::" : :) identifier)) , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier (ERROR "<true" < true) , identifier , (ERROR "_true>_>" identifier > identifier >) (array_declarator "a_Stack_30 [8]" identifier [ number_literal ]) ;) (declaration "Got_page_entry *entry;" type_identifier (pointer_declarator "*entry" * identifier) ;) (declaration "int local_20 [3];" primitive_type (array_declarator "local_20 [3]" identifier [ number_literal ]) ;) (expression_statement "entry = (Got_page_entry *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "entry = (Got_page_entry *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(Got_page_entry *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "Got_page_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "__k = &this->got_page_entries_;" (assignment_expression "__k = &this->got_page_entries_" identifier = (pointer_expression "&this->got_page_entries_" & (field_expression "this->got_page_entries_" identifier -> field_identifier))) ;) (expression_statement "entry->object = (Object *)object;" (assignment_expression "entry->object = (Object *)object" (field_expression "entry->object" identifier -> field_identifier) = (cast_expression "(Object *)object" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "entry->symndx = symndx;" (assignment_expression "entry->symndx = symndx" (field_expression "entry->symndx" identifier -> field_identifier) = identifier) ;) (expression_statement "entry->ranges = (Got_page_range *)0x0;" (assignment_expression "entry->ranges = (Got_page_range *)0x0" (field_expression "entry->ranges" identifier -> field_identifier) = (cast_expression "(Got_page_range *)0x0" ( (type_descriptor "Got_page_range *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "std::\n  _Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  ::find((_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          *)local_20,(key_type *)__k);" statement_identifier (ERROR "::\n  _Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std:" : : (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (binary_expression "Got_page_entry*,_(anonymous_namespace)" identifier * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (binary_expression "Got_page_entry*,_std" identifier * (ERROR "," ,) identifier) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Got_page_entry*>,_std" identifier (ERROR "*>" * >) , identifier) :) : (labeled_statement "__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  ::find((_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          *)local_20,(key_type *)__k);" statement_identifier (ERROR "::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std:" : : (comma_expression "_Identity,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Got_page_entry_eq,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Got_page_entry_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  ::find((_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          *)local_20,(key_type *)__k);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  ::find((_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          *)local_20,(key_type *)__k);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  ::find((_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          *)local_20,(key_type *)__k);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_true,_true>_>\n  ::find((_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          *)local_20,(key_type *)__k);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_true,_true>_>\n  ::find((_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          *)local_20,(key_type *)__k);" (comma_expression "_Hashtable_traits<true,_true,_true>_>\n  ::find((_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          *)local_20,(key_type *)__k)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n  ::find((_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          *)local_20,(key_type *)__k)" identifier , (binary_expression "_true>_>\n  ::find((_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          *)local_20,(key_type *)__k)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (call_expression "find((_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          *)local_20,(key_type *)__k)" identifier (argument_list "((_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          *)local_20,(key_type *)__k)" ( (parenthesized_expression "(_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          *)local_20,(key_type *)__k)" ( (ERROR "_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std" (binary_expression "_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)" (binary_expression "_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std" (binary_expression "_Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)" (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Got_page_entry" : : identifier) * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) (ERROR "::Got_page_entry" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Got_page_entry*>" : : identifier * >) , identifier) : : identifier : : (comma_expression "_Identity,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Got_page_entry_eq,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Got_page_entry_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n          *)local_20,(key_type *)__k" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n          *)local_20,(key_type *)__k" identifier , (comma_expression "_true>_>\n          *)local_20,(key_type *)__k" (binary_expression "_true>_>\n          *)local_20" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*)local_20" * (ERROR ")" )) identifier)) , (cast_expression "(key_type *)__k" ( (type_descriptor "key_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) )) )))))) ;))))))) (if_statement "if (local_20[0] == 0) {\n    std::\n    _Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n    ::\n    _M_insert<(anonymous_namespace)::Got_page_entry*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>_>\n              (a_Stack_30,__k);\n    pMVar10 = object->got_info_;\n  }\n  else {\n    entry = *(Got_page_entry **)(local_20[0] + 4);\n    pMVar10 = object->got_info_;\n  }" if (parenthesized_expression "(local_20[0] == 0)" ( (binary_expression "local_20[0] == 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    std::\n    _Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n    ::\n    _M_insert<(anonymous_namespace)::Got_page_entry*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>_>\n              (a_Stack_30,__k);\n    pMVar10 = object->got_info_;\n  }" { (ERROR "std::\n    _Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)::Got_page_entry*,_std::allocator<(anonymous_namespace)::Got_page_entry*>,_std::" (comma_expression "std::\n    _Hashtable<(anonymous_namespace)::Got_page_entry*,_(anonymous_namespace)" identifier (ERROR "::\n    _Hashtable<(anonymous_namespace)::Got_page_entry*" : : (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : identifier *) , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (binary_expression "Got_page_entry*,_std" identifier * (ERROR "," ,) identifier) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Got_page_entry*>,_std" identifier (ERROR "*>" * >) , identifier) : :) (labeled_statement "__detail::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n    ::\n    _M_insert<(anonymous_namespace)::Got_page_entry*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>_>\n              (a_Stack_30,__k);" statement_identifier (ERROR "::_Identity,_(anonymous_namespace)::Got_page_entry_eq,_(anonymous_namespace)::Got_page_entry_hash,_std:" : : (comma_expression "_Identity,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Got_page_entry_eq,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Got_page_entry_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n    ::\n    _M_insert<(anonymous_namespace)::Got_page_entry*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>_>\n              (a_Stack_30,__k);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n    ::\n    _M_insert<(anonymous_namespace)::Got_page_entry*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>_>\n              (a_Stack_30,__k);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n    ::\n    _M_insert<(anonymous_namespace)::Got_page_entry*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>_>\n              (a_Stack_30,__k);" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n    ::\n    _M_insert<(anonymous_namespace)::Got_page_entry*_const&,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n    ::\n    _M_insert<(anonymous_namespace)::Got_page_entry*_const&,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n    ::\n    _M_insert<(anonymous_namespace)::Got_page_entry*_const&" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n    ::\n    _M_insert<(anonymous_namespace)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n    ::\n    _M_insert<(anonymous_namespace)" identifier , (binary_expression "_true>_>\n    ::\n    _M_insert<(anonymous_namespace)" (binary_expression "_true>_>\n    ::\n    _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))))) : : (binary_expression "Got_page_entry*_const" identifier * identifier) &) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>_>\n              (a_Stack_30,__k);" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (expression_statement "__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>_>\n              (a_Stack_30,__k);" (comma_expression "__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>_>\n              (a_Stack_30,__k)" identifier (ERROR "::_Hash_node<(anonymous_namespace)::Got_page_entry*" : : (binary_expression "_Hash_node<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : identifier *) , (binary_expression "_true>_>_>_>\n              (a_Stack_30,__k)" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "(a_Stack_30,__k)" ( (comma_expression "a_Stack_30,__k" identifier , identifier) )))) ;)))))) (expression_statement "pMVar10 = object->got_info_;" (assignment_expression "pMVar10 = object->got_info_" identifier = (field_expression "object->got_info_" identifier -> field_identifier)) ;) }) (else_clause "else {\n    entry = *(Got_page_entry **)(local_20[0] + 4);\n    pMVar10 = object->got_info_;\n  }" else (compound_statement "{\n    entry = *(Got_page_entry **)(local_20[0] + 4);\n    pMVar10 = object->got_info_;\n  }" { (expression_statement "entry = *(Got_page_entry **)(local_20[0] + 4);" (assignment_expression "entry = *(Got_page_entry **)(local_20[0] + 4)" identifier = (pointer_expression "*(Got_page_entry **)(local_20[0] + 4)" * (cast_expression "(Got_page_entry **)(local_20[0] + 4)" ( (type_descriptor "Got_page_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20[0] + 4)" ( (binary_expression "local_20[0] + 4" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "pMVar10 = object->got_info_;" (assignment_expression "pMVar10 = object->got_info_" identifier = (field_expression "object->got_info_" identifier -> field_identifier)) ;) }))) (if_statement "if (pMVar10 == (Mips_got_info<64,_true> *)0x0) {\n    pMVar10 = (Mips_got_info<64,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    pMVar10->local_gotno_ = 0;\n    pMVar10->page_gotno_ = 0;\n    puVar1 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    pMVar10->global_gotno_ = 0;\n    pMVar10->reloc_only_gotno_ = 0;\n    fVar11 = *(float *)(puVar1 + 0x355c);\n    pMVar10->tls_gotno_ = 0;\n    pMVar10->tls_ldm_offset_ = 0xffffffff;\n    (pMVar10->global_got_symbols_)._M_h._M_element_count = 0;\n    (pMVar10->global_got_symbols_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    (pMVar10->global_got_symbols_)._M_h._M_buckets =\n         &(pMVar10->global_got_symbols_)._M_h._M_single_bucket;\n    (pMVar10->global_got_symbols_)._M_h._M_bucket_count = 1;\n    (pMVar10->global_got_symbols_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pMVar10->global_got_symbols_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;\n    (pMVar10->global_got_symbols_)._M_h._M_rehash_policy._M_next_resize = 0;\n    (pMVar10->got_entries_)._M_h._M_element_count = 0;\n    (pMVar10->got_entries_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    (pMVar10->got_entries_)._M_h._M_buckets = &(pMVar10->got_entries_)._M_h._M_single_bucket;\n    (pMVar10->got_entries_)._M_h._M_bucket_count = 1;\n    (pMVar10->got_entries_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pMVar10->got_entries_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;\n    (pMVar10->got_entries_)._M_h._M_rehash_policy._M_next_resize = 0;\n    (pMVar10->got_page_entries_)._M_h._M_element_count = 0;\n    (pMVar10->got_page_entries_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    (pMVar10->got_page_entries_)._M_h._M_buckets =\n         &(pMVar10->got_page_entries_)._M_h._M_single_bucket;\n    (pMVar10->got_page_entries_)._M_h._M_bucket_count = 1;\n    (pMVar10->got_page_entries_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pMVar10->got_page_entries_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;\n    (pMVar10->got_page_entries_)._M_h._M_rehash_policy._M_next_resize = 0;\n    pMVar10->got_page_offset_start_ = 0;\n    pMVar10->got_page_offset_next_ = 0;\n    (pMVar10->got_page_offsets_)._M_h._M_element_count = 0;\n    (pMVar10->got_page_offsets_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    (pMVar10->got_page_offsets_)._M_h._M_buckets =\n         &(pMVar10->got_page_offsets_)._M_h._M_single_bucket;\n    (pMVar10->got_page_offsets_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;\n    (pMVar10->got_page_offsets_)._M_h._M_bucket_count = 1;\n    (pMVar10->got_page_offsets_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pMVar10->got_page_offsets_)._M_h._M_rehash_policy._M_next_resize = 0;\n    pMVar10->next_ = (Mips_got_info<64,_true> *)0x0;\n    pMVar10->index_ = 0xffffffff;\n    pMVar10->offset_ = 0;\n    object->got_info_ = pMVar10;\n  }" if (parenthesized_expression "(pMVar10 == (Mips_got_info<64,_true> *)0x0)" ( (binary_expression "pMVar10 == (Mips_got_info<64,_true> *)0x0)" identifier == (parenthesized_expression "(Mips_got_info<64,_true> *)0x0)" ( (comma_expression "Mips_got_info<64,_true> *)0x0" (binary_expression "Mips_got_info<64" identifier < number_literal) , (binary_expression "_true> *)0x0" identifier > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ))) )) (compound_statement "{\n    pMVar10 = (Mips_got_info<64,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    pMVar10->local_gotno_ = 0;\n    pMVar10->page_gotno_ = 0;\n    puVar1 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    pMVar10->global_gotno_ = 0;\n    pMVar10->reloc_only_gotno_ = 0;\n    fVar11 = *(float *)(puVar1 + 0x355c);\n    pMVar10->tls_gotno_ = 0;\n    pMVar10->tls_ldm_offset_ = 0xffffffff;\n    (pMVar10->global_got_symbols_)._M_h._M_element_count = 0;\n    (pMVar10->global_got_symbols_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    (pMVar10->global_got_symbols_)._M_h._M_buckets =\n         &(pMVar10->global_got_symbols_)._M_h._M_single_bucket;\n    (pMVar10->global_got_symbols_)._M_h._M_bucket_count = 1;\n    (pMVar10->global_got_symbols_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pMVar10->global_got_symbols_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;\n    (pMVar10->global_got_symbols_)._M_h._M_rehash_policy._M_next_resize = 0;\n    (pMVar10->got_entries_)._M_h._M_element_count = 0;\n    (pMVar10->got_entries_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    (pMVar10->got_entries_)._M_h._M_buckets = &(pMVar10->got_entries_)._M_h._M_single_bucket;\n    (pMVar10->got_entries_)._M_h._M_bucket_count = 1;\n    (pMVar10->got_entries_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pMVar10->got_entries_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;\n    (pMVar10->got_entries_)._M_h._M_rehash_policy._M_next_resize = 0;\n    (pMVar10->got_page_entries_)._M_h._M_element_count = 0;\n    (pMVar10->got_page_entries_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    (pMVar10->got_page_entries_)._M_h._M_buckets =\n         &(pMVar10->got_page_entries_)._M_h._M_single_bucket;\n    (pMVar10->got_page_entries_)._M_h._M_bucket_count = 1;\n    (pMVar10->got_page_entries_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pMVar10->got_page_entries_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;\n    (pMVar10->got_page_entries_)._M_h._M_rehash_policy._M_next_resize = 0;\n    pMVar10->got_page_offset_start_ = 0;\n    pMVar10->got_page_offset_next_ = 0;\n    (pMVar10->got_page_offsets_)._M_h._M_element_count = 0;\n    (pMVar10->got_page_offsets_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    (pMVar10->got_page_offsets_)._M_h._M_buckets =\n         &(pMVar10->got_page_offsets_)._M_h._M_single_bucket;\n    (pMVar10->got_page_offsets_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;\n    (pMVar10->got_page_offsets_)._M_h._M_bucket_count = 1;\n    (pMVar10->got_page_offsets_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pMVar10->got_page_offsets_)._M_h._M_rehash_policy._M_next_resize = 0;\n    pMVar10->next_ = (Mips_got_info<64,_true> *)0x0;\n    pMVar10->index_ = 0xffffffff;\n    pMVar10->offset_ = 0;\n    object->got_info_ = pMVar10;\n  }" { (expression_statement "pMVar10 = (Mips_got_info<64,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x9c);" (assignment_expression "pMVar10 = (Mips_got_info<64,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x9c)" identifier = (call_expression "(Mips_got_info<64,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x9c)" (call_expression "(Mips_got_info<64,_true> *)(*(code *)PTR_operator_new_004c13a8)" (parenthesized_expression "(Mips_got_info<64,_true> *)" ( (comma_expression "Mips_got_info<64,_true> *" (binary_expression "Mips_got_info<64" identifier < number_literal) , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) (argument_list "(0x9c)" ( number_literal )))) ;) (expression_statement "pMVar10->local_gotno_ = 0;" (assignment_expression "pMVar10->local_gotno_ = 0" (field_expression "pMVar10->local_gotno_" identifier -> field_identifier) = number_literal) ;) (expression_statement "pMVar10->page_gotno_ = 0;" (assignment_expression "pMVar10->page_gotno_ = 0" (field_expression "pMVar10->page_gotno_" identifier -> field_identifier) = number_literal) ;) (expression_statement "puVar1 = PTR_s_ral_options14Struct_no_crefE_004c127c;" (assignment_expression "puVar1 = PTR_s_ral_options14Struct_no_crefE_004c127c" identifier = identifier) ;) (expression_statement "pMVar10->global_gotno_ = 0;" (assignment_expression "pMVar10->global_gotno_ = 0" (field_expression "pMVar10->global_gotno_" identifier -> field_identifier) = number_literal) ;) (expression_statement "pMVar10->reloc_only_gotno_ = 0;" (assignment_expression "pMVar10->reloc_only_gotno_ = 0" (field_expression "pMVar10->reloc_only_gotno_" identifier -> field_identifier) = number_literal) ;) (expression_statement "fVar11 = *(float *)(puVar1 + 0x355c);" (assignment_expression "fVar11 = *(float *)(puVar1 + 0x355c)" identifier = (pointer_expression "*(float *)(puVar1 + 0x355c)" * (cast_expression "(float *)(puVar1 + 0x355c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x355c)" ( (binary_expression "puVar1 + 0x355c" identifier + number_literal) ))))) ;) (expression_statement "pMVar10->tls_gotno_ = 0;" (assignment_expression "pMVar10->tls_gotno_ = 0" (field_expression "pMVar10->tls_gotno_" identifier -> field_identifier) = number_literal) ;) (expression_statement "pMVar10->tls_ldm_offset_ = 0xffffffff;" (assignment_expression "pMVar10->tls_ldm_offset_ = 0xffffffff" (field_expression "pMVar10->tls_ldm_offset_" identifier -> field_identifier) = number_literal) ;) (expression_statement "(pMVar10->global_got_symbols_)._M_h._M_element_count = 0;" (assignment_expression "(pMVar10->global_got_symbols_)._M_h._M_element_count = 0" (field_expression "(pMVar10->global_got_symbols_)._M_h._M_element_count" (field_expression "(pMVar10->global_got_symbols_)._M_h" (parenthesized_expression "(pMVar10->global_got_symbols_)" ( (field_expression "pMVar10->global_got_symbols_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pMVar10->global_got_symbols_)._M_h._M_single_bucket = (__bucket_type)0x0;" (assignment_expression "(pMVar10->global_got_symbols_)._M_h._M_single_bucket = (__bucket_type)0x0" (field_expression "(pMVar10->global_got_symbols_)._M_h._M_single_bucket" (field_expression "(pMVar10->global_got_symbols_)._M_h" (parenthesized_expression "(pMVar10->global_got_symbols_)" ( (field_expression "pMVar10->global_got_symbols_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) ;) (expression_statement "(pMVar10->global_got_symbols_)._M_h._M_buckets =\n         &(pMVar10->global_got_symbols_)._M_h._M_single_bucket;" (assignment_expression "(pMVar10->global_got_symbols_)._M_h._M_buckets =\n         &(pMVar10->global_got_symbols_)._M_h._M_single_bucket" (field_expression "(pMVar10->global_got_symbols_)._M_h._M_buckets" (field_expression "(pMVar10->global_got_symbols_)._M_h" (parenthesized_expression "(pMVar10->global_got_symbols_)" ( (field_expression "pMVar10->global_got_symbols_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (pointer_expression "&(pMVar10->global_got_symbols_)._M_h._M_single_bucket" & (field_expression "(pMVar10->global_got_symbols_)._M_h._M_single_bucket" (field_expression "(pMVar10->global_got_symbols_)._M_h" (parenthesized_expression "(pMVar10->global_got_symbols_)" ( (field_expression "pMVar10->global_got_symbols_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "(pMVar10->global_got_symbols_)._M_h._M_bucket_count = 1;" (assignment_expression "(pMVar10->global_got_symbols_)._M_h._M_bucket_count = 1" (field_expression "(pMVar10->global_got_symbols_)._M_h._M_bucket_count" (field_expression "(pMVar10->global_got_symbols_)._M_h" (parenthesized_expression "(pMVar10->global_got_symbols_)" ( (field_expression "pMVar10->global_got_symbols_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pMVar10->global_got_symbols_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "(pMVar10->global_got_symbols_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0" (field_expression "(pMVar10->global_got_symbols_)._M_h._M_before_begin._M_nxt" (field_expression "(pMVar10->global_got_symbols_)._M_h._M_before_begin" (field_expression "(pMVar10->global_got_symbols_)._M_h" (parenthesized_expression "(pMVar10->global_got_symbols_)" ( (field_expression "pMVar10->global_got_symbols_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pMVar10->global_got_symbols_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;" (assignment_expression "(pMVar10->global_got_symbols_)._M_h._M_rehash_policy._M_max_load_factor = fVar11" (field_expression "(pMVar10->global_got_symbols_)._M_h._M_rehash_policy._M_max_load_factor" (field_expression "(pMVar10->global_got_symbols_)._M_h._M_rehash_policy" (field_expression "(pMVar10->global_got_symbols_)._M_h" (parenthesized_expression "(pMVar10->global_got_symbols_)" ( (field_expression "pMVar10->global_got_symbols_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(pMVar10->global_got_symbols_)._M_h._M_rehash_policy._M_next_resize = 0;" (assignment_expression "(pMVar10->global_got_symbols_)._M_h._M_rehash_policy._M_next_resize = 0" (field_expression "(pMVar10->global_got_symbols_)._M_h._M_rehash_policy._M_next_resize" (field_expression "(pMVar10->global_got_symbols_)._M_h._M_rehash_policy" (field_expression "(pMVar10->global_got_symbols_)._M_h" (parenthesized_expression "(pMVar10->global_got_symbols_)" ( (field_expression "pMVar10->global_got_symbols_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pMVar10->got_entries_)._M_h._M_element_count = 0;" (assignment_expression "(pMVar10->got_entries_)._M_h._M_element_count = 0" (field_expression "(pMVar10->got_entries_)._M_h._M_element_count" (field_expression "(pMVar10->got_entries_)._M_h" (parenthesized_expression "(pMVar10->got_entries_)" ( (field_expression "pMVar10->got_entries_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pMVar10->got_entries_)._M_h._M_single_bucket = (__bucket_type)0x0;" (assignment_expression "(pMVar10->got_entries_)._M_h._M_single_bucket = (__bucket_type)0x0" (field_expression "(pMVar10->got_entries_)._M_h._M_single_bucket" (field_expression "(pMVar10->got_entries_)._M_h" (parenthesized_expression "(pMVar10->got_entries_)" ( (field_expression "pMVar10->got_entries_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) ;) (expression_statement "(pMVar10->got_entries_)._M_h._M_buckets = &(pMVar10->got_entries_)._M_h._M_single_bucket;" (assignment_expression "(pMVar10->got_entries_)._M_h._M_buckets = &(pMVar10->got_entries_)._M_h._M_single_bucket" (field_expression "(pMVar10->got_entries_)._M_h._M_buckets" (field_expression "(pMVar10->got_entries_)._M_h" (parenthesized_expression "(pMVar10->got_entries_)" ( (field_expression "pMVar10->got_entries_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (pointer_expression "&(pMVar10->got_entries_)._M_h._M_single_bucket" & (field_expression "(pMVar10->got_entries_)._M_h._M_single_bucket" (field_expression "(pMVar10->got_entries_)._M_h" (parenthesized_expression "(pMVar10->got_entries_)" ( (field_expression "pMVar10->got_entries_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "(pMVar10->got_entries_)._M_h._M_bucket_count = 1;" (assignment_expression "(pMVar10->got_entries_)._M_h._M_bucket_count = 1" (field_expression "(pMVar10->got_entries_)._M_h._M_bucket_count" (field_expression "(pMVar10->got_entries_)._M_h" (parenthesized_expression "(pMVar10->got_entries_)" ( (field_expression "pMVar10->got_entries_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pMVar10->got_entries_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "(pMVar10->got_entries_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0" (field_expression "(pMVar10->got_entries_)._M_h._M_before_begin._M_nxt" (field_expression "(pMVar10->got_entries_)._M_h._M_before_begin" (field_expression "(pMVar10->got_entries_)._M_h" (parenthesized_expression "(pMVar10->got_entries_)" ( (field_expression "pMVar10->got_entries_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pMVar10->got_entries_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;" (assignment_expression "(pMVar10->got_entries_)._M_h._M_rehash_policy._M_max_load_factor = fVar11" (field_expression "(pMVar10->got_entries_)._M_h._M_rehash_policy._M_max_load_factor" (field_expression "(pMVar10->got_entries_)._M_h._M_rehash_policy" (field_expression "(pMVar10->got_entries_)._M_h" (parenthesized_expression "(pMVar10->got_entries_)" ( (field_expression "pMVar10->got_entries_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(pMVar10->got_entries_)._M_h._M_rehash_policy._M_next_resize = 0;" (assignment_expression "(pMVar10->got_entries_)._M_h._M_rehash_policy._M_next_resize = 0" (field_expression "(pMVar10->got_entries_)._M_h._M_rehash_policy._M_next_resize" (field_expression "(pMVar10->got_entries_)._M_h._M_rehash_policy" (field_expression "(pMVar10->got_entries_)._M_h" (parenthesized_expression "(pMVar10->got_entries_)" ( (field_expression "pMVar10->got_entries_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pMVar10->got_page_entries_)._M_h._M_element_count = 0;" (assignment_expression "(pMVar10->got_page_entries_)._M_h._M_element_count = 0" (field_expression "(pMVar10->got_page_entries_)._M_h._M_element_count" (field_expression "(pMVar10->got_page_entries_)._M_h" (parenthesized_expression "(pMVar10->got_page_entries_)" ( (field_expression "pMVar10->got_page_entries_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pMVar10->got_page_entries_)._M_h._M_single_bucket = (__bucket_type)0x0;" (assignment_expression "(pMVar10->got_page_entries_)._M_h._M_single_bucket = (__bucket_type)0x0" (field_expression "(pMVar10->got_page_entries_)._M_h._M_single_bucket" (field_expression "(pMVar10->got_page_entries_)._M_h" (parenthesized_expression "(pMVar10->got_page_entries_)" ( (field_expression "pMVar10->got_page_entries_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) ;) (expression_statement "(pMVar10->got_page_entries_)._M_h._M_buckets =\n         &(pMVar10->got_page_entries_)._M_h._M_single_bucket;" (assignment_expression "(pMVar10->got_page_entries_)._M_h._M_buckets =\n         &(pMVar10->got_page_entries_)._M_h._M_single_bucket" (field_expression "(pMVar10->got_page_entries_)._M_h._M_buckets" (field_expression "(pMVar10->got_page_entries_)._M_h" (parenthesized_expression "(pMVar10->got_page_entries_)" ( (field_expression "pMVar10->got_page_entries_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (pointer_expression "&(pMVar10->got_page_entries_)._M_h._M_single_bucket" & (field_expression "(pMVar10->got_page_entries_)._M_h._M_single_bucket" (field_expression "(pMVar10->got_page_entries_)._M_h" (parenthesized_expression "(pMVar10->got_page_entries_)" ( (field_expression "pMVar10->got_page_entries_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "(pMVar10->got_page_entries_)._M_h._M_bucket_count = 1;" (assignment_expression "(pMVar10->got_page_entries_)._M_h._M_bucket_count = 1" (field_expression "(pMVar10->got_page_entries_)._M_h._M_bucket_count" (field_expression "(pMVar10->got_page_entries_)._M_h" (parenthesized_expression "(pMVar10->got_page_entries_)" ( (field_expression "pMVar10->got_page_entries_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pMVar10->got_page_entries_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "(pMVar10->got_page_entries_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0" (field_expression "(pMVar10->got_page_entries_)._M_h._M_before_begin._M_nxt" (field_expression "(pMVar10->got_page_entries_)._M_h._M_before_begin" (field_expression "(pMVar10->got_page_entries_)._M_h" (parenthesized_expression "(pMVar10->got_page_entries_)" ( (field_expression "pMVar10->got_page_entries_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pMVar10->got_page_entries_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;" (assignment_expression "(pMVar10->got_page_entries_)._M_h._M_rehash_policy._M_max_load_factor = fVar11" (field_expression "(pMVar10->got_page_entries_)._M_h._M_rehash_policy._M_max_load_factor" (field_expression "(pMVar10->got_page_entries_)._M_h._M_rehash_policy" (field_expression "(pMVar10->got_page_entries_)._M_h" (parenthesized_expression "(pMVar10->got_page_entries_)" ( (field_expression "pMVar10->got_page_entries_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(pMVar10->got_page_entries_)._M_h._M_rehash_policy._M_next_resize = 0;" (assignment_expression "(pMVar10->got_page_entries_)._M_h._M_rehash_policy._M_next_resize = 0" (field_expression "(pMVar10->got_page_entries_)._M_h._M_rehash_policy._M_next_resize" (field_expression "(pMVar10->got_page_entries_)._M_h._M_rehash_policy" (field_expression "(pMVar10->got_page_entries_)._M_h" (parenthesized_expression "(pMVar10->got_page_entries_)" ( (field_expression "pMVar10->got_page_entries_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "pMVar10->got_page_offset_start_ = 0;" (assignment_expression "pMVar10->got_page_offset_start_ = 0" (field_expression "pMVar10->got_page_offset_start_" identifier -> field_identifier) = number_literal) ;) (expression_statement "pMVar10->got_page_offset_next_ = 0;" (assignment_expression "pMVar10->got_page_offset_next_ = 0" (field_expression "pMVar10->got_page_offset_next_" identifier -> field_identifier) = number_literal) ;) (expression_statement "(pMVar10->got_page_offsets_)._M_h._M_element_count = 0;" (assignment_expression "(pMVar10->got_page_offsets_)._M_h._M_element_count = 0" (field_expression "(pMVar10->got_page_offsets_)._M_h._M_element_count" (field_expression "(pMVar10->got_page_offsets_)._M_h" (parenthesized_expression "(pMVar10->got_page_offsets_)" ( (field_expression "pMVar10->got_page_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pMVar10->got_page_offsets_)._M_h._M_single_bucket = (__bucket_type)0x0;" (assignment_expression "(pMVar10->got_page_offsets_)._M_h._M_single_bucket = (__bucket_type)0x0" (field_expression "(pMVar10->got_page_offsets_)._M_h._M_single_bucket" (field_expression "(pMVar10->got_page_offsets_)._M_h" (parenthesized_expression "(pMVar10->got_page_offsets_)" ( (field_expression "pMVar10->got_page_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) ;) (expression_statement "(pMVar10->got_page_offsets_)._M_h._M_buckets =\n         &(pMVar10->got_page_offsets_)._M_h._M_single_bucket;" (assignment_expression "(pMVar10->got_page_offsets_)._M_h._M_buckets =\n         &(pMVar10->got_page_offsets_)._M_h._M_single_bucket" (field_expression "(pMVar10->got_page_offsets_)._M_h._M_buckets" (field_expression "(pMVar10->got_page_offsets_)._M_h" (parenthesized_expression "(pMVar10->got_page_offsets_)" ( (field_expression "pMVar10->got_page_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (pointer_expression "&(pMVar10->got_page_offsets_)._M_h._M_single_bucket" & (field_expression "(pMVar10->got_page_offsets_)._M_h._M_single_bucket" (field_expression "(pMVar10->got_page_offsets_)._M_h" (parenthesized_expression "(pMVar10->got_page_offsets_)" ( (field_expression "pMVar10->got_page_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "(pMVar10->got_page_offsets_)._M_h._M_rehash_policy._M_max_load_factor = fVar11;" (assignment_expression "(pMVar10->got_page_offsets_)._M_h._M_rehash_policy._M_max_load_factor = fVar11" (field_expression "(pMVar10->got_page_offsets_)._M_h._M_rehash_policy._M_max_load_factor" (field_expression "(pMVar10->got_page_offsets_)._M_h._M_rehash_policy" (field_expression "(pMVar10->got_page_offsets_)._M_h" (parenthesized_expression "(pMVar10->got_page_offsets_)" ( (field_expression "pMVar10->got_page_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(pMVar10->got_page_offsets_)._M_h._M_bucket_count = 1;" (assignment_expression "(pMVar10->got_page_offsets_)._M_h._M_bucket_count = 1" (field_expression "(pMVar10->got_page_offsets_)._M_h._M_bucket_count" (field_expression "(pMVar10->got_page_offsets_)._M_h" (parenthesized_expression "(pMVar10->got_page_offsets_)" ( (field_expression "pMVar10->got_page_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pMVar10->got_page_offsets_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "(pMVar10->got_page_offsets_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0" (field_expression "(pMVar10->got_page_offsets_)._M_h._M_before_begin._M_nxt" (field_expression "(pMVar10->got_page_offsets_)._M_h._M_before_begin" (field_expression "(pMVar10->got_page_offsets_)._M_h" (parenthesized_expression "(pMVar10->got_page_offsets_)" ( (field_expression "pMVar10->got_page_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pMVar10->got_page_offsets_)._M_h._M_rehash_policy._M_next_resize = 0;" (assignment_expression "(pMVar10->got_page_offsets_)._M_h._M_rehash_policy._M_next_resize = 0" (field_expression "(pMVar10->got_page_offsets_)._M_h._M_rehash_policy._M_next_resize" (field_expression "(pMVar10->got_page_offsets_)._M_h._M_rehash_policy" (field_expression "(pMVar10->got_page_offsets_)._M_h" (parenthesized_expression "(pMVar10->got_page_offsets_)" ( (field_expression "pMVar10->got_page_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "pMVar10->next_ = (Mips_got_info<64,_true> *)0x0;" (assignment_expression "pMVar10->next_ = (Mips_got_info<64,_true> *)0x0" (field_expression "pMVar10->next_" identifier -> field_identifier) = (parenthesized_expression "(Mips_got_info<64,_true> *)0x0" ( (comma_expression "Mips_got_info<64,_true> *)0x0" (binary_expression "Mips_got_info<64" identifier < number_literal) , (binary_expression "_true> *)0x0" identifier > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ))) ;) (expression_statement "pMVar10->index_ = 0xffffffff;" (assignment_expression "pMVar10->index_ = 0xffffffff" (field_expression "pMVar10->index_" identifier -> field_identifier) = number_literal) ;) (expression_statement "pMVar10->offset_ = 0;" (assignment_expression "pMVar10->offset_ = 0" (field_expression "pMVar10->offset_" identifier -> field_identifier) = number_literal) ;) (expression_statement "object->got_info_ = pMVar10;" (assignment_expression "object->got_info_ = pMVar10" (field_expression "object->got_info_" identifier -> field_identifier) = identifier) ;) })) (expression_statement "pGVar4 = entry->ranges;" (assignment_expression "pGVar4 = entry->ranges" identifier = (field_expression "entry->ranges" identifier -> field_identifier)) ;) (expression_statement "pGVar9 = (Got_page_range *)&entry->ranges;" (assignment_expression "pGVar9 = (Got_page_range *)&entry->ranges" identifier = (cast_expression "(Got_page_range *)&entry->ranges" ( (type_descriptor "Got_page_range *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&entry->ranges" & (field_expression "entry->ranges" identifier -> field_identifier)))) ;) (if_statement "if (pGVar4 != (Got_page_range *)0x0) {\n    iVar2 = pGVar4->max_addend;\n    while (pGVar6 = pGVar4, iVar2 + 0xffff < addend) {\n      pGVar4 = pGVar6->next;\n      pGVar9 = pGVar6;\n      if (pGVar4 == (Got_page_range *)0x0) goto LAB_000e13a8;\n      iVar2 = pGVar4->max_addend;\n    }\n    iVar2 = pGVar6->min_addend;\n    if (iVar2 + -0xffff <= addend) {\n      iVar3 = pGVar6->max_addend;\n      iVar8 = (iVar3 - iVar2) + 0x1ffff >> 0x10;\n      if (addend < iVar2) {\n        pGVar6->min_addend = addend;\n        iVar2 = (iVar3 - addend) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (addend <= iVar3) {\n          return;\n        }\n        pGVar9 = pGVar6->next;\n        if ((pGVar9 == (Got_page_range *)0x0) ||\n           (iVar3 = pGVar9->min_addend, addend < iVar3 + -0xffff)) {\n          pGVar6->max_addend = addend;\n          iVar2 = (addend - iVar2) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar7 = pGVar9->max_addend;\n          pGVar9 = pGVar9->next;\n          pGVar6->max_addend = iVar7;\n          pGVar6->next = pGVar9;\n          iVar2 = (iVar7 - iVar2) + 0x1ffff >> 0x10;\n          iVar8 = iVar8 + ((iVar7 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar8 == iVar2) {\n        return;\n      }\n      this->page_gotno_ = this->page_gotno_ + (iVar2 - iVar8);\n      pMVar10->page_gotno_ = pMVar10->page_gotno_ + (iVar2 - iVar8);\n      return;\n    }\n  }" if (parenthesized_expression "(pGVar4 != (Got_page_range *)0x0)" ( (binary_expression "pGVar4 != (Got_page_range *)0x0" identifier != (cast_expression "(Got_page_range *)0x0" ( (type_descriptor "Got_page_range *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar2 = pGVar4->max_addend;\n    while (pGVar6 = pGVar4, iVar2 + 0xffff < addend) {\n      pGVar4 = pGVar6->next;\n      pGVar9 = pGVar6;\n      if (pGVar4 == (Got_page_range *)0x0) goto LAB_000e13a8;\n      iVar2 = pGVar4->max_addend;\n    }\n    iVar2 = pGVar6->min_addend;\n    if (iVar2 + -0xffff <= addend) {\n      iVar3 = pGVar6->max_addend;\n      iVar8 = (iVar3 - iVar2) + 0x1ffff >> 0x10;\n      if (addend < iVar2) {\n        pGVar6->min_addend = addend;\n        iVar2 = (iVar3 - addend) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (addend <= iVar3) {\n          return;\n        }\n        pGVar9 = pGVar6->next;\n        if ((pGVar9 == (Got_page_range *)0x0) ||\n           (iVar3 = pGVar9->min_addend, addend < iVar3 + -0xffff)) {\n          pGVar6->max_addend = addend;\n          iVar2 = (addend - iVar2) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar7 = pGVar9->max_addend;\n          pGVar9 = pGVar9->next;\n          pGVar6->max_addend = iVar7;\n          pGVar6->next = pGVar9;\n          iVar2 = (iVar7 - iVar2) + 0x1ffff >> 0x10;\n          iVar8 = iVar8 + ((iVar7 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar8 == iVar2) {\n        return;\n      }\n      this->page_gotno_ = this->page_gotno_ + (iVar2 - iVar8);\n      pMVar10->page_gotno_ = pMVar10->page_gotno_ + (iVar2 - iVar8);\n      return;\n    }\n  }" { (expression_statement "iVar2 = pGVar4->max_addend;" (assignment_expression "iVar2 = pGVar4->max_addend" identifier = (field_expression "pGVar4->max_addend" identifier -> field_identifier)) ;) (while_statement "while (pGVar6 = pGVar4, iVar2 + 0xffff < addend) {\n      pGVar4 = pGVar6->next;\n      pGVar9 = pGVar6;\n      if (pGVar4 == (Got_page_range *)0x0) goto LAB_000e13a8;\n      iVar2 = pGVar4->max_addend;\n    }" while (parenthesized_expression "(pGVar6 = pGVar4, iVar2 + 0xffff < addend)" ( (comma_expression "pGVar6 = pGVar4, iVar2 + 0xffff < addend" (assignment_expression "pGVar6 = pGVar4" identifier = identifier) , (binary_expression "iVar2 + 0xffff < addend" (binary_expression "iVar2 + 0xffff" identifier + number_literal) < identifier)) )) (compound_statement "{\n      pGVar4 = pGVar6->next;\n      pGVar9 = pGVar6;\n      if (pGVar4 == (Got_page_range *)0x0) goto LAB_000e13a8;\n      iVar2 = pGVar4->max_addend;\n    }" { (expression_statement "pGVar4 = pGVar6->next;" (assignment_expression "pGVar4 = pGVar6->next" identifier = (field_expression "pGVar6->next" identifier -> field_identifier)) ;) (expression_statement "pGVar9 = pGVar6;" (assignment_expression "pGVar9 = pGVar6" identifier = identifier) ;) (if_statement "if (pGVar4 == (Got_page_range *)0x0) goto LAB_000e13a8;" if (parenthesized_expression "(pGVar4 == (Got_page_range *)0x0)" ( (binary_expression "pGVar4 == (Got_page_range *)0x0" identifier == (cast_expression "(Got_page_range *)0x0" ( (type_descriptor "Got_page_range *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e13a8;" goto statement_identifier ;)) (expression_statement "iVar2 = pGVar4->max_addend;" (assignment_expression "iVar2 = pGVar4->max_addend" identifier = (field_expression "pGVar4->max_addend" identifier -> field_identifier)) ;) })) (expression_statement "iVar2 = pGVar6->min_addend;" (assignment_expression "iVar2 = pGVar6->min_addend" identifier = (field_expression "pGVar6->min_addend" identifier -> field_identifier)) ;) (if_statement "if (iVar2 + -0xffff <= addend) {\n      iVar3 = pGVar6->max_addend;\n      iVar8 = (iVar3 - iVar2) + 0x1ffff >> 0x10;\n      if (addend < iVar2) {\n        pGVar6->min_addend = addend;\n        iVar2 = (iVar3 - addend) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (addend <= iVar3) {\n          return;\n        }\n        pGVar9 = pGVar6->next;\n        if ((pGVar9 == (Got_page_range *)0x0) ||\n           (iVar3 = pGVar9->min_addend, addend < iVar3 + -0xffff)) {\n          pGVar6->max_addend = addend;\n          iVar2 = (addend - iVar2) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar7 = pGVar9->max_addend;\n          pGVar9 = pGVar9->next;\n          pGVar6->max_addend = iVar7;\n          pGVar6->next = pGVar9;\n          iVar2 = (iVar7 - iVar2) + 0x1ffff >> 0x10;\n          iVar8 = iVar8 + ((iVar7 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar8 == iVar2) {\n        return;\n      }\n      this->page_gotno_ = this->page_gotno_ + (iVar2 - iVar8);\n      pMVar10->page_gotno_ = pMVar10->page_gotno_ + (iVar2 - iVar8);\n      return;\n    }" if (parenthesized_expression "(iVar2 + -0xffff <= addend)" ( (binary_expression "iVar2 + -0xffff <= addend" (binary_expression "iVar2 + -0xffff" identifier + number_literal) <= identifier) )) (compound_statement "{\n      iVar3 = pGVar6->max_addend;\n      iVar8 = (iVar3 - iVar2) + 0x1ffff >> 0x10;\n      if (addend < iVar2) {\n        pGVar6->min_addend = addend;\n        iVar2 = (iVar3 - addend) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (addend <= iVar3) {\n          return;\n        }\n        pGVar9 = pGVar6->next;\n        if ((pGVar9 == (Got_page_range *)0x0) ||\n           (iVar3 = pGVar9->min_addend, addend < iVar3 + -0xffff)) {\n          pGVar6->max_addend = addend;\n          iVar2 = (addend - iVar2) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar7 = pGVar9->max_addend;\n          pGVar9 = pGVar9->next;\n          pGVar6->max_addend = iVar7;\n          pGVar6->next = pGVar9;\n          iVar2 = (iVar7 - iVar2) + 0x1ffff >> 0x10;\n          iVar8 = iVar8 + ((iVar7 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar8 == iVar2) {\n        return;\n      }\n      this->page_gotno_ = this->page_gotno_ + (iVar2 - iVar8);\n      pMVar10->page_gotno_ = pMVar10->page_gotno_ + (iVar2 - iVar8);\n      return;\n    }" { (expression_statement "iVar3 = pGVar6->max_addend;" (assignment_expression "iVar3 = pGVar6->max_addend" identifier = (field_expression "pGVar6->max_addend" identifier -> field_identifier)) ;) (expression_statement "iVar8 = (iVar3 - iVar2) + 0x1ffff >> 0x10;" (assignment_expression "iVar8 = (iVar3 - iVar2) + 0x1ffff >> 0x10" identifier = (binary_expression "(iVar3 - iVar2) + 0x1ffff >> 0x10" (binary_expression "(iVar3 - iVar2) + 0x1ffff" (parenthesized_expression "(iVar3 - iVar2)" ( (binary_expression "iVar3 - iVar2" identifier - identifier) )) + number_literal) >> number_literal)) ;) (if_statement "if (addend < iVar2) {\n        pGVar6->min_addend = addend;\n        iVar2 = (iVar3 - addend) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (addend <= iVar3) {\n          return;\n        }\n        pGVar9 = pGVar6->next;\n        if ((pGVar9 == (Got_page_range *)0x0) ||\n           (iVar3 = pGVar9->min_addend, addend < iVar3 + -0xffff)) {\n          pGVar6->max_addend = addend;\n          iVar2 = (addend - iVar2) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar7 = pGVar9->max_addend;\n          pGVar9 = pGVar9->next;\n          pGVar6->max_addend = iVar7;\n          pGVar6->next = pGVar9;\n          iVar2 = (iVar7 - iVar2) + 0x1ffff >> 0x10;\n          iVar8 = iVar8 + ((iVar7 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }" if (parenthesized_expression "(addend < iVar2)" ( (binary_expression "addend < iVar2" identifier < identifier) )) (compound_statement "{\n        pGVar6->min_addend = addend;\n        iVar2 = (iVar3 - addend) + 0x1ffff >> 0x10;\n      }" { (expression_statement "pGVar6->min_addend = addend;" (assignment_expression "pGVar6->min_addend = addend" (field_expression "pGVar6->min_addend" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar2 = (iVar3 - addend) + 0x1ffff >> 0x10;" (assignment_expression "iVar2 = (iVar3 - addend) + 0x1ffff >> 0x10" identifier = (binary_expression "(iVar3 - addend) + 0x1ffff >> 0x10" (binary_expression "(iVar3 - addend) + 0x1ffff" (parenthesized_expression "(iVar3 - addend)" ( (binary_expression "iVar3 - addend" identifier - identifier) )) + number_literal) >> number_literal)) ;) }) (else_clause "else {\n        if (addend <= iVar3) {\n          return;\n        }\n        pGVar9 = pGVar6->next;\n        if ((pGVar9 == (Got_page_range *)0x0) ||\n           (iVar3 = pGVar9->min_addend, addend < iVar3 + -0xffff)) {\n          pGVar6->max_addend = addend;\n          iVar2 = (addend - iVar2) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar7 = pGVar9->max_addend;\n          pGVar9 = pGVar9->next;\n          pGVar6->max_addend = iVar7;\n          pGVar6->next = pGVar9;\n          iVar2 = (iVar7 - iVar2) + 0x1ffff >> 0x10;\n          iVar8 = iVar8 + ((iVar7 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }" else (compound_statement "{\n        if (addend <= iVar3) {\n          return;\n        }\n        pGVar9 = pGVar6->next;\n        if ((pGVar9 == (Got_page_range *)0x0) ||\n           (iVar3 = pGVar9->min_addend, addend < iVar3 + -0xffff)) {\n          pGVar6->max_addend = addend;\n          iVar2 = (addend - iVar2) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar7 = pGVar9->max_addend;\n          pGVar9 = pGVar9->next;\n          pGVar6->max_addend = iVar7;\n          pGVar6->next = pGVar9;\n          iVar2 = (iVar7 - iVar2) + 0x1ffff >> 0x10;\n          iVar8 = iVar8 + ((iVar7 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }" { (if_statement "if (addend <= iVar3) {\n          return;\n        }" if (parenthesized_expression "(addend <= iVar3)" ( (binary_expression "addend <= iVar3" identifier <= identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "pGVar9 = pGVar6->next;" (assignment_expression "pGVar9 = pGVar6->next" identifier = (field_expression "pGVar6->next" identifier -> field_identifier)) ;) (if_statement "if ((pGVar9 == (Got_page_range *)0x0) ||\n           (iVar3 = pGVar9->min_addend, addend < iVar3 + -0xffff)) {\n          pGVar6->max_addend = addend;\n          iVar2 = (addend - iVar2) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar7 = pGVar9->max_addend;\n          pGVar9 = pGVar9->next;\n          pGVar6->max_addend = iVar7;\n          pGVar6->next = pGVar9;\n          iVar2 = (iVar7 - iVar2) + 0x1ffff >> 0x10;\n          iVar8 = iVar8 + ((iVar7 - iVar3) + 0x1ffff >> 0x10);\n        }" if (parenthesized_expression "((pGVar9 == (Got_page_range *)0x0) ||\n           (iVar3 = pGVar9->min_addend, addend < iVar3 + -0xffff))" ( (binary_expression "(pGVar9 == (Got_page_range *)0x0) ||\n           (iVar3 = pGVar9->min_addend, addend < iVar3 + -0xffff)" (parenthesized_expression "(pGVar9 == (Got_page_range *)0x0)" ( (binary_expression "pGVar9 == (Got_page_range *)0x0" identifier == (cast_expression "(Got_page_range *)0x0" ( (type_descriptor "Got_page_range *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar3 = pGVar9->min_addend, addend < iVar3 + -0xffff)" ( (comma_expression "iVar3 = pGVar9->min_addend, addend < iVar3 + -0xffff" (assignment_expression "iVar3 = pGVar9->min_addend" identifier = (field_expression "pGVar9->min_addend" identifier -> field_identifier)) , (binary_expression "addend < iVar3 + -0xffff" identifier < (binary_expression "iVar3 + -0xffff" identifier + number_literal))) ))) )) (compound_statement "{\n          pGVar6->max_addend = addend;\n          iVar2 = (addend - iVar2) + 0x1ffff >> 0x10;\n        }" { (expression_statement "pGVar6->max_addend = addend;" (assignment_expression "pGVar6->max_addend = addend" (field_expression "pGVar6->max_addend" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar2 = (addend - iVar2) + 0x1ffff >> 0x10;" (assignment_expression "iVar2 = (addend - iVar2) + 0x1ffff >> 0x10" identifier = (binary_expression "(addend - iVar2) + 0x1ffff >> 0x10" (binary_expression "(addend - iVar2) + 0x1ffff" (parenthesized_expression "(addend - iVar2)" ( (binary_expression "addend - iVar2" identifier - identifier) )) + number_literal) >> number_literal)) ;) }) (else_clause "else {\n          iVar7 = pGVar9->max_addend;\n          pGVar9 = pGVar9->next;\n          pGVar6->max_addend = iVar7;\n          pGVar6->next = pGVar9;\n          iVar2 = (iVar7 - iVar2) + 0x1ffff >> 0x10;\n          iVar8 = iVar8 + ((iVar7 - iVar3) + 0x1ffff >> 0x10);\n        }" else (compound_statement "{\n          iVar7 = pGVar9->max_addend;\n          pGVar9 = pGVar9->next;\n          pGVar6->max_addend = iVar7;\n          pGVar6->next = pGVar9;\n          iVar2 = (iVar7 - iVar2) + 0x1ffff >> 0x10;\n          iVar8 = iVar8 + ((iVar7 - iVar3) + 0x1ffff >> 0x10);\n        }" { (expression_statement "iVar7 = pGVar9->max_addend;" (assignment_expression "iVar7 = pGVar9->max_addend" identifier = (field_expression "pGVar9->max_addend" identifier -> field_identifier)) ;) (expression_statement "pGVar9 = pGVar9->next;" (assignment_expression "pGVar9 = pGVar9->next" identifier = (field_expression "pGVar9->next" identifier -> field_identifier)) ;) (expression_statement "pGVar6->max_addend = iVar7;" (assignment_expression "pGVar6->max_addend = iVar7" (field_expression "pGVar6->max_addend" identifier -> field_identifier) = identifier) ;) (expression_statement "pGVar6->next = pGVar9;" (assignment_expression "pGVar6->next = pGVar9" (field_expression "pGVar6->next" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar2 = (iVar7 - iVar2) + 0x1ffff >> 0x10;" (assignment_expression "iVar2 = (iVar7 - iVar2) + 0x1ffff >> 0x10" identifier = (binary_expression "(iVar7 - iVar2) + 0x1ffff >> 0x10" (binary_expression "(iVar7 - iVar2) + 0x1ffff" (parenthesized_expression "(iVar7 - iVar2)" ( (binary_expression "iVar7 - iVar2" identifier - identifier) )) + number_literal) >> number_literal)) ;) (expression_statement "iVar8 = iVar8 + ((iVar7 - iVar3) + 0x1ffff >> 0x10);" (assignment_expression "iVar8 = iVar8 + ((iVar7 - iVar3) + 0x1ffff >> 0x10)" identifier = (binary_expression "iVar8 + ((iVar7 - iVar3) + 0x1ffff >> 0x10)" identifier + (parenthesized_expression "((iVar7 - iVar3) + 0x1ffff >> 0x10)" ( (binary_expression "(iVar7 - iVar3) + 0x1ffff >> 0x10" (binary_expression "(iVar7 - iVar3) + 0x1ffff" (parenthesized_expression "(iVar7 - iVar3)" ( (binary_expression "iVar7 - iVar3" identifier - identifier) )) + number_literal) >> number_literal) )))) ;) }))) }))) (if_statement "if (iVar8 == iVar2) {\n        return;\n      }" if (parenthesized_expression "(iVar8 == iVar2)" ( (binary_expression "iVar8 == iVar2" identifier == identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "this->page_gotno_ = this->page_gotno_ + (iVar2 - iVar8);" (assignment_expression "this->page_gotno_ = this->page_gotno_ + (iVar2 - iVar8)" (field_expression "this->page_gotno_" identifier -> field_identifier) = (binary_expression "this->page_gotno_ + (iVar2 - iVar8)" (field_expression "this->page_gotno_" identifier -> field_identifier) + (parenthesized_expression "(iVar2 - iVar8)" ( (binary_expression "iVar2 - iVar8" identifier - identifier) )))) ;) (expression_statement "pMVar10->page_gotno_ = pMVar10->page_gotno_ + (iVar2 - iVar8);" (assignment_expression "pMVar10->page_gotno_ = pMVar10->page_gotno_ + (iVar2 - iVar8)" (field_expression "pMVar10->page_gotno_" identifier -> field_identifier) = (binary_expression "pMVar10->page_gotno_ + (iVar2 - iVar8)" (field_expression "pMVar10->page_gotno_" identifier -> field_identifier) + (parenthesized_expression "(iVar2 - iVar8)" ( (binary_expression "iVar2 - iVar8" identifier - identifier) )))) ;) (return_statement "return;" return ;) })) })) (labeled_statement "LAB_000e13a8:\n  pGVar4 = (Got_page_range *)(*(code *)PTR_operator_new_004c13a8)(0xc);" statement_identifier : (expression_statement "pGVar4 = (Got_page_range *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "pGVar4 = (Got_page_range *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(Got_page_range *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "Got_page_range *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;)) (expression_statement "uVar5 = this->page_gotno_;" (assignment_expression "uVar5 = this->page_gotno_" identifier = (field_expression "this->page_gotno_" identifier -> field_identifier)) ;) (expression_statement "pGVar4->next = (Got_page_range *)0x0;" (assignment_expression "pGVar4->next = (Got_page_range *)0x0" (field_expression "pGVar4->next" identifier -> field_identifier) = (cast_expression "(Got_page_range *)0x0" ( (type_descriptor "Got_page_range *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pGVar6 = pGVar9->next;" (assignment_expression "pGVar6 = pGVar9->next" identifier = (field_expression "pGVar9->next" identifier -> field_identifier)) ;) (expression_statement "pGVar4->min_addend = addend;" (assignment_expression "pGVar4->min_addend = addend" (field_expression "pGVar4->min_addend" identifier -> field_identifier) = identifier) ;) (expression_statement "pGVar4->max_addend = addend;" (assignment_expression "pGVar4->max_addend = addend" (field_expression "pGVar4->max_addend" identifier -> field_identifier) = identifier) ;) (expression_statement "pGVar4->next = pGVar6;" (assignment_expression "pGVar4->next = pGVar6" (field_expression "pGVar4->next" identifier -> field_identifier) = identifier) ;) (expression_statement "pGVar9->next = pGVar4;" (assignment_expression "pGVar9->next = pGVar4" (field_expression "pGVar9->next" identifier -> field_identifier) = identifier) ;) (expression_statement "this->page_gotno_ = uVar5 + 1;" (assignment_expression "this->page_gotno_ = uVar5 + 1" (field_expression "this->page_gotno_" identifier -> field_identifier) = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "pMVar10->page_gotno_ = pMVar10->page_gotno_ + 1;" (assignment_expression "pMVar10->page_gotno_ = pMVar10->page_gotno_ + 1" (field_expression "pMVar10->page_gotno_" identifier -> field_identifier) = (binary_expression "pMVar10->page_gotno_ + 1" (field_expression "pMVar10->page_gotno_" identifier -> field_identifier) + number_literal)) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_000e12c0(int param_1,int param_2,int param_3,int param_4)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  undefined1 auStack_30 [8];\n  int *local_28 [2];\n  int local_20 [3];\n  \n  local_28[0] = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  iVar9 = param_1 + 0x50;\n  *local_28[0] = param_2;\n  local_28[0][1] = param_3;\n  local_28[0][2] = 0;\n  FUN_000d0184(local_20,iVar9,local_28);\n  if (local_20[0] == 0) {\n    FUN_000d9ec4(auStack_30,iVar9);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  else {\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  if (puVar10 == (undefined4 *)0x0) {\n    puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    *puVar10 = 0;\n    puVar10[1] = 0;\n    puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    uVar11 = *(undefined4 *)(puVar2 + 0x355c);\n    puVar10[4] = 0;\n    puVar10[5] = 0xffffffff;\n    puVar10[9] = 0;\n    puVar10[0xc] = 0;\n    puVar10[6] = puVar10 + 0xc;\n    puVar10[7] = 1;\n    puVar10[8] = 0;\n    puVar10[10] = uVar11;\n    puVar10[0xb] = 0;\n    puVar10[0x10] = 0;\n    puVar10[0x13] = 0;\n    puVar10[0xd] = puVar10 + 0x13;\n    puVar10[0xe] = 1;\n    puVar10[0xf] = 0;\n    puVar10[0x11] = uVar11;\n    puVar10[0x12] = 0;\n    puVar10[0x17] = 0;\n    puVar10[0x1a] = 0;\n    puVar10[0x14] = puVar10 + 0x1a;\n    puVar10[0x15] = 1;\n    puVar10[0x16] = 0;\n    puVar10[0x18] = uVar11;\n    puVar10[0x19] = 0;\n    puVar10[0x1b] = 0;\n    puVar10[0x1c] = 0;\n    puVar10[0x20] = 0;\n    puVar10[0x23] = 0;\n    puVar10[0x1d] = puVar10 + 0x23;\n    puVar10[0x21] = uVar11;\n    puVar10[0x1e] = 1;\n    puVar10[0x1f] = 0;\n    puVar10[0x22] = 0;\n    puVar10[0x24] = 0;\n    puVar10[0x25] = 0xffffffff;\n    puVar10[0x26] = 0;\n    *(undefined4 **)(param_2 + 0x1fc) = puVar10;\n  }\n  piVar4 = (int *)local_28[0][2];\n  piVar7 = local_28[0] + 2;\n  if (piVar4 != (int *)0x0) {\n    iVar9 = piVar4[2];\n    while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }\n    iVar9 = piVar1[1];\n    if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }\n  }\nLAB_000e13a8:\n  piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  iVar9 = *(int *)(param_1 + 4);\n  *piVar4 = 0;\n  iVar3 = *piVar7;\n  piVar4[1] = param_4;\n  piVar4[2] = param_4;\n  *piVar4 = iVar3;\n  *piVar7 = (int)piVar4;\n  *(int *)(param_1 + 4) = iVar9 + 1;\n  puVar10[1] = puVar10[1] + 1;\n  return;\n}\n\n" (function_definition "void FUN_000e12c0(int param_1,int param_2,int param_3,int param_4)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  undefined1 auStack_30 [8];\n  int *local_28 [2];\n  int local_20 [3];\n  \n  local_28[0] = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  iVar9 = param_1 + 0x50;\n  *local_28[0] = param_2;\n  local_28[0][1] = param_3;\n  local_28[0][2] = 0;\n  FUN_000d0184(local_20,iVar9,local_28);\n  if (local_20[0] == 0) {\n    FUN_000d9ec4(auStack_30,iVar9);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  else {\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  if (puVar10 == (undefined4 *)0x0) {\n    puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    *puVar10 = 0;\n    puVar10[1] = 0;\n    puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    uVar11 = *(undefined4 *)(puVar2 + 0x355c);\n    puVar10[4] = 0;\n    puVar10[5] = 0xffffffff;\n    puVar10[9] = 0;\n    puVar10[0xc] = 0;\n    puVar10[6] = puVar10 + 0xc;\n    puVar10[7] = 1;\n    puVar10[8] = 0;\n    puVar10[10] = uVar11;\n    puVar10[0xb] = 0;\n    puVar10[0x10] = 0;\n    puVar10[0x13] = 0;\n    puVar10[0xd] = puVar10 + 0x13;\n    puVar10[0xe] = 1;\n    puVar10[0xf] = 0;\n    puVar10[0x11] = uVar11;\n    puVar10[0x12] = 0;\n    puVar10[0x17] = 0;\n    puVar10[0x1a] = 0;\n    puVar10[0x14] = puVar10 + 0x1a;\n    puVar10[0x15] = 1;\n    puVar10[0x16] = 0;\n    puVar10[0x18] = uVar11;\n    puVar10[0x19] = 0;\n    puVar10[0x1b] = 0;\n    puVar10[0x1c] = 0;\n    puVar10[0x20] = 0;\n    puVar10[0x23] = 0;\n    puVar10[0x1d] = puVar10 + 0x23;\n    puVar10[0x21] = uVar11;\n    puVar10[0x1e] = 1;\n    puVar10[0x1f] = 0;\n    puVar10[0x22] = 0;\n    puVar10[0x24] = 0;\n    puVar10[0x25] = 0xffffffff;\n    puVar10[0x26] = 0;\n    *(undefined4 **)(param_2 + 0x1fc) = puVar10;\n  }\n  piVar4 = (int *)local_28[0][2];\n  piVar7 = local_28[0] + 2;\n  if (piVar4 != (int *)0x0) {\n    iVar9 = piVar4[2];\n    while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }\n    iVar9 = piVar1[1];\n    if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }\n  }\nLAB_000e13a8:\n  piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  iVar9 = *(int *)(param_1 + 4);\n  *piVar4 = 0;\n  iVar3 = *piVar7;\n  piVar4[1] = param_4;\n  piVar4[2] = param_4;\n  *piVar4 = iVar3;\n  *piVar7 = (int)piVar4;\n  *(int *)(param_1 + 4) = iVar9 + 1;\n  puVar10[1] = puVar10[1] + 1;\n  return;\n}" primitive_type (function_declarator "FUN_000e12c0(int param_1,int param_2,int param_3,int param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  undefined1 auStack_30 [8];\n  int *local_28 [2];\n  int local_20 [3];\n  \n  local_28[0] = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  iVar9 = param_1 + 0x50;\n  *local_28[0] = param_2;\n  local_28[0][1] = param_3;\n  local_28[0][2] = 0;\n  FUN_000d0184(local_20,iVar9,local_28);\n  if (local_20[0] == 0) {\n    FUN_000d9ec4(auStack_30,iVar9);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  else {\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  if (puVar10 == (undefined4 *)0x0) {\n    puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    *puVar10 = 0;\n    puVar10[1] = 0;\n    puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    uVar11 = *(undefined4 *)(puVar2 + 0x355c);\n    puVar10[4] = 0;\n    puVar10[5] = 0xffffffff;\n    puVar10[9] = 0;\n    puVar10[0xc] = 0;\n    puVar10[6] = puVar10 + 0xc;\n    puVar10[7] = 1;\n    puVar10[8] = 0;\n    puVar10[10] = uVar11;\n    puVar10[0xb] = 0;\n    puVar10[0x10] = 0;\n    puVar10[0x13] = 0;\n    puVar10[0xd] = puVar10 + 0x13;\n    puVar10[0xe] = 1;\n    puVar10[0xf] = 0;\n    puVar10[0x11] = uVar11;\n    puVar10[0x12] = 0;\n    puVar10[0x17] = 0;\n    puVar10[0x1a] = 0;\n    puVar10[0x14] = puVar10 + 0x1a;\n    puVar10[0x15] = 1;\n    puVar10[0x16] = 0;\n    puVar10[0x18] = uVar11;\n    puVar10[0x19] = 0;\n    puVar10[0x1b] = 0;\n    puVar10[0x1c] = 0;\n    puVar10[0x20] = 0;\n    puVar10[0x23] = 0;\n    puVar10[0x1d] = puVar10 + 0x23;\n    puVar10[0x21] = uVar11;\n    puVar10[0x1e] = 1;\n    puVar10[0x1f] = 0;\n    puVar10[0x22] = 0;\n    puVar10[0x24] = 0;\n    puVar10[0x25] = 0xffffffff;\n    puVar10[0x26] = 0;\n    *(undefined4 **)(param_2 + 0x1fc) = puVar10;\n  }\n  piVar4 = (int *)local_28[0][2];\n  piVar7 = local_28[0] + 2;\n  if (piVar4 != (int *)0x0) {\n    iVar9 = piVar4[2];\n    while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }\n    iVar9 = piVar1[1];\n    if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }\n  }\nLAB_000e13a8:\n  piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  iVar9 = *(int *)(param_1 + 4);\n  *piVar4 = 0;\n  iVar3 = *piVar7;\n  piVar4[1] = param_4;\n  piVar4[2] = param_4;\n  *piVar4 = iVar3;\n  *piVar7 = (int)piVar4;\n  *(int *)(param_1 + 4) = iVar9 + 1;\n  puVar10[1] = puVar10[1] + 1;\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined1 auStack_30 [8];" type_identifier (array_declarator "auStack_30 [8]" identifier [ number_literal ]) ;) (declaration "int *local_28 [2];" primitive_type (pointer_declarator "*local_28 [2]" * (array_declarator "local_28 [2]" identifier [ number_literal ])) ;) (declaration "int local_20 [3];" primitive_type (array_declarator "local_20 [3]" identifier [ number_literal ]) ;) (expression_statement "local_28[0] = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "local_28[0] = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (subscript_expression "local_28[0]" identifier [ number_literal ]) = (cast_expression "(int *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "iVar9 = param_1 + 0x50;" (assignment_expression "iVar9 = param_1 + 0x50" identifier = (binary_expression "param_1 + 0x50" identifier + number_literal)) ;) (expression_statement "*local_28[0] = param_2;" (assignment_expression "*local_28[0] = param_2" (pointer_expression "*local_28[0]" * (subscript_expression "local_28[0]" identifier [ number_literal ])) = identifier) ;) (expression_statement "local_28[0][1] = param_3;" (assignment_expression "local_28[0][1] = param_3" (subscript_expression "local_28[0][1]" (subscript_expression "local_28[0]" identifier [ number_literal ]) [ number_literal ]) = identifier) ;) (expression_statement "local_28[0][2] = 0;" (assignment_expression "local_28[0][2] = 0" (subscript_expression "local_28[0][2]" (subscript_expression "local_28[0]" identifier [ number_literal ]) [ number_literal ]) = number_literal) ;) (expression_statement "FUN_000d0184(local_20,iVar9,local_28);" (call_expression "FUN_000d0184(local_20,iVar9,local_28)" identifier (argument_list "(local_20,iVar9,local_28)" ( identifier , identifier , identifier ))) ;) (if_statement "if (local_20[0] == 0) {\n    FUN_000d9ec4(auStack_30,iVar9);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  else {\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }" if (parenthesized_expression "(local_20[0] == 0)" ( (binary_expression "local_20[0] == 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    FUN_000d9ec4(auStack_30,iVar9);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }" { (expression_statement "FUN_000d9ec4(auStack_30,iVar9);" (call_expression "FUN_000d9ec4(auStack_30,iVar9)" identifier (argument_list "(auStack_30,iVar9)" ( identifier , identifier ))) ;) (expression_statement "puVar10 = *(undefined4 **)(param_2 + 0x1fc);" (assignment_expression "puVar10 = *(undefined4 **)(param_2 + 0x1fc)" identifier = (pointer_expression "*(undefined4 **)(param_2 + 0x1fc)" * (cast_expression "(undefined4 **)(param_2 + 0x1fc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1fc)" ( (binary_expression "param_2 + 0x1fc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }" else (compound_statement "{\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }" { (expression_statement "local_28[0] = *(int **)(local_20[0] + 4);" (assignment_expression "local_28[0] = *(int **)(local_20[0] + 4)" (subscript_expression "local_28[0]" identifier [ number_literal ]) = (pointer_expression "*(int **)(local_20[0] + 4)" * (cast_expression "(int **)(local_20[0] + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_20[0] + 4)" ( (binary_expression "local_20[0] + 4" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "puVar10 = *(undefined4 **)(param_2 + 0x1fc);" (assignment_expression "puVar10 = *(undefined4 **)(param_2 + 0x1fc)" identifier = (pointer_expression "*(undefined4 **)(param_2 + 0x1fc)" * (cast_expression "(undefined4 **)(param_2 + 0x1fc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1fc)" ( (binary_expression "param_2 + 0x1fc" identifier + number_literal) ))))) ;) }))) (if_statement "if (puVar10 == (undefined4 *)0x0) {\n    puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    *puVar10 = 0;\n    puVar10[1] = 0;\n    puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    uVar11 = *(undefined4 *)(puVar2 + 0x355c);\n    puVar10[4] = 0;\n    puVar10[5] = 0xffffffff;\n    puVar10[9] = 0;\n    puVar10[0xc] = 0;\n    puVar10[6] = puVar10 + 0xc;\n    puVar10[7] = 1;\n    puVar10[8] = 0;\n    puVar10[10] = uVar11;\n    puVar10[0xb] = 0;\n    puVar10[0x10] = 0;\n    puVar10[0x13] = 0;\n    puVar10[0xd] = puVar10 + 0x13;\n    puVar10[0xe] = 1;\n    puVar10[0xf] = 0;\n    puVar10[0x11] = uVar11;\n    puVar10[0x12] = 0;\n    puVar10[0x17] = 0;\n    puVar10[0x1a] = 0;\n    puVar10[0x14] = puVar10 + 0x1a;\n    puVar10[0x15] = 1;\n    puVar10[0x16] = 0;\n    puVar10[0x18] = uVar11;\n    puVar10[0x19] = 0;\n    puVar10[0x1b] = 0;\n    puVar10[0x1c] = 0;\n    puVar10[0x20] = 0;\n    puVar10[0x23] = 0;\n    puVar10[0x1d] = puVar10 + 0x23;\n    puVar10[0x21] = uVar11;\n    puVar10[0x1e] = 1;\n    puVar10[0x1f] = 0;\n    puVar10[0x22] = 0;\n    puVar10[0x24] = 0;\n    puVar10[0x25] = 0xffffffff;\n    puVar10[0x26] = 0;\n    *(undefined4 **)(param_2 + 0x1fc) = puVar10;\n  }" if (parenthesized_expression "(puVar10 == (undefined4 *)0x0)" ( (binary_expression "puVar10 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    *puVar10 = 0;\n    puVar10[1] = 0;\n    puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    uVar11 = *(undefined4 *)(puVar2 + 0x355c);\n    puVar10[4] = 0;\n    puVar10[5] = 0xffffffff;\n    puVar10[9] = 0;\n    puVar10[0xc] = 0;\n    puVar10[6] = puVar10 + 0xc;\n    puVar10[7] = 1;\n    puVar10[8] = 0;\n    puVar10[10] = uVar11;\n    puVar10[0xb] = 0;\n    puVar10[0x10] = 0;\n    puVar10[0x13] = 0;\n    puVar10[0xd] = puVar10 + 0x13;\n    puVar10[0xe] = 1;\n    puVar10[0xf] = 0;\n    puVar10[0x11] = uVar11;\n    puVar10[0x12] = 0;\n    puVar10[0x17] = 0;\n    puVar10[0x1a] = 0;\n    puVar10[0x14] = puVar10 + 0x1a;\n    puVar10[0x15] = 1;\n    puVar10[0x16] = 0;\n    puVar10[0x18] = uVar11;\n    puVar10[0x19] = 0;\n    puVar10[0x1b] = 0;\n    puVar10[0x1c] = 0;\n    puVar10[0x20] = 0;\n    puVar10[0x23] = 0;\n    puVar10[0x1d] = puVar10 + 0x23;\n    puVar10[0x21] = uVar11;\n    puVar10[0x1e] = 1;\n    puVar10[0x1f] = 0;\n    puVar10[0x22] = 0;\n    puVar10[0x24] = 0;\n    puVar10[0x25] = 0xffffffff;\n    puVar10[0x26] = 0;\n    *(undefined4 **)(param_2 + 0x1fc) = puVar10;\n  }" { (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x9c)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x9c)" ( number_literal ))))) ;) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar10[1] = 0;" (assignment_expression "puVar10[1] = 0" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;" (assignment_expression "puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c" identifier = identifier) ;) (expression_statement "puVar10[2] = 0;" (assignment_expression "puVar10[2] = 0" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[3] = 0;" (assignment_expression "puVar10[3] = 0" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar11 = *(undefined4 *)(puVar2 + 0x355c);" (assignment_expression "uVar11 = *(undefined4 *)(puVar2 + 0x355c)" identifier = (pointer_expression "*(undefined4 *)(puVar2 + 0x355c)" * (cast_expression "(undefined4 *)(puVar2 + 0x355c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x355c)" ( (binary_expression "puVar2 + 0x355c" identifier + number_literal) ))))) ;) (expression_statement "puVar10[4] = 0;" (assignment_expression "puVar10[4] = 0" (subscript_expression "puVar10[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[5] = 0xffffffff;" (assignment_expression "puVar10[5] = 0xffffffff" (subscript_expression "puVar10[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[9] = 0;" (assignment_expression "puVar10[9] = 0" (subscript_expression "puVar10[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0xc] = 0;" (assignment_expression "puVar10[0xc] = 0" (subscript_expression "puVar10[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[6] = puVar10 + 0xc;" (assignment_expression "puVar10[6] = puVar10 + 0xc" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (binary_expression "puVar10 + 0xc" identifier + number_literal)) ;) (expression_statement "puVar10[7] = 1;" (assignment_expression "puVar10[7] = 1" (subscript_expression "puVar10[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[8] = 0;" (assignment_expression "puVar10[8] = 0" (subscript_expression "puVar10[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[10] = uVar11;" (assignment_expression "puVar10[10] = uVar11" (subscript_expression "puVar10[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[0xb] = 0;" (assignment_expression "puVar10[0xb] = 0" (subscript_expression "puVar10[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x10] = 0;" (assignment_expression "puVar10[0x10] = 0" (subscript_expression "puVar10[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x13] = 0;" (assignment_expression "puVar10[0x13] = 0" (subscript_expression "puVar10[0x13]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0xd] = puVar10 + 0x13;" (assignment_expression "puVar10[0xd] = puVar10 + 0x13" (subscript_expression "puVar10[0xd]" identifier [ number_literal ]) = (binary_expression "puVar10 + 0x13" identifier + number_literal)) ;) (expression_statement "puVar10[0xe] = 1;" (assignment_expression "puVar10[0xe] = 1" (subscript_expression "puVar10[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0xf] = 0;" (assignment_expression "puVar10[0xf] = 0" (subscript_expression "puVar10[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x11] = uVar11;" (assignment_expression "puVar10[0x11] = uVar11" (subscript_expression "puVar10[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[0x12] = 0;" (assignment_expression "puVar10[0x12] = 0" (subscript_expression "puVar10[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x17] = 0;" (assignment_expression "puVar10[0x17] = 0" (subscript_expression "puVar10[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x1a] = 0;" (assignment_expression "puVar10[0x1a] = 0" (subscript_expression "puVar10[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x14] = puVar10 + 0x1a;" (assignment_expression "puVar10[0x14] = puVar10 + 0x1a" (subscript_expression "puVar10[0x14]" identifier [ number_literal ]) = (binary_expression "puVar10 + 0x1a" identifier + number_literal)) ;) (expression_statement "puVar10[0x15] = 1;" (assignment_expression "puVar10[0x15] = 1" (subscript_expression "puVar10[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x16] = 0;" (assignment_expression "puVar10[0x16] = 0" (subscript_expression "puVar10[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x18] = uVar11;" (assignment_expression "puVar10[0x18] = uVar11" (subscript_expression "puVar10[0x18]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[0x19] = 0;" (assignment_expression "puVar10[0x19] = 0" (subscript_expression "puVar10[0x19]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x1b] = 0;" (assignment_expression "puVar10[0x1b] = 0" (subscript_expression "puVar10[0x1b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x1c] = 0;" (assignment_expression "puVar10[0x1c] = 0" (subscript_expression "puVar10[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x20] = 0;" (assignment_expression "puVar10[0x20] = 0" (subscript_expression "puVar10[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x23] = 0;" (assignment_expression "puVar10[0x23] = 0" (subscript_expression "puVar10[0x23]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x1d] = puVar10 + 0x23;" (assignment_expression "puVar10[0x1d] = puVar10 + 0x23" (subscript_expression "puVar10[0x1d]" identifier [ number_literal ]) = (binary_expression "puVar10 + 0x23" identifier + number_literal)) ;) (expression_statement "puVar10[0x21] = uVar11;" (assignment_expression "puVar10[0x21] = uVar11" (subscript_expression "puVar10[0x21]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[0x1e] = 1;" (assignment_expression "puVar10[0x1e] = 1" (subscript_expression "puVar10[0x1e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x1f] = 0;" (assignment_expression "puVar10[0x1f] = 0" (subscript_expression "puVar10[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x22] = 0;" (assignment_expression "puVar10[0x22] = 0" (subscript_expression "puVar10[0x22]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x24] = 0;" (assignment_expression "puVar10[0x24] = 0" (subscript_expression "puVar10[0x24]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x25] = 0xffffffff;" (assignment_expression "puVar10[0x25] = 0xffffffff" (subscript_expression "puVar10[0x25]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[0x26] = 0;" (assignment_expression "puVar10[0x26] = 0" (subscript_expression "puVar10[0x26]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(param_2 + 0x1fc) = puVar10;" (assignment_expression "*(undefined4 **)(param_2 + 0x1fc) = puVar10" (pointer_expression "*(undefined4 **)(param_2 + 0x1fc)" * (cast_expression "(undefined4 **)(param_2 + 0x1fc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x1fc)" ( (binary_expression "param_2 + 0x1fc" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "piVar4 = (int *)local_28[0][2];" (assignment_expression "piVar4 = (int *)local_28[0][2]" identifier = (cast_expression "(int *)local_28[0][2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[0][2]" (subscript_expression "local_28[0]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "piVar7 = local_28[0] + 2;" (assignment_expression "piVar7 = local_28[0] + 2" identifier = (binary_expression "local_28[0] + 2" (subscript_expression "local_28[0]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (piVar4 != (int *)0x0) {\n    iVar9 = piVar4[2];\n    while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }\n    iVar9 = piVar1[1];\n    if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }\n  }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar9 = piVar4[2];\n    while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }\n    iVar9 = piVar1[1];\n    if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }\n  }" { (expression_statement "iVar9 = piVar4[2];" (assignment_expression "iVar9 = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (while_statement "while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }" while (parenthesized_expression "(piVar1 = piVar4, iVar9 + 0xffff < param_4)" ( (comma_expression "piVar1 = piVar4, iVar9 + 0xffff < param_4" (assignment_expression "piVar1 = piVar4" identifier = identifier) , (binary_expression "iVar9 + 0xffff < param_4" (binary_expression "iVar9 + 0xffff" identifier + number_literal) < identifier)) )) (compound_statement "{\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }" { (expression_statement "piVar4 = (int *)*piVar1;" (assignment_expression "piVar4 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (expression_statement "piVar7 = piVar1;" (assignment_expression "piVar7 = piVar1" identifier = identifier) ;) (if_statement "if (piVar4 == (int *)0x0) goto LAB_000e13a8;" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000e13a8;" goto statement_identifier ;)) (expression_statement "iVar9 = piVar4[2];" (assignment_expression "iVar9 = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) })) (expression_statement "iVar9 = piVar1[1];" (assignment_expression "iVar9 = piVar1[1]" identifier = (subscript_expression "piVar1[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }" if (parenthesized_expression "(iVar9 + -0xffff <= param_4)" ( (binary_expression "iVar9 + -0xffff <= param_4" (binary_expression "iVar9 + -0xffff" identifier + number_literal) <= identifier) )) (compound_statement "{\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }" { (expression_statement "iVar3 = piVar1[2];" (assignment_expression "iVar3 = piVar1[2]" identifier = (subscript_expression "piVar1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;" (assignment_expression "iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10" identifier = (binary_expression "(iVar3 - iVar9) + 0x1ffff >> 0x10" (binary_expression "(iVar3 - iVar9) + 0x1ffff" (parenthesized_expression "(iVar3 - iVar9)" ( (binary_expression "iVar3 - iVar9" identifier - identifier) )) + number_literal) >> number_literal)) ;) (if_statement "if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }" if (parenthesized_expression "(param_4 < iVar9)" ( (binary_expression "param_4 < iVar9" identifier < identifier) )) (compound_statement "{\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }" { (expression_statement "piVar1[1] = param_4;" (assignment_expression "piVar1[1] = param_4" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;" (assignment_expression "iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10" identifier = (binary_expression "(iVar3 - param_4) + 0x1ffff >> 0x10" (binary_expression "(iVar3 - param_4) + 0x1ffff" (parenthesized_expression "(iVar3 - param_4)" ( (binary_expression "iVar3 - param_4" identifier - identifier) )) + number_literal) >> number_literal)) ;) }) (else_clause "else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }" else (compound_statement "{\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }" { (if_statement "if (param_4 <= iVar3) {\n          return;\n        }" if (parenthesized_expression "(param_4 <= iVar3)" ( (binary_expression "param_4 <= iVar3" identifier <= identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "piVar7 = (int *)*piVar1;" (assignment_expression "piVar7 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (if_statement "if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }" if (parenthesized_expression "((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff))" ( (binary_expression "(piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)" (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)" ( (comma_expression "iVar3 = piVar7[1], param_4 < iVar3 + -0xffff" (assignment_expression "iVar3 = piVar7[1]" identifier = (subscript_expression "piVar7[1]" identifier [ number_literal ])) , (binary_expression "param_4 < iVar3 + -0xffff" identifier < (binary_expression "iVar3 + -0xffff" identifier + number_literal))) ))) )) (compound_statement "{\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }" { (expression_statement "piVar1[2] = param_4;" (assignment_expression "piVar1[2] = param_4" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;" (assignment_expression "iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10" identifier = (binary_expression "(param_4 - iVar9) + 0x1ffff >> 0x10" (binary_expression "(param_4 - iVar9) + 0x1ffff" (parenthesized_expression "(param_4 - iVar9)" ( (binary_expression "param_4 - iVar9" identifier - identifier) )) + number_literal) >> number_literal)) ;) }) (else_clause "else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }" else (compound_statement "{\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }" { (expression_statement "iVar5 = piVar7[2];" (assignment_expression "iVar5 = piVar7[2]" identifier = (subscript_expression "piVar7[2]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = *piVar7;" (assignment_expression "iVar8 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "piVar1[2] = iVar5;" (assignment_expression "piVar1[2] = iVar5" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar1 = iVar8;" (assignment_expression "*piVar1 = iVar8" (pointer_expression "*piVar1" * identifier) = identifier) ;) (expression_statement "iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;" (assignment_expression "iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10" identifier = (binary_expression "(iVar5 - iVar9) + 0x1ffff >> 0x10" (binary_expression "(iVar5 - iVar9) + 0x1ffff" (parenthesized_expression "(iVar5 - iVar9)" ( (binary_expression "iVar5 - iVar9" identifier - identifier) )) + number_literal) >> number_literal)) ;) (expression_statement "iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);" (assignment_expression "iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10)" identifier = (binary_expression "iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10)" identifier + (parenthesized_expression "((iVar5 - iVar3) + 0x1ffff >> 0x10)" ( (binary_expression "(iVar5 - iVar3) + 0x1ffff >> 0x10" (binary_expression "(iVar5 - iVar3) + 0x1ffff" (parenthesized_expression "(iVar5 - iVar3)" ( (binary_expression "iVar5 - iVar3" identifier - identifier) )) + number_literal) >> number_literal) )))) ;) }))) }))) (if_statement "if (iVar6 == iVar9) {\n        return;\n      }" if (parenthesized_expression "(iVar6 == iVar9)" ( (binary_expression "iVar6 == iVar9" identifier == identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);" (assignment_expression "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6)" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 4) + (iVar9 - iVar6)" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + (parenthesized_expression "(iVar9 - iVar6)" ( (binary_expression "iVar9 - iVar6" identifier - identifier) )))) ;) (expression_statement "puVar10[1] = puVar10[1] + (iVar9 - iVar6);" (assignment_expression "puVar10[1] = puVar10[1] + (iVar9 - iVar6)" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = (binary_expression "puVar10[1] + (iVar9 - iVar6)" (subscript_expression "puVar10[1]" identifier [ number_literal ]) + (parenthesized_expression "(iVar9 - iVar6)" ( (binary_expression "iVar9 - iVar6" identifier - identifier) )))) ;) (return_statement "return;" return ;) })) })) (labeled_statement "LAB_000e13a8:\n  piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);" statement_identifier : (expression_statement "piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc)" identifier = (cast_expression "(int *)(*(code *)PTR_operator_new_004c13a8)(0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal ))))) ;)) (expression_statement "iVar9 = *(int *)(param_1 + 4);" (assignment_expression "iVar9 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "*piVar4 = 0;" (assignment_expression "*piVar4 = 0" (pointer_expression "*piVar4" * identifier) = number_literal) ;) (expression_statement "iVar3 = *piVar7;" (assignment_expression "iVar3 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "piVar4[1] = param_4;" (assignment_expression "piVar4[1] = param_4" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[2] = param_4;" (assignment_expression "piVar4[2] = param_4" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar4 = iVar3;" (assignment_expression "*piVar4 = iVar3" (pointer_expression "*piVar4" * identifier) = identifier) ;) (expression_statement "*piVar7 = (int)piVar4;" (assignment_expression "*piVar7 = (int)piVar4" (pointer_expression "*piVar7" * identifier) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(int *)(param_1 + 4) = iVar9 + 1;" (assignment_expression "*(int *)(param_1 + 4) = iVar9 + 1" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "puVar10[1] = puVar10[1] + 1;" (assignment_expression "puVar10[1] = puVar10[1] + 1" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = (binary_expression "puVar10[1] + 1" (subscript_expression "puVar10[1]" identifier [ number_literal ]) + number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT + LIT) < IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + LIT) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + LIT) >> LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression IDENT < (binary_expression IDENT + LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + LIT) >> LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + LIT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + LIT) >> LIT) )))) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (return_statement return ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (return_statement return ;) })))
(function_definition "void FUN_000e12c0(int param_1,int param_2,int param_3,int param_4)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  undefined1 auStack_30 [8];\n  int *local_28 [2];\n  int local_20 [3];\n  \n  local_28[0] = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  iVar9 = param_1 + 0x50;\n  *local_28[0] = param_2;\n  local_28[0][1] = param_3;\n  local_28[0][2] = 0;\n  FUN_000d0184(local_20,iVar9,local_28);\n  if (local_20[0] == 0) {\n    FUN_000d9ec4(auStack_30,iVar9);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  else {\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  if (puVar10 == (undefined4 *)0x0) {\n    puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    *puVar10 = 0;\n    puVar10[1] = 0;\n    puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    uVar11 = *(undefined4 *)(puVar2 + 0x355c);\n    puVar10[4] = 0;\n    puVar10[5] = 0xffffffff;\n    puVar10[9] = 0;\n    puVar10[0xc] = 0;\n    puVar10[6] = puVar10 + 0xc;\n    puVar10[7] = 1;\n    puVar10[8] = 0;\n    puVar10[10] = uVar11;\n    puVar10[0xb] = 0;\n    puVar10[0x10] = 0;\n    puVar10[0x13] = 0;\n    puVar10[0xd] = puVar10 + 0x13;\n    puVar10[0xe] = 1;\n    puVar10[0xf] = 0;\n    puVar10[0x11] = uVar11;\n    puVar10[0x12] = 0;\n    puVar10[0x17] = 0;\n    puVar10[0x1a] = 0;\n    puVar10[0x14] = puVar10 + 0x1a;\n    puVar10[0x15] = 1;\n    puVar10[0x16] = 0;\n    puVar10[0x18] = uVar11;\n    puVar10[0x19] = 0;\n    puVar10[0x1b] = 0;\n    puVar10[0x1c] = 0;\n    puVar10[0x20] = 0;\n    puVar10[0x23] = 0;\n    puVar10[0x1d] = puVar10 + 0x23;\n    puVar10[0x21] = uVar11;\n    puVar10[0x1e] = 1;\n    puVar10[0x1f] = 0;\n    puVar10[0x22] = 0;\n    puVar10[0x24] = 0;\n    puVar10[0x25] = 0xffffffff;\n    puVar10[0x26] = 0;\n    *(undefined4 **)(param_2 + 0x1fc) = puVar10;\n  }\n  piVar4 = (int *)local_28[0][2];\n  piVar7 = local_28[0] + 2;\n  if (piVar4 != (int *)0x0) {\n    iVar9 = piVar4[2];\n    while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }\n    iVar9 = piVar1[1];\n    if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }\n  }\nLAB_000e13a8:\n  piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  iVar9 = *(int *)(param_1 + 4);\n  *piVar4 = 0;\n  iVar3 = *piVar7;\n  piVar4[1] = param_4;\n  piVar4[2] = param_4;\n  *piVar4 = iVar3;\n  *piVar7 = (int)piVar4;\n  *(int *)(param_1 + 4) = iVar9 + 1;\n  puVar10[1] = puVar10[1] + 1;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000e12c0(int param_1,int param_2,int param_3,int param_4)" (identifier "FUN_000e12c0") (parameter_list "(int param_1,int param_2,int param_3,int param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  undefined1 auStack_30 [8];\n  int *local_28 [2];\n  int local_20 [3];\n  \n  local_28[0] = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  iVar9 = param_1 + 0x50;\n  *local_28[0] = param_2;\n  local_28[0][1] = param_3;\n  local_28[0][2] = 0;\n  FUN_000d0184(local_20,iVar9,local_28);\n  if (local_20[0] == 0) {\n    FUN_000d9ec4(auStack_30,iVar9);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  else {\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  if (puVar10 == (undefined4 *)0x0) {\n    puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    *puVar10 = 0;\n    puVar10[1] = 0;\n    puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    uVar11 = *(undefined4 *)(puVar2 + 0x355c);\n    puVar10[4] = 0;\n    puVar10[5] = 0xffffffff;\n    puVar10[9] = 0;\n    puVar10[0xc] = 0;\n    puVar10[6] = puVar10 + 0xc;\n    puVar10[7] = 1;\n    puVar10[8] = 0;\n    puVar10[10] = uVar11;\n    puVar10[0xb] = 0;\n    puVar10[0x10] = 0;\n    puVar10[0x13] = 0;\n    puVar10[0xd] = puVar10 + 0x13;\n    puVar10[0xe] = 1;\n    puVar10[0xf] = 0;\n    puVar10[0x11] = uVar11;\n    puVar10[0x12] = 0;\n    puVar10[0x17] = 0;\n    puVar10[0x1a] = 0;\n    puVar10[0x14] = puVar10 + 0x1a;\n    puVar10[0x15] = 1;\n    puVar10[0x16] = 0;\n    puVar10[0x18] = uVar11;\n    puVar10[0x19] = 0;\n    puVar10[0x1b] = 0;\n    puVar10[0x1c] = 0;\n    puVar10[0x20] = 0;\n    puVar10[0x23] = 0;\n    puVar10[0x1d] = puVar10 + 0x23;\n    puVar10[0x21] = uVar11;\n    puVar10[0x1e] = 1;\n    puVar10[0x1f] = 0;\n    puVar10[0x22] = 0;\n    puVar10[0x24] = 0;\n    puVar10[0x25] = 0xffffffff;\n    puVar10[0x26] = 0;\n    *(undefined4 **)(param_2 + 0x1fc) = puVar10;\n  }\n  piVar4 = (int *)local_28[0][2];\n  piVar7 = local_28[0] + 2;\n  if (piVar4 != (int *)0x0) {\n    iVar9 = piVar4[2];\n    while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }\n    iVar9 = piVar1[1];\n    if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }\n  }\nLAB_000e13a8:\n  piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);\n  iVar9 = *(int *)(param_1 + 4);\n  *piVar4 = 0;\n  iVar3 = *piVar7;\n  piVar4[1] = param_4;\n  piVar4[2] = param_4;\n  *piVar4 = iVar3;\n  *piVar7 = (int)piVar4;\n  *(int *)(param_1 + 4) = iVar9 + 1;\n  puVar10[1] = puVar10[1] + 1;\n  return;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "undefined1 auStack_30 [8];" (type_identifier "undefined1") (array_declarator "auStack_30 [8]" (identifier "auStack_30") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "int *local_28 [2];" (primitive_type "int") (pointer_declarator "*local_28 [2]" (* "*") (array_declarator "local_28 [2]" (identifier "local_28") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "int local_20 [3];" (primitive_type "int") (array_declarator "local_20 [3]" (identifier "local_20") ([ "[") (number_literal "3") (] "]")) (; ";")) (expression_statement "local_28[0] = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "local_28[0] = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(int *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0xc)" (( "(") (number_literal "0xc") () ")"))))) (; ";")) (expression_statement "iVar9 = param_1 + 0x50;" (assignment_expression "iVar9 = param_1 + 0x50" (identifier "iVar9") (= "=") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50"))) (; ";")) (expression_statement "*local_28[0] = param_2;" (assignment_expression "*local_28[0] = param_2" (pointer_expression "*local_28[0]" (* "*") (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]"))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_28[0][1] = param_3;" (assignment_expression "local_28[0][1] = param_3" (subscript_expression "local_28[0][1]" (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_28[0][2] = 0;" (assignment_expression "local_28[0][2] = 0" (subscript_expression "local_28[0][2]" (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_000d0184(local_20,iVar9,local_28);" (call_expression "FUN_000d0184(local_20,iVar9,local_28)" (identifier "FUN_000d0184") (argument_list "(local_20,iVar9,local_28)" (( "(") (identifier "local_20") (, ",") (identifier "iVar9") (, ",") (identifier "local_28") () ")"))) (; ";")) (if_statement "if (local_20[0] == 0) {\n    FUN_000d9ec4(auStack_30,iVar9);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }\n  else {\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }" (if "if") (parenthesized_expression "(local_20[0] == 0)" (( "(") (binary_expression "local_20[0] == 0" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_000d9ec4(auStack_30,iVar9);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }" ({ "{") (expression_statement "FUN_000d9ec4(auStack_30,iVar9);" (call_expression "FUN_000d9ec4(auStack_30,iVar9)" (identifier "FUN_000d9ec4") (argument_list "(auStack_30,iVar9)" (( "(") (identifier "auStack_30") (, ",") (identifier "iVar9") () ")"))) (; ";")) (expression_statement "puVar10 = *(undefined4 **)(param_2 + 0x1fc);" (assignment_expression "puVar10 = *(undefined4 **)(param_2 + 0x1fc)" (identifier "puVar10") (= "=") (pointer_expression "*(undefined4 **)(param_2 + 0x1fc)" (* "*") (cast_expression "(undefined4 **)(param_2 + 0x1fc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x1fc)" (( "(") (binary_expression "param_2 + 0x1fc" (identifier "param_2") (+ "+") (number_literal "0x1fc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }" (else "else") (compound_statement "{\n    local_28[0] = *(int **)(local_20[0] + 4);\n    puVar10 = *(undefined4 **)(param_2 + 0x1fc);\n  }" ({ "{") (expression_statement "local_28[0] = *(int **)(local_20[0] + 4);" (assignment_expression "local_28[0] = *(int **)(local_20[0] + 4)" (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "*(int **)(local_20[0] + 4)" (* "*") (cast_expression "(int **)(local_20[0] + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_20[0] + 4)" (( "(") (binary_expression "local_20[0] + 4" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar10 = *(undefined4 **)(param_2 + 0x1fc);" (assignment_expression "puVar10 = *(undefined4 **)(param_2 + 0x1fc)" (identifier "puVar10") (= "=") (pointer_expression "*(undefined4 **)(param_2 + 0x1fc)" (* "*") (cast_expression "(undefined4 **)(param_2 + 0x1fc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x1fc)" (( "(") (binary_expression "param_2 + 0x1fc" (identifier "param_2") (+ "+") (number_literal "0x1fc")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (puVar10 == (undefined4 *)0x0) {\n    puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    *puVar10 = 0;\n    puVar10[1] = 0;\n    puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    uVar11 = *(undefined4 *)(puVar2 + 0x355c);\n    puVar10[4] = 0;\n    puVar10[5] = 0xffffffff;\n    puVar10[9] = 0;\n    puVar10[0xc] = 0;\n    puVar10[6] = puVar10 + 0xc;\n    puVar10[7] = 1;\n    puVar10[8] = 0;\n    puVar10[10] = uVar11;\n    puVar10[0xb] = 0;\n    puVar10[0x10] = 0;\n    puVar10[0x13] = 0;\n    puVar10[0xd] = puVar10 + 0x13;\n    puVar10[0xe] = 1;\n    puVar10[0xf] = 0;\n    puVar10[0x11] = uVar11;\n    puVar10[0x12] = 0;\n    puVar10[0x17] = 0;\n    puVar10[0x1a] = 0;\n    puVar10[0x14] = puVar10 + 0x1a;\n    puVar10[0x15] = 1;\n    puVar10[0x16] = 0;\n    puVar10[0x18] = uVar11;\n    puVar10[0x19] = 0;\n    puVar10[0x1b] = 0;\n    puVar10[0x1c] = 0;\n    puVar10[0x20] = 0;\n    puVar10[0x23] = 0;\n    puVar10[0x1d] = puVar10 + 0x23;\n    puVar10[0x21] = uVar11;\n    puVar10[0x1e] = 1;\n    puVar10[0x1f] = 0;\n    puVar10[0x22] = 0;\n    puVar10[0x24] = 0;\n    puVar10[0x25] = 0xffffffff;\n    puVar10[0x26] = 0;\n    *(undefined4 **)(param_2 + 0x1fc) = puVar10;\n  }" (if "if") (parenthesized_expression "(puVar10 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar10 == (undefined4 *)0x0" (identifier "puVar10") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);\n    *puVar10 = 0;\n    puVar10[1] = 0;\n    puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    uVar11 = *(undefined4 *)(puVar2 + 0x355c);\n    puVar10[4] = 0;\n    puVar10[5] = 0xffffffff;\n    puVar10[9] = 0;\n    puVar10[0xc] = 0;\n    puVar10[6] = puVar10 + 0xc;\n    puVar10[7] = 1;\n    puVar10[8] = 0;\n    puVar10[10] = uVar11;\n    puVar10[0xb] = 0;\n    puVar10[0x10] = 0;\n    puVar10[0x13] = 0;\n    puVar10[0xd] = puVar10 + 0x13;\n    puVar10[0xe] = 1;\n    puVar10[0xf] = 0;\n    puVar10[0x11] = uVar11;\n    puVar10[0x12] = 0;\n    puVar10[0x17] = 0;\n    puVar10[0x1a] = 0;\n    puVar10[0x14] = puVar10 + 0x1a;\n    puVar10[0x15] = 1;\n    puVar10[0x16] = 0;\n    puVar10[0x18] = uVar11;\n    puVar10[0x19] = 0;\n    puVar10[0x1b] = 0;\n    puVar10[0x1c] = 0;\n    puVar10[0x20] = 0;\n    puVar10[0x23] = 0;\n    puVar10[0x1d] = puVar10 + 0x23;\n    puVar10[0x21] = uVar11;\n    puVar10[0x1e] = 1;\n    puVar10[0x1f] = 0;\n    puVar10[0x22] = 0;\n    puVar10[0x24] = 0;\n    puVar10[0x25] = 0xffffffff;\n    puVar10[0x26] = 0;\n    *(undefined4 **)(param_2 + 0x1fc) = puVar10;\n  }" ({ "{") (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x9c)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x9c)" (( "(") (number_literal "0x9c") () ")"))))) (; ";")) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[1] = 0;" (assignment_expression "puVar10[1] = 0" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;" (assignment_expression "puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c" (identifier "puVar2") (= "=") (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c")) (; ";")) (expression_statement "puVar10[2] = 0;" (assignment_expression "puVar10[2] = 0" (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[3] = 0;" (assignment_expression "puVar10[3] = 0" (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar11 = *(undefined4 *)(puVar2 + 0x355c);" (assignment_expression "uVar11 = *(undefined4 *)(puVar2 + 0x355c)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(puVar2 + 0x355c)" (* "*") (cast_expression "(undefined4 *)(puVar2 + 0x355c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x355c)" (( "(") (binary_expression "puVar2 + 0x355c" (identifier "puVar2") (+ "+") (number_literal "0x355c")) () ")"))))) (; ";")) (expression_statement "puVar10[4] = 0;" (assignment_expression "puVar10[4] = 0" (subscript_expression "puVar10[4]" (identifier "puVar10") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[5] = 0xffffffff;" (assignment_expression "puVar10[5] = 0xffffffff" (subscript_expression "puVar10[5]" (identifier "puVar10") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar10[9] = 0;" (assignment_expression "puVar10[9] = 0" (subscript_expression "puVar10[9]" (identifier "puVar10") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0xc] = 0;" (assignment_expression "puVar10[0xc] = 0" (subscript_expression "puVar10[0xc]" (identifier "puVar10") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[6] = puVar10 + 0xc;" (assignment_expression "puVar10[6] = puVar10 + 0xc" (subscript_expression "puVar10[6]" (identifier "puVar10") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "puVar10 + 0xc" (identifier "puVar10") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "puVar10[7] = 1;" (assignment_expression "puVar10[7] = 1" (subscript_expression "puVar10[7]" (identifier "puVar10") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar10[8] = 0;" (assignment_expression "puVar10[8] = 0" (subscript_expression "puVar10[8]" (identifier "puVar10") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[10] = uVar11;" (assignment_expression "puVar10[10] = uVar11" (subscript_expression "puVar10[10]" (identifier "puVar10") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar10[0xb] = 0;" (assignment_expression "puVar10[0xb] = 0" (subscript_expression "puVar10[0xb]" (identifier "puVar10") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0x10] = 0;" (assignment_expression "puVar10[0x10] = 0" (subscript_expression "puVar10[0x10]" (identifier "puVar10") ([ "[") (number_literal "0x10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0x13] = 0;" (assignment_expression "puVar10[0x13] = 0" (subscript_expression "puVar10[0x13]" (identifier "puVar10") ([ "[") (number_literal "0x13") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0xd] = puVar10 + 0x13;" (assignment_expression "puVar10[0xd] = puVar10 + 0x13" (subscript_expression "puVar10[0xd]" (identifier "puVar10") ([ "[") (number_literal "0xd") (] "]")) (= "=") (binary_expression "puVar10 + 0x13" (identifier "puVar10") (+ "+") (number_literal "0x13"))) (; ";")) (expression_statement "puVar10[0xe] = 1;" (assignment_expression "puVar10[0xe] = 1" (subscript_expression "puVar10[0xe]" (identifier "puVar10") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar10[0xf] = 0;" (assignment_expression "puVar10[0xf] = 0" (subscript_expression "puVar10[0xf]" (identifier "puVar10") ([ "[") (number_literal "0xf") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0x11] = uVar11;" (assignment_expression "puVar10[0x11] = uVar11" (subscript_expression "puVar10[0x11]" (identifier "puVar10") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar10[0x12] = 0;" (assignment_expression "puVar10[0x12] = 0" (subscript_expression "puVar10[0x12]" (identifier "puVar10") ([ "[") (number_literal "0x12") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0x17] = 0;" (assignment_expression "puVar10[0x17] = 0" (subscript_expression "puVar10[0x17]" (identifier "puVar10") ([ "[") (number_literal "0x17") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0x1a] = 0;" (assignment_expression "puVar10[0x1a] = 0" (subscript_expression "puVar10[0x1a]" (identifier "puVar10") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0x14] = puVar10 + 0x1a;" (assignment_expression "puVar10[0x14] = puVar10 + 0x1a" (subscript_expression "puVar10[0x14]" (identifier "puVar10") ([ "[") (number_literal "0x14") (] "]")) (= "=") (binary_expression "puVar10 + 0x1a" (identifier "puVar10") (+ "+") (number_literal "0x1a"))) (; ";")) (expression_statement "puVar10[0x15] = 1;" (assignment_expression "puVar10[0x15] = 1" (subscript_expression "puVar10[0x15]" (identifier "puVar10") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar10[0x16] = 0;" (assignment_expression "puVar10[0x16] = 0" (subscript_expression "puVar10[0x16]" (identifier "puVar10") ([ "[") (number_literal "0x16") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0x18] = uVar11;" (assignment_expression "puVar10[0x18] = uVar11" (subscript_expression "puVar10[0x18]" (identifier "puVar10") ([ "[") (number_literal "0x18") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar10[0x19] = 0;" (assignment_expression "puVar10[0x19] = 0" (subscript_expression "puVar10[0x19]" (identifier "puVar10") ([ "[") (number_literal "0x19") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0x1b] = 0;" (assignment_expression "puVar10[0x1b] = 0" (subscript_expression "puVar10[0x1b]" (identifier "puVar10") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0x1c] = 0;" (assignment_expression "puVar10[0x1c] = 0" (subscript_expression "puVar10[0x1c]" (identifier "puVar10") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0x20] = 0;" (assignment_expression "puVar10[0x20] = 0" (subscript_expression "puVar10[0x20]" (identifier "puVar10") ([ "[") (number_literal "0x20") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0x23] = 0;" (assignment_expression "puVar10[0x23] = 0" (subscript_expression "puVar10[0x23]" (identifier "puVar10") ([ "[") (number_literal "0x23") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0x1d] = puVar10 + 0x23;" (assignment_expression "puVar10[0x1d] = puVar10 + 0x23" (subscript_expression "puVar10[0x1d]" (identifier "puVar10") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (binary_expression "puVar10 + 0x23" (identifier "puVar10") (+ "+") (number_literal "0x23"))) (; ";")) (expression_statement "puVar10[0x21] = uVar11;" (assignment_expression "puVar10[0x21] = uVar11" (subscript_expression "puVar10[0x21]" (identifier "puVar10") ([ "[") (number_literal "0x21") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar10[0x1e] = 1;" (assignment_expression "puVar10[0x1e] = 1" (subscript_expression "puVar10[0x1e]" (identifier "puVar10") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar10[0x1f] = 0;" (assignment_expression "puVar10[0x1f] = 0" (subscript_expression "puVar10[0x1f]" (identifier "puVar10") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0x22] = 0;" (assignment_expression "puVar10[0x22] = 0" (subscript_expression "puVar10[0x22]" (identifier "puVar10") ([ "[") (number_literal "0x22") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0x24] = 0;" (assignment_expression "puVar10[0x24] = 0" (subscript_expression "puVar10[0x24]" (identifier "puVar10") ([ "[") (number_literal "0x24") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10[0x25] = 0xffffffff;" (assignment_expression "puVar10[0x25] = 0xffffffff" (subscript_expression "puVar10[0x25]" (identifier "puVar10") ([ "[") (number_literal "0x25") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar10[0x26] = 0;" (assignment_expression "puVar10[0x26] = 0" (subscript_expression "puVar10[0x26]" (identifier "puVar10") ([ "[") (number_literal "0x26") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(param_2 + 0x1fc) = puVar10;" (assignment_expression "*(undefined4 **)(param_2 + 0x1fc) = puVar10" (pointer_expression "*(undefined4 **)(param_2 + 0x1fc)" (* "*") (cast_expression "(undefined4 **)(param_2 + 0x1fc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x1fc)" (( "(") (binary_expression "param_2 + 0x1fc" (identifier "param_2") (+ "+") (number_literal "0x1fc")) () ")")))) (= "=") (identifier "puVar10")) (; ";")) (} "}"))) (expression_statement "piVar4 = (int *)local_28[0][2];" (assignment_expression "piVar4 = (int *)local_28[0][2]" (identifier "piVar4") (= "=") (cast_expression "(int *)local_28[0][2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_28[0][2]" (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "piVar7 = local_28[0] + 2;" (assignment_expression "piVar7 = local_28[0] + 2" (identifier "piVar7") (= "=") (binary_expression "local_28[0] + 2" (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (piVar4 != (int *)0x0) {\n    iVar9 = piVar4[2];\n    while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }\n    iVar9 = piVar1[1];\n    if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(piVar4 != (int *)0x0)" (( "(") (binary_expression "piVar4 != (int *)0x0" (identifier "piVar4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar9 = piVar4[2];\n    while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }\n    iVar9 = piVar1[1];\n    if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }\n  }" ({ "{") (expression_statement "iVar9 = piVar4[2];" (assignment_expression "iVar9 = piVar4[2]" (identifier "iVar9") (= "=") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (while_statement "while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }" (while "while") (parenthesized_expression "(piVar1 = piVar4, iVar9 + 0xffff < param_4)" (( "(") (comma_expression "piVar1 = piVar4, iVar9 + 0xffff < param_4" (assignment_expression "piVar1 = piVar4" (identifier "piVar1") (= "=") (identifier "piVar4")) (, ",") (binary_expression "iVar9 + 0xffff < param_4" (binary_expression "iVar9 + 0xffff" (identifier "iVar9") (+ "+") (number_literal "0xffff")) (< "<") (identifier "param_4"))) () ")")) (compound_statement "{\n      piVar4 = (int *)*piVar1;\n      piVar7 = piVar1;\n      if (piVar4 == (int *)0x0) goto LAB_000e13a8;\n      iVar9 = piVar4[2];\n    }" ({ "{") (expression_statement "piVar4 = (int *)*piVar1;" (assignment_expression "piVar4 = (int *)*piVar1" (identifier "piVar4") (= "=") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (; ";")) (expression_statement "piVar7 = piVar1;" (assignment_expression "piVar7 = piVar1" (identifier "piVar7") (= "=") (identifier "piVar1")) (; ";")) (if_statement "if (piVar4 == (int *)0x0) goto LAB_000e13a8;" (if "if") (parenthesized_expression "(piVar4 == (int *)0x0)" (( "(") (binary_expression "piVar4 == (int *)0x0" (identifier "piVar4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000e13a8;" (goto "goto") (statement_identifier "LAB_000e13a8") (; ";"))) (expression_statement "iVar9 = piVar4[2];" (assignment_expression "iVar9 = piVar4[2]" (identifier "iVar9") (= "=") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}"))) (expression_statement "iVar9 = piVar1[1];" (assignment_expression "iVar9 = piVar1[1]" (identifier "iVar9") (= "=") (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (iVar9 + -0xffff <= param_4) {\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }" (if "if") (parenthesized_expression "(iVar9 + -0xffff <= param_4)" (( "(") (binary_expression "iVar9 + -0xffff <= param_4" (binary_expression "iVar9 + -0xffff" (identifier "iVar9") (+ "+") (number_literal "-0xffff")) (<= "<=") (identifier "param_4")) () ")")) (compound_statement "{\n      iVar3 = piVar1[2];\n      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;\n      if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }\n      if (iVar6 == iVar9) {\n        return;\n      }\n      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);\n      puVar10[1] = puVar10[1] + (iVar9 - iVar6);\n      return;\n    }" ({ "{") (expression_statement "iVar3 = piVar1[2];" (assignment_expression "iVar3 = piVar1[2]" (identifier "iVar3") (= "=") (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;" (assignment_expression "iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10" (identifier "iVar6") (= "=") (binary_expression "(iVar3 - iVar9) + 0x1ffff >> 0x10" (binary_expression "(iVar3 - iVar9) + 0x1ffff" (parenthesized_expression "(iVar3 - iVar9)" (( "(") (binary_expression "iVar3 - iVar9" (identifier "iVar3") (- "-") (identifier "iVar9")) () ")")) (+ "+") (number_literal "0x1ffff")) (>> ">>") (number_literal "0x10"))) (; ";")) (if_statement "if (param_4 < iVar9) {\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }\n      else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }" (if "if") (parenthesized_expression "(param_4 < iVar9)" (( "(") (binary_expression "param_4 < iVar9" (identifier "param_4") (< "<") (identifier "iVar9")) () ")")) (compound_statement "{\n        piVar1[1] = param_4;\n        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;\n      }" ({ "{") (expression_statement "piVar1[1] = param_4;" (assignment_expression "piVar1[1] = param_4" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;" (assignment_expression "iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10" (identifier "iVar9") (= "=") (binary_expression "(iVar3 - param_4) + 0x1ffff >> 0x10" (binary_expression "(iVar3 - param_4) + 0x1ffff" (parenthesized_expression "(iVar3 - param_4)" (( "(") (binary_expression "iVar3 - param_4" (identifier "iVar3") (- "-") (identifier "param_4")) () ")")) (+ "+") (number_literal "0x1ffff")) (>> ">>") (number_literal "0x10"))) (; ";")) (} "}")) (else_clause "else {\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }" (else "else") (compound_statement "{\n        if (param_4 <= iVar3) {\n          return;\n        }\n        piVar7 = (int *)*piVar1;\n        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }\n      }" ({ "{") (if_statement "if (param_4 <= iVar3) {\n          return;\n        }" (if "if") (parenthesized_expression "(param_4 <= iVar3)" (( "(") (binary_expression "param_4 <= iVar3" (identifier "param_4") (<= "<=") (identifier "iVar3")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "piVar7 = (int *)*piVar1;" (assignment_expression "piVar7 = (int *)*piVar1" (identifier "piVar7") (= "=") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (; ";")) (if_statement "if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }\n        else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }" (if "if") (parenthesized_expression "((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff))" (( "(") (binary_expression "(piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)" (parenthesized_expression "(piVar7 == (int *)0x0)" (( "(") (binary_expression "piVar7 == (int *)0x0" (identifier "piVar7") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)" (( "(") (comma_expression "iVar3 = piVar7[1], param_4 < iVar3 + -0xffff" (assignment_expression "iVar3 = piVar7[1]" (identifier "iVar3") (= "=") (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]"))) (, ",") (binary_expression "param_4 < iVar3 + -0xffff" (identifier "param_4") (< "<") (binary_expression "iVar3 + -0xffff" (identifier "iVar3") (+ "+") (number_literal "-0xffff")))) () ")"))) () ")")) (compound_statement "{\n          piVar1[2] = param_4;\n          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;\n        }" ({ "{") (expression_statement "piVar1[2] = param_4;" (assignment_expression "piVar1[2] = param_4" (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;" (assignment_expression "iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10" (identifier "iVar9") (= "=") (binary_expression "(param_4 - iVar9) + 0x1ffff >> 0x10" (binary_expression "(param_4 - iVar9) + 0x1ffff" (parenthesized_expression "(param_4 - iVar9)" (( "(") (binary_expression "param_4 - iVar9" (identifier "param_4") (- "-") (identifier "iVar9")) () ")")) (+ "+") (number_literal "0x1ffff")) (>> ">>") (number_literal "0x10"))) (; ";")) (} "}")) (else_clause "else {\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }" (else "else") (compound_statement "{\n          iVar5 = piVar7[2];\n          iVar8 = *piVar7;\n          piVar1[2] = iVar5;\n          *piVar1 = iVar8;\n          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;\n          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);\n        }" ({ "{") (expression_statement "iVar5 = piVar7[2];" (assignment_expression "iVar5 = piVar7[2]" (identifier "iVar5") (= "=") (subscript_expression "piVar7[2]" (identifier "piVar7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar8 = *piVar7;" (assignment_expression "iVar8 = *piVar7" (identifier "iVar8") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "piVar1[2] = iVar5;" (assignment_expression "piVar1[2] = iVar5" (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*piVar1 = iVar8;" (assignment_expression "*piVar1 = iVar8" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;" (assignment_expression "iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10" (identifier "iVar9") (= "=") (binary_expression "(iVar5 - iVar9) + 0x1ffff >> 0x10" (binary_expression "(iVar5 - iVar9) + 0x1ffff" (parenthesized_expression "(iVar5 - iVar9)" (( "(") (binary_expression "iVar5 - iVar9" (identifier "iVar5") (- "-") (identifier "iVar9")) () ")")) (+ "+") (number_literal "0x1ffff")) (>> ">>") (number_literal "0x10"))) (; ";")) (expression_statement "iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);" (assignment_expression "iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10)" (identifier "iVar6") (= "=") (binary_expression "iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10)" (identifier "iVar6") (+ "+") (parenthesized_expression "((iVar5 - iVar3) + 0x1ffff >> 0x10)" (( "(") (binary_expression "(iVar5 - iVar3) + 0x1ffff >> 0x10" (binary_expression "(iVar5 - iVar3) + 0x1ffff" (parenthesized_expression "(iVar5 - iVar3)" (( "(") (binary_expression "iVar5 - iVar3" (identifier "iVar5") (- "-") (identifier "iVar3")) () ")")) (+ "+") (number_literal "0x1ffff")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (iVar6 == iVar9) {\n        return;\n      }" (if "if") (parenthesized_expression "(iVar6 == iVar9)" (( "(") (binary_expression "iVar6 == iVar9" (identifier "iVar6") (== "==") (identifier "iVar9")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);" (assignment_expression "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6)" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 4) + (iVar9 - iVar6)" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (parenthesized_expression "(iVar9 - iVar6)" (( "(") (binary_expression "iVar9 - iVar6" (identifier "iVar9") (- "-") (identifier "iVar6")) () ")")))) (; ";")) (expression_statement "puVar10[1] = puVar10[1] + (iVar9 - iVar6);" (assignment_expression "puVar10[1] = puVar10[1] + (iVar9 - iVar6)" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "puVar10[1] + (iVar9 - iVar6)" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (+ "+") (parenthesized_expression "(iVar9 - iVar6)" (( "(") (binary_expression "iVar9 - iVar6" (identifier "iVar9") (- "-") (identifier "iVar6")) () ")")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_000e13a8:\n  piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (statement_identifier "LAB_000e13a8") (: ":") (expression_statement "piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);" (assignment_expression "piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR_operator_new_004c13a8)(0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0xc)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0xc)" (( "(") (number_literal "0xc") () ")"))))) (; ";"))) (expression_statement "iVar9 = *(int *)(param_1 + 4);" (assignment_expression "iVar9 = *(int *)(param_1 + 4)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*piVar4 = 0;" (assignment_expression "*piVar4 = 0" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = *piVar7;" (assignment_expression "iVar3 = *piVar7" (identifier "iVar3") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "piVar4[1] = param_4;" (assignment_expression "piVar4[1] = param_4" (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "piVar4[2] = param_4;" (assignment_expression "piVar4[2] = param_4" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*piVar4 = iVar3;" (assignment_expression "*piVar4 = iVar3" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "*piVar7 = (int)piVar4;" (assignment_expression "*piVar7 = (int)piVar4" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (= "=") (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4"))) (; ";")) (expression_statement "*(int *)(param_1 + 4) = iVar9 + 1;" (assignment_expression "*(int *)(param_1 + 4) = iVar9 + 1" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar10[1] = puVar10[1] + 1;" (assignment_expression "puVar10[1] = puVar10[1] + 1" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "puVar10[1] + 1" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (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: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) consequence: (compound_statement (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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)) right: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)) right: (number_literal)))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (return_statement))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (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: (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)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (return_statement))))

void MASKED(int param_1,int param_2,int param_3,int param_4)

{
  int *piVar1;
  undefined *puVar2;
  int iVar3;
  int *piVar4;
  int iVar5;
  int iVar6;
  int *piVar7;
  int iVar8;
  int iVar9;
  undefined4 *puVar10;
  undefined4 uVar11;
  undefined1 auStack_30 [8];
  int *local_28 [2];
  int local_20 [3];
  
  local_28[0] = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);
  iVar9 = param_1 + 0x50;
  *local_28[0] = param_2;
  local_28[0][1] = param_3;
  local_28[0][2] = 0;
  FUN_000d0184(local_20,iVar9,local_28);
  if (local_20[0] == 0) {
    FUN_000d9ec4(auStack_30,iVar9);
    puVar10 = *(undefined4 **)(param_2 + 0x1fc);
  }
  else {
    local_28[0] = *(int **)(local_20[0] + 4);
    puVar10 = *(undefined4 **)(param_2 + 0x1fc);
  }
  if (puVar10 == (undefined4 *)0x0) {
    puVar10 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x9c);
    *puVar10 = 0;
    puVar10[1] = 0;
    puVar2 = PTR_s_ral_options14Struct_no_crefE_004c127c;
    puVar10[2] = 0;
    puVar10[3] = 0;
    uVar11 = *(undefined4 *)(puVar2 + 0x355c);
    puVar10[4] = 0;
    puVar10[5] = 0xffffffff;
    puVar10[9] = 0;
    puVar10[0xc] = 0;
    puVar10[6] = puVar10 + 0xc;
    puVar10[7] = 1;
    puVar10[8] = 0;
    puVar10[10] = uVar11;
    puVar10[0xb] = 0;
    puVar10[0x10] = 0;
    puVar10[0x13] = 0;
    puVar10[0xd] = puVar10 + 0x13;
    puVar10[0xe] = 1;
    puVar10[0xf] = 0;
    puVar10[0x11] = uVar11;
    puVar10[0x12] = 0;
    puVar10[0x17] = 0;
    puVar10[0x1a] = 0;
    puVar10[0x14] = puVar10 + 0x1a;
    puVar10[0x15] = 1;
    puVar10[0x16] = 0;
    puVar10[0x18] = uVar11;
    puVar10[0x19] = 0;
    puVar10[0x1b] = 0;
    puVar10[0x1c] = 0;
    puVar10[0x20] = 0;
    puVar10[0x23] = 0;
    puVar10[0x1d] = puVar10 + 0x23;
    puVar10[0x21] = uVar11;
    puVar10[0x1e] = 1;
    puVar10[0x1f] = 0;
    puVar10[0x22] = 0;
    puVar10[0x24] = 0;
    puVar10[0x25] = 0xffffffff;
    puVar10[0x26] = 0;
    *(undefined4 **)(param_2 + 0x1fc) = puVar10;
  }
  piVar4 = (int *)local_28[0][2];
  piVar7 = local_28[0] + 2;
  if (piVar4 != (int *)0x0) {
    iVar9 = piVar4[2];
    while (piVar1 = piVar4, iVar9 + 0xffff < param_4) {
      piVar4 = (int *)*piVar1;
      piVar7 = piVar1;
      if (piVar4 == (int *)0x0) goto LAB_000e13a8;
      iVar9 = piVar4[2];
    }
    iVar9 = piVar1[1];
    if (iVar9 + -0xffff <= param_4) {
      iVar3 = piVar1[2];
      iVar6 = (iVar3 - iVar9) + 0x1ffff >> 0x10;
      if (param_4 < iVar9) {
        piVar1[1] = param_4;
        iVar9 = (iVar3 - param_4) + 0x1ffff >> 0x10;
      }
      else {
        if (param_4 <= iVar3) {
          return;
        }
        piVar7 = (int *)*piVar1;
        if ((piVar7 == (int *)0x0) || (iVar3 = piVar7[1], param_4 < iVar3 + -0xffff)) {
          piVar1[2] = param_4;
          iVar9 = (param_4 - iVar9) + 0x1ffff >> 0x10;
        }
        else {
          iVar5 = piVar7[2];
          iVar8 = *piVar7;
          piVar1[2] = iVar5;
          *piVar1 = iVar8;
          iVar9 = (iVar5 - iVar9) + 0x1ffff >> 0x10;
          iVar6 = iVar6 + ((iVar5 - iVar3) + 0x1ffff >> 0x10);
        }
      }
      if (iVar6 == iVar9) {
        return;
      }
      *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + (iVar9 - iVar6);
      puVar10[1] = puVar10[1] + (iVar9 - iVar6);
      return;
    }
  }
LAB_000e13a8:
  piVar4 = (int *)(*(code *)PTR_operator_new_004c13a8)(0xc);
  iVar9 = *(int *)(param_1 + 4);
  *piVar4 = 0;
  iVar3 = *piVar7;
  piVar4[1] = param_4;
  piVar4[2] = param_4;
  *piVar4 = iVar3;
  *piVar7 = (int)piVar4;
  *(int *)(param_1 + 4) = iVar9 + 1;
  puVar10[1] = puVar10[1] + 1;
  return;
}

