
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* DWARF original prototype: void define_with_copy_reloc<64>(Symbol_table * this, Sized_symbol<64> *
   csym, Output_data * posd, Elf_Addr value) */

void __thiscall
gold::Symbol_table::define_with_copy_reloc<64>
          (Symbol_table *this,Sized_symbol<64> *csym,Output_data *posd,Elf_Addr value)

{
  undefined1 *puVar1;
  byte bVar2;
  byte bVar3;
  Output_segment *pOVar4;
  STB binding;
  mapped_type *ppDVar5;
  mapped_type *ppSVar6;
  Symbol *sym;
  Sized_symbol<64> *local_20 [4];
  
  if (((csym->super_Symbol).field_0x2a & 7) == 0) {
    pOVar4 = (csym->super_Symbol).u1_.output_segment;
    if ((((Object *)pOVar4->output_lists_)->field_0x2c & 1) != 0) {
      if (((csym->super_Symbol).field_0x2b & 8) != 0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/symtab.cc",0x952,"define_with_copy_reloc");
      }
      bVar2 = (csym->super_Symbol).field_0x28;
      binding = (STB)(bVar2 >> 4);
      if (binding == STB_WEAK) {
        binding = STB_GLOBAL;
      }
      bVar3 = (csym->super_Symbol).field_0x29;
      define_in_output_data
                (this,(csym->super_Symbol).name_,(csym->super_Symbol).version_,COPY,posd,value,
                 csym->symsize_,bVar2 & STT_HIPROC,binding,bVar3 & STV_PROTECTED,bVar3 >> 2,false,
                 false);
      local_20[0] = csym;
      puVar1 = &(csym->super_Symbol).field_0x2a;
      *(ushort *)puVar1 = *(ushort *)puVar1 | 0x840;
      ppDVar5 = std::__detail::
                _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>
                ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>
                              *)&this->copied_symbol_dynobjs_,(key_type *)local_20);
      *ppDVar5 = (mapped_type)pOVar4;
      if (((csym->super_Symbol).field_0x2a & 0x20) != 0) {
        sym = &csym->super_Symbol;
        while( true ) {
          ppSVar6 = std::__detail::
                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>
                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>
                                  *)&this->weak_aliases_,&sym);
          sym = *ppSVar6;
          if ((Sized_symbol<64> *)sym == csym) break;
          if (((((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7) != 1) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");
          }
          if ((Object *)posd != (((Sized_symbol<64> *)sym)->super_Symbol).u1_.object) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/symtab.cc",0x972,"define_with_copy_reloc");
          }
          puVar1 = &(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b;
          *puVar1 = *puVar1 | 8;
          local_20[0] = (Sized_symbol<64> *)sym;
          ppDVar5 = std::__detail::
                    _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>
                    ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>
                                  *)&this->copied_symbol_dynobjs_,(key_type *)local_20);
          *ppDVar5 = (mapped_type)pOVar4;
        }
      }
      return;
    }
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/symtab.cc",0x951,"define_with_copy_reloc");
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void FUN_0015abb0(int param_1,undefined4 *param_2,int param_3,undefined4 param_4,undefined4 param_5)

{
  int iVar1;
  byte bVar2;
  int *piVar3;
  undefined4 *local_24;
  undefined4 *local_20 [4];
  
  if ((*(byte *)((int)param_2 + 0x2a) & 7) == 0) {
    iVar1 = param_2[2];
    if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {
      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);
      }
      bVar2 = *(byte *)(param_2 + 10) >> 4;
      if (bVar2 == 2) {
        bVar2 = 1;
      }
      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],
                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,
                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);
      local_20[0] = param_2;
      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;
      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);
      *piVar3 = iVar1;
      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {
        local_24 = param_2;
        while( true ) {
          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);
          local_24 = (undefined4 *)*local_24;
          if (local_24 == param_2) break;
          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {
                    /* WARNING: Subroutine does not return */
            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");
          }
          if (param_3 != local_24[2]) {
                    /* WARNING: Subroutine does not return */
            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");
          }
          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;
          local_20[0] = local_24;
          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);
          *piVar3 = iVar1;
        }
      }
      return;
    }
  }
                    /* WARNING: Subroutine does not return */
  FUN_0008b620("../../gold/symtab.cc",0x951,"define_with_copy_reloc");
}


CALL 0x00058c42
ADD EAX,0x1e444b
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x2c
MOV EBX,dword ptr [ESP + 0x44]
MOV EDI,dword ptr [ESP + 0x4c]
MOV dword ptr [ESP + 0xc],EAX
MOV EBP,dword ptr [ESP + 0x50]
TEST byte ptr [EBX + 0x2a],0x7
JNZ 0x0015acf0
MOV EAX,dword ptr [EBX + 0x8]
MOV dword ptr [ESP + 0x8],EAX
TEST byte ptr [EAX + 0x2c],0x1
JZ 0x0015acf0
TEST byte ptr [EBX + 0x2b],0x8
JNZ 0x0015ad4d
MOVZX ESI,byte ptr [EBX + 0x28]
MOV EDX,0x1
MOV EAX,ESI
SHR AL,0x4
MOVZX EAX,AL
CMP EAX,0x2
CMOVZ EAX,EDX
SUB ESP,0x4
AND ESI,0xf
PUSH 0x0
PUSH 0x0
MOVZX EDX,byte ptr [EBX + 0x29]
MOV ECX,EDX
AND EDX,0x3
SHR CL,0x2
MOVZX ECX,CL
PUSH ECX
PUSH EDX
PUSH EAX
PUSH ESI
PUSH dword ptr [EBX + 0x3c]
PUSH dword ptr [EBX + 0x38]
PUSH EBP
PUSH EDI
PUSH dword ptr [ESP + 0x74]
PUSH 0x1
PUSH dword ptr [EBX + 0x4]
PUSH dword ptr [EBX]
PUSH dword ptr [ESP + 0x7c]
CALL 0x00151380
MOV EAX,dword ptr [ESP + 0x80]
MOV dword ptr [ESP + 0x5c],EBX
ADD ESP,0x38
OR word ptr [EBX + 0x2a],0x840
LEA EBP,[ESP + 0x24]
LEA EDI,[EAX + 0x138]
PUSH EBP
PUSH EDI
CALL 0x001570e0
MOV ESI,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV dword ptr [EAX],ESI
TEST byte ptr [EBX + 0x2a],0x20
JZ 0x0015ace5
MOV EAX,dword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x18],EBX
MOV dword ptr [ESP + 0x44],EBX
LEA ESI,[EAX + 0xa8]
LEA EAX,[ESP + 0x18]
MOV EBX,EAX
JMP 0x0015accc
MOVZX EDX,byte ptr [EAX + 0x2a]
AND EDX,0x7
CMP DL,0x1
JNZ 0x0015ad0f
MOV ECX,dword ptr [EAX + 0x8]
CMP dword ptr [ESP + 0x48],ECX
JNZ 0x0015ad2e
SUB ESP,0x8
OR byte ptr [EAX + 0x2b],0x8
MOV dword ptr [ESP + 0x24],EAX
PUSH EBP
PUSH EDI
CALL 0x001570e0
MOV ECX,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV dword ptr [EAX],ECX
SUB ESP,0x8
PUSH EBX
PUSH ESI
CALL 0x001574b0
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x28],EAX
ADD ESP,0x10
CMP EAX,dword ptr [ESP + 0x44]
JNZ 0x0015ac98
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xfff23d20]
PUSH EAX
LEA EAX,[EBX + 0xfff23891]
PUSH 0x951
PUSH EAX
CALL 0x0008b620
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xfff23f3c]
PUSH EAX
LEA EAX,[EBX + 0xfff0c3e0]
PUSH 0xb5
PUSH EAX
CALL 0x0008b620
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xfff23d20]
PUSH EAX
LEA EAX,[EBX + 0xfff23891]
PUSH 0x972
PUSH EAX
CALL 0x0008b620
PUSH EAX
MOV EBX,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xfff23d20]
PUSH EAX
LEA EAX,[EBX + 0xfff23891]
PUSH 0x952
PUSH EAX
CALL 0x0008b620
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_0015abb0(int param_1,undefined4 *param_2,int param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  int iVar1;\n  byte bVar2;\n  int *piVar3;\n  undefined4 *local_24;\n  undefined4 *local_20 [4];\n  \n  if ((*(byte *)((int)param_2 + 0x2a) & 7) == 0) {\n    iVar1 = param_2[2];\n    if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0008b620("../../gold/symtab.cc",0x951,"define_with_copy_reloc");\n}\n\n" comment (function_definition "void FUN_0015abb0(int param_1,undefined4 *param_2,int param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  int iVar1;\n  byte bVar2;\n  int *piVar3;\n  undefined4 *local_24;\n  undefined4 *local_20 [4];\n  \n  if ((*(byte *)((int)param_2 + 0x2a) & 7) == 0) {\n    iVar1 = param_2[2];\n    if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0008b620("../../gold/symtab.cc",0x951,"define_with_copy_reloc");\n}" primitive_type (function_declarator "FUN_0015abb0(int param_1,undefined4 *param_2,int param_3,undefined4 param_4,undefined4 param_5)" identifier (parameter_list "(int param_1,undefined4 *param_2,int param_3,undefined4 param_4,undefined4 param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  byte bVar2;\n  int *piVar3;\n  undefined4 *local_24;\n  undefined4 *local_20 [4];\n  \n  if ((*(byte *)((int)param_2 + 0x2a) & 7) == 0) {\n    iVar1 = param_2[2];\n    if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0008b620("../../gold/symtab.cc",0x951,"define_with_copy_reloc");\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 *local_20 [4];" type_identifier (pointer_declarator "*local_20 [4]" * (array_declarator "local_20 [4]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)((int)param_2 + 0x2a) & 7) == 0) {\n    iVar1 = param_2[2];\n    if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }\n  }" if (parenthesized_expression "((*(byte *)((int)param_2 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)param_2 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_2 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_2 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_2 + 0x2a)" * (cast_expression "(byte *)((int)param_2 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2a)" ( (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar1 = param_2[2];\n    if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }\n  }" { (expression_statement "iVar1 = param_2[2];" (assignment_expression "iVar1 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }" if (parenthesized_expression "((*(byte *)(iVar1 + 0x2c) & 1) != 0)" ( (binary_expression "(*(byte *)(iVar1 + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(iVar1 + 0x2c) & 1)" ( (binary_expression "*(byte *)(iVar1 + 0x2c) & 1" (pointer_expression "*(byte *)(iVar1 + 0x2c)" * (cast_expression "(byte *)(iVar1 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }" { (if_statement "if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }" if (parenthesized_expression "((*(byte *)((int)param_2 + 0x2b) & 8) != 0)" ( (binary_expression "(*(byte *)((int)param_2 + 0x2b) & 8) != 0" (parenthesized_expression "(*(byte *)((int)param_2 + 0x2b) & 8)" ( (binary_expression "*(byte *)((int)param_2 + 0x2b) & 8" (pointer_expression "*(byte *)((int)param_2 + 0x2b)" * (cast_expression "(byte *)((int)param_2 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2b)" ( (binary_expression "(int)param_2 + 0x2b" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }" { comment (expression_statement "FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);" (call_expression "FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1)" identifier (argument_list "("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1)" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_with_copy_reloc"" " string_content ") , identifier ))) ;) })) (expression_statement "bVar2 = *(byte *)(param_2 + 10) >> 4;" (assignment_expression "bVar2 = *(byte *)(param_2 + 10) >> 4" identifier = (binary_expression "*(byte *)(param_2 + 10) >> 4" (pointer_expression "*(byte *)(param_2 + 10)" * (cast_expression "(byte *)(param_2 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) >> number_literal)) ;) (if_statement "if (bVar2 == 2) {\n        bVar2 = 1;\n      }" if (parenthesized_expression "(bVar2 == 2)" ( (binary_expression "bVar2 == 2" identifier == number_literal) )) (compound_statement "{\n        bVar2 = 1;\n      }" { (expression_statement "bVar2 = 1;" (assignment_expression "bVar2 = 1" identifier = number_literal) ;) })) (expression_statement "FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);" (call_expression "FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0)" identifier (argument_list "(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0)" ( identifier , (pointer_expression "*param_2" * identifier) , (subscript_expression "param_2[1]" identifier [ number_literal ]) , number_literal , identifier , identifier , identifier , (subscript_expression "param_2[0xe]" identifier [ number_literal ]) , (subscript_expression "param_2[0xf]" identifier [ number_literal ]) , (binary_expression "*(byte *)(param_2 + 10) & 0xf" (pointer_expression "*(byte *)(param_2 + 10)" * (cast_expression "(byte *)(param_2 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) & number_literal) , identifier , (binary_expression "*(byte *)((int)param_2 + 0x29) & 3" (pointer_expression "*(byte *)((int)param_2 + 0x29)" * (cast_expression "(byte *)((int)param_2 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x29)" ( (binary_expression "(int)param_2 + 0x29" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) , (binary_expression "*(byte *)((int)param_2 + 0x29) >> 2" (pointer_expression "*(byte *)((int)param_2 + 0x29)" * (cast_expression "(byte *)((int)param_2 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x29)" ( (binary_expression "(int)param_2 + 0x29" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) , number_literal , number_literal ))) ;) (expression_statement "local_20[0] = param_2;" (assignment_expression "local_20[0] = param_2" (subscript_expression "local_20[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;" (assignment_expression "*(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840" (pointer_expression "*(ushort *)((int)param_2 + 0x2a)" * (cast_expression "(ushort *)((int)param_2 + 0x2a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2a)" ( (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(ushort *)((int)param_2 + 0x2a) | 0x840" (pointer_expression "*(ushort *)((int)param_2 + 0x2a)" * (cast_expression "(ushort *)((int)param_2 + 0x2a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2a)" ( (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);" (assignment_expression "piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20)" identifier = (cast_expression "(int *)FUN_001570e0(param_1 + 0x138,local_20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001570e0(param_1 + 0x138,local_20)" identifier (argument_list "(param_1 + 0x138,local_20)" ( (binary_expression "param_1 + 0x138" identifier + number_literal) , identifier ))))) ;) (expression_statement "*piVar3 = iVar1;" (assignment_expression "*piVar3 = iVar1" (pointer_expression "*piVar3" * identifier) = identifier) ;) (if_statement "if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }" if (parenthesized_expression "((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)param_2 + 0x2a) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)param_2 + 0x2a) & 0x20)" ( (binary_expression "*(byte *)((int)param_2 + 0x2a) & 0x20" (pointer_expression "*(byte *)((int)param_2 + 0x2a)" * (cast_expression "(byte *)((int)param_2 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2a)" ( (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }" { (expression_statement "local_24 = param_2;" (assignment_expression "local_24 = param_2" identifier = identifier) ;) (while_statement "while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }" { (expression_statement "local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);" (assignment_expression "local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24)" identifier = (cast_expression "(undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001574b0(param_1 + 0xa8,&local_24)" identifier (argument_list "(param_1 + 0xa8,&local_24)" ( (binary_expression "param_1 + 0xa8" identifier + number_literal) , (pointer_expression "&local_24" & identifier) ))))) ;) (expression_statement "local_24 = (undefined4 *)*local_24;" (assignment_expression "local_24 = (undefined4 *)*local_24" identifier = (cast_expression "(undefined4 *)*local_24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_24" * identifier))) ;) (if_statement "if (local_24 == param_2) break;" if (parenthesized_expression "(local_24 == param_2)" ( (binary_expression "local_24 == param_2" identifier == identifier) )) (break_statement "break;" break ;)) (if_statement "if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }" if (parenthesized_expression "((*(byte *)((int)local_24 + 0x2a) & 7) != 1)" ( (binary_expression "(*(byte *)((int)local_24 + 0x2a) & 7) != 1" (parenthesized_expression "(*(byte *)((int)local_24 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_24 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_24 + 0x2a)" * (cast_expression "(byte *)((int)local_24 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_24 + 0x2a)" ( (binary_expression "(int)local_24 + 0x2a" (cast_expression "(int)local_24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }" { comment (expression_statement "FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");" (call_expression "FUN_0008b620("../../gold/symtab.h",0xb5,"output_data")" identifier (argument_list "("../../gold/symtab.h",0xb5,"output_data")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_data"" " string_content ") ))) ;) })) (if_statement "if (param_3 != local_24[2]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }" if (parenthesized_expression "(param_3 != local_24[2])" ( (binary_expression "param_3 != local_24[2]" identifier != (subscript_expression "local_24[2]" identifier [ number_literal ])) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }" { comment (expression_statement "FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");" (call_expression "FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc")" identifier (argument_list "("../../gold/symtab.cc",0x972,"define_with_copy_reloc")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_with_copy_reloc"" " string_content ") ))) ;) })) (expression_statement "*(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;" (assignment_expression "*(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8" (pointer_expression "*(byte *)((int)local_24 + 0x2b)" * (cast_expression "(byte *)((int)local_24 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_24 + 0x2b)" ( (binary_expression "(int)local_24 + 0x2b" (cast_expression "(int)local_24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)local_24 + 0x2b) | 8" (pointer_expression "*(byte *)((int)local_24 + 0x2b)" * (cast_expression "(byte *)((int)local_24 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_24 + 0x2b)" ( (binary_expression "(int)local_24 + 0x2b" (cast_expression "(int)local_24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "local_20[0] = local_24;" (assignment_expression "local_20[0] = local_24" (subscript_expression "local_20[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);" (assignment_expression "piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20)" identifier = (cast_expression "(int *)FUN_001570e0(param_1 + 0x138,local_20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001570e0(param_1 + 0x138,local_20)" identifier (argument_list "(param_1 + 0x138,local_20)" ( (binary_expression "param_1 + 0x138" identifier + number_literal) , identifier ))))) ;) (expression_statement "*piVar3 = iVar1;" (assignment_expression "*piVar3 = iVar1" (pointer_expression "*piVar3" * identifier) = identifier) ;) })) })) (return_statement "return;" return ;) })) })) comment (expression_statement "FUN_0008b620("../../gold/symtab.cc",0x951,"define_with_copy_reloc");" (call_expression "FUN_0008b620("../../gold/symtab.cc",0x951,"define_with_copy_reloc")" identifier (argument_list "("../../gold/symtab.cc",0x951,"define_with_copy_reloc")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_with_copy_reloc"" " string_content ") ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Enum "STT": Some values do not have unique names */\n/* WARNING: Enum "STB": Some values do not have unique names */\n/* DWARF original prototype: void define_with_copy_reloc<64>(Symbol_table * this, Sized_symbol<64> *\n   csym, Output_data * posd, Elf_Addr value) */\n\nvoid __thiscall\ngold::Symbol_table::define_with_copy_reloc<64>\n          (Symbol_table *this,Sized_symbol<64> *csym,Output_data *posd,Elf_Addr value)\n\n{\n  undefined1 *puVar1;\n  byte bVar2;\n  byte bVar3;\n  Output_segment *pOVar4;\n  STB binding;\n  mapped_type *ppDVar5;\n  mapped_type *ppSVar6;\n  Symbol *sym;\n  Sized_symbol<64> *local_20 [4];\n  \n  if (((csym->super_Symbol).field_0x2a & 7) == 0) {\n    pOVar4 = (csym->super_Symbol).u1_.output_segment;\n    if ((((Object *)pOVar4->output_lists_)->field_0x2c & 1) != 0) {\n      if (((csym->super_Symbol).field_0x2b & 8) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x952,"define_with_copy_reloc");\n      }\n      bVar2 = (csym->super_Symbol).field_0x28;\n      binding = (STB)(bVar2 >> 4);\n      if (binding == STB_WEAK) {\n        binding = STB_GLOBAL;\n      }\n      bVar3 = (csym->super_Symbol).field_0x29;\n      define_in_output_data\n                (this,(csym->super_Symbol).name_,(csym->super_Symbol).version_,COPY,posd,value,\n                 csym->symsize_,bVar2 & STT_HIPROC,binding,bVar3 & STV_PROTECTED,bVar3 >> 2,false,\n                 false);\n      local_20[0] = csym;\n      puVar1 = &(csym->super_Symbol).field_0x2a;\n      *(ushort *)puVar1 = *(ushort *)puVar1 | 0x840;\n      ppDVar5 = std::__detail::\n                _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                              *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n      *ppDVar5 = (mapped_type)pOVar4;\n      if (((csym->super_Symbol).field_0x2a & 0x20) != 0) {\n        sym = &csym->super_Symbol;\n        while( true ) {\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,&sym);\n          sym = *ppSVar6;\n          if ((Sized_symbol<64> *)sym == csym) break;\n          if (((((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if ((Object *)posd != (((Sized_symbol<64> *)sym)->super_Symbol).u1_.object) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          puVar1 = &(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b;\n          *puVar1 = *puVar1 | 8;\n          local_20[0] = (Sized_symbol<64> *)sym;\n          ppDVar5 = std::__detail::\n                    _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n          *ppDVar5 = (mapped_type)pOVar4;\n        }\n      }\n      return;\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/symtab.cc",0x951,"define_with_copy_reloc");\n}\n\n" comment comment comment comment (function_definition "void __thiscall\ngold::Symbol_table::define_with_copy_reloc<64>\n          (Symbol_table *this,Sized_symbol<64> *csym,Output_data *posd,Elf_Addr value)\n\n{\n  undefined1 *puVar1;\n  byte bVar2;\n  byte bVar3;\n  Output_segment *pOVar4;\n  STB binding;\n  mapped_type *ppDVar5;\n  mapped_type *ppSVar6;\n  Symbol *sym;\n  Sized_symbol<64> *local_20 [4];\n  \n  if (((csym->super_Symbol).field_0x2a & 7) == 0) {\n    pOVar4 = (csym->super_Symbol).u1_.output_segment;\n    if ((((Object *)pOVar4->output_lists_)->field_0x2c & 1) != 0) {\n      if (((csym->super_Symbol).field_0x2b & 8) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x952,"define_with_copy_reloc");\n      }\n      bVar2 = (csym->super_Symbol).field_0x28;\n      binding = (STB)(bVar2 >> 4);\n      if (binding == STB_WEAK) {\n        binding = STB_GLOBAL;\n      }\n      bVar3 = (csym->super_Symbol).field_0x29;\n      define_in_output_data\n                (this,(csym->super_Symbol).name_,(csym->super_Symbol).version_,COPY,posd,value,\n                 csym->symsize_,bVar2 & STT_HIPROC,binding,bVar3 & STV_PROTECTED,bVar3 >> 2,false,\n                 false);\n      local_20[0] = csym;\n      puVar1 = &(csym->super_Symbol).field_0x2a;\n      *(ushort *)puVar1 = *(ushort *)puVar1 | 0x840;\n      ppDVar5 = std::__detail::\n                _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                              *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n      *ppDVar5 = (mapped_type)pOVar4;\n      if (((csym->super_Symbol).field_0x2a & 0x20) != 0) {\n        sym = &csym->super_Symbol;\n        while( true ) {\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,&sym);\n          sym = *ppSVar6;\n          if ((Sized_symbol<64> *)sym == csym) break;\n          if (((((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if ((Object *)posd != (((Sized_symbol<64> *)sym)->super_Symbol).u1_.object) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          puVar1 = &(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b;\n          *puVar1 = *puVar1 | 8;\n          local_20[0] = (Sized_symbol<64> *)sym;\n          ppDVar5 = std::__detail::\n                    _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n          *ppDVar5 = (mapped_type)pOVar4;\n        }\n      }\n      return;\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/symtab.cc",0x951,"define_with_copy_reloc");\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) (function_declarator "define_with_copy_reloc<64>\n          (Symbol_table *this,Sized_symbol<64> *csym,Output_data *posd,Elf_Addr value)" identifier (ERROR "<64>" < number_literal >) (parameter_list "(Symbol_table *this,Sized_symbol<64> *csym,Output_data *posd,Elf_Addr value)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_symbol<64> *csym" type_identifier (ERROR "<64>" < number_literal >) (pointer_declarator "*csym" * identifier)) , (parameter_declaration "Output_data *posd" type_identifier (pointer_declarator "*posd" * identifier)) , (parameter_declaration "Elf_Addr value" type_identifier identifier) ))) (compound_statement "{\n  undefined1 *puVar1;\n  byte bVar2;\n  byte bVar3;\n  Output_segment *pOVar4;\n  STB binding;\n  mapped_type *ppDVar5;\n  mapped_type *ppSVar6;\n  Symbol *sym;\n  Sized_symbol<64> *local_20 [4];\n  \n  if (((csym->super_Symbol).field_0x2a & 7) == 0) {\n    pOVar4 = (csym->super_Symbol).u1_.output_segment;\n    if ((((Object *)pOVar4->output_lists_)->field_0x2c & 1) != 0) {\n      if (((csym->super_Symbol).field_0x2b & 8) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x952,"define_with_copy_reloc");\n      }\n      bVar2 = (csym->super_Symbol).field_0x28;\n      binding = (STB)(bVar2 >> 4);\n      if (binding == STB_WEAK) {\n        binding = STB_GLOBAL;\n      }\n      bVar3 = (csym->super_Symbol).field_0x29;\n      define_in_output_data\n                (this,(csym->super_Symbol).name_,(csym->super_Symbol).version_,COPY,posd,value,\n                 csym->symsize_,bVar2 & STT_HIPROC,binding,bVar3 & STV_PROTECTED,bVar3 >> 2,false,\n                 false);\n      local_20[0] = csym;\n      puVar1 = &(csym->super_Symbol).field_0x2a;\n      *(ushort *)puVar1 = *(ushort *)puVar1 | 0x840;\n      ppDVar5 = std::__detail::\n                _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                              *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n      *ppDVar5 = (mapped_type)pOVar4;\n      if (((csym->super_Symbol).field_0x2a & 0x20) != 0) {\n        sym = &csym->super_Symbol;\n        while( true ) {\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,&sym);\n          sym = *ppSVar6;\n          if ((Sized_symbol<64> *)sym == csym) break;\n          if (((((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if ((Object *)posd != (((Sized_symbol<64> *)sym)->super_Symbol).u1_.object) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          puVar1 = &(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b;\n          *puVar1 = *puVar1 | 8;\n          local_20[0] = (Sized_symbol<64> *)sym;\n          ppDVar5 = std::__detail::\n                    _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n          *ppDVar5 = (mapped_type)pOVar4;\n        }\n      }\n      return;\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/symtab.cc",0x951,"define_with_copy_reloc");\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "Output_segment *pOVar4;" type_identifier (pointer_declarator "*pOVar4" * identifier) ;) (declaration "STB binding;" type_identifier identifier ;) (declaration "mapped_type *ppDVar5;" type_identifier (pointer_declarator "*ppDVar5" * identifier) ;) (declaration "mapped_type *ppSVar6;" type_identifier (pointer_declarator "*ppSVar6" * identifier) ;) (declaration "Symbol *sym;" type_identifier (pointer_declarator "*sym" * identifier) ;) (expression_statement "Sized_symbol<64> *local_20 [4];" (binary_expression "Sized_symbol<64> *local_20 [4]" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*local_20 [4]" * (subscript_expression "local_20 [4]" identifier [ number_literal ]))) ;) (if_statement "if (((csym->super_Symbol).field_0x2a & 7) == 0) {\n    pOVar4 = (csym->super_Symbol).u1_.output_segment;\n    if ((((Object *)pOVar4->output_lists_)->field_0x2c & 1) != 0) {\n      if (((csym->super_Symbol).field_0x2b & 8) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x952,"define_with_copy_reloc");\n      }\n      bVar2 = (csym->super_Symbol).field_0x28;\n      binding = (STB)(bVar2 >> 4);\n      if (binding == STB_WEAK) {\n        binding = STB_GLOBAL;\n      }\n      bVar3 = (csym->super_Symbol).field_0x29;\n      define_in_output_data\n                (this,(csym->super_Symbol).name_,(csym->super_Symbol).version_,COPY,posd,value,\n                 csym->symsize_,bVar2 & STT_HIPROC,binding,bVar3 & STV_PROTECTED,bVar3 >> 2,false,\n                 false);\n      local_20[0] = csym;\n      puVar1 = &(csym->super_Symbol).field_0x2a;\n      *(ushort *)puVar1 = *(ushort *)puVar1 | 0x840;\n      ppDVar5 = std::__detail::\n                _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                              *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n      *ppDVar5 = (mapped_type)pOVar4;\n      if (((csym->super_Symbol).field_0x2a & 0x20) != 0) {\n        sym = &csym->super_Symbol;\n        while( true ) {\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,&sym);\n          sym = *ppSVar6;\n          if ((Sized_symbol<64> *)sym == csym) break;\n          if (((((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if ((Object *)posd != (((Sized_symbol<64> *)sym)->super_Symbol).u1_.object) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          puVar1 = &(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b;\n          *puVar1 = *puVar1 | 8;\n          local_20[0] = (Sized_symbol<64> *)sym;\n          ppDVar5 = std::__detail::\n                    _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n          *ppDVar5 = (mapped_type)pOVar4;\n        }\n      }\n      return;\n    }\n  }" if (parenthesized_expression "(((csym->super_Symbol).field_0x2a & 7) == 0)" ( (binary_expression "((csym->super_Symbol).field_0x2a & 7) == 0" (parenthesized_expression "((csym->super_Symbol).field_0x2a & 7)" ( (binary_expression "(csym->super_Symbol).field_0x2a & 7" (field_expression "(csym->super_Symbol).field_0x2a" (parenthesized_expression "(csym->super_Symbol)" ( (field_expression "csym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    pOVar4 = (csym->super_Symbol).u1_.output_segment;\n    if ((((Object *)pOVar4->output_lists_)->field_0x2c & 1) != 0) {\n      if (((csym->super_Symbol).field_0x2b & 8) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x952,"define_with_copy_reloc");\n      }\n      bVar2 = (csym->super_Symbol).field_0x28;\n      binding = (STB)(bVar2 >> 4);\n      if (binding == STB_WEAK) {\n        binding = STB_GLOBAL;\n      }\n      bVar3 = (csym->super_Symbol).field_0x29;\n      define_in_output_data\n                (this,(csym->super_Symbol).name_,(csym->super_Symbol).version_,COPY,posd,value,\n                 csym->symsize_,bVar2 & STT_HIPROC,binding,bVar3 & STV_PROTECTED,bVar3 >> 2,false,\n                 false);\n      local_20[0] = csym;\n      puVar1 = &(csym->super_Symbol).field_0x2a;\n      *(ushort *)puVar1 = *(ushort *)puVar1 | 0x840;\n      ppDVar5 = std::__detail::\n                _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                              *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n      *ppDVar5 = (mapped_type)pOVar4;\n      if (((csym->super_Symbol).field_0x2a & 0x20) != 0) {\n        sym = &csym->super_Symbol;\n        while( true ) {\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,&sym);\n          sym = *ppSVar6;\n          if ((Sized_symbol<64> *)sym == csym) break;\n          if (((((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if ((Object *)posd != (((Sized_symbol<64> *)sym)->super_Symbol).u1_.object) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          puVar1 = &(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b;\n          *puVar1 = *puVar1 | 8;\n          local_20[0] = (Sized_symbol<64> *)sym;\n          ppDVar5 = std::__detail::\n                    _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n          *ppDVar5 = (mapped_type)pOVar4;\n        }\n      }\n      return;\n    }\n  }" { (expression_statement "pOVar4 = (csym->super_Symbol).u1_.output_segment;" (assignment_expression "pOVar4 = (csym->super_Symbol).u1_.output_segment" identifier = (field_expression "(csym->super_Symbol).u1_.output_segment" (field_expression "(csym->super_Symbol).u1_" (parenthesized_expression "(csym->super_Symbol)" ( (field_expression "csym->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((((Object *)pOVar4->output_lists_)->field_0x2c & 1) != 0) {\n      if (((csym->super_Symbol).field_0x2b & 8) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x952,"define_with_copy_reloc");\n      }\n      bVar2 = (csym->super_Symbol).field_0x28;\n      binding = (STB)(bVar2 >> 4);\n      if (binding == STB_WEAK) {\n        binding = STB_GLOBAL;\n      }\n      bVar3 = (csym->super_Symbol).field_0x29;\n      define_in_output_data\n                (this,(csym->super_Symbol).name_,(csym->super_Symbol).version_,COPY,posd,value,\n                 csym->symsize_,bVar2 & STT_HIPROC,binding,bVar3 & STV_PROTECTED,bVar3 >> 2,false,\n                 false);\n      local_20[0] = csym;\n      puVar1 = &(csym->super_Symbol).field_0x2a;\n      *(ushort *)puVar1 = *(ushort *)puVar1 | 0x840;\n      ppDVar5 = std::__detail::\n                _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                              *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n      *ppDVar5 = (mapped_type)pOVar4;\n      if (((csym->super_Symbol).field_0x2a & 0x20) != 0) {\n        sym = &csym->super_Symbol;\n        while( true ) {\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,&sym);\n          sym = *ppSVar6;\n          if ((Sized_symbol<64> *)sym == csym) break;\n          if (((((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if ((Object *)posd != (((Sized_symbol<64> *)sym)->super_Symbol).u1_.object) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          puVar1 = &(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b;\n          *puVar1 = *puVar1 | 8;\n          local_20[0] = (Sized_symbol<64> *)sym;\n          ppDVar5 = std::__detail::\n                    _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n          *ppDVar5 = (mapped_type)pOVar4;\n        }\n      }\n      return;\n    }" if (parenthesized_expression "((((Object *)pOVar4->output_lists_)->field_0x2c & 1) != 0)" ( (binary_expression "(((Object *)pOVar4->output_lists_)->field_0x2c & 1) != 0" (parenthesized_expression "(((Object *)pOVar4->output_lists_)->field_0x2c & 1)" ( (binary_expression "((Object *)pOVar4->output_lists_)->field_0x2c & 1" (field_expression "((Object *)pOVar4->output_lists_)->field_0x2c" (parenthesized_expression "((Object *)pOVar4->output_lists_)" ( (cast_expression "(Object *)pOVar4->output_lists_" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar4->output_lists_" identifier -> field_identifier)) )) -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (((csym->super_Symbol).field_0x2b & 8) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x952,"define_with_copy_reloc");\n      }\n      bVar2 = (csym->super_Symbol).field_0x28;\n      binding = (STB)(bVar2 >> 4);\n      if (binding == STB_WEAK) {\n        binding = STB_GLOBAL;\n      }\n      bVar3 = (csym->super_Symbol).field_0x29;\n      define_in_output_data\n                (this,(csym->super_Symbol).name_,(csym->super_Symbol).version_,COPY,posd,value,\n                 csym->symsize_,bVar2 & STT_HIPROC,binding,bVar3 & STV_PROTECTED,bVar3 >> 2,false,\n                 false);\n      local_20[0] = csym;\n      puVar1 = &(csym->super_Symbol).field_0x2a;\n      *(ushort *)puVar1 = *(ushort *)puVar1 | 0x840;\n      ppDVar5 = std::__detail::\n                _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                              *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n      *ppDVar5 = (mapped_type)pOVar4;\n      if (((csym->super_Symbol).field_0x2a & 0x20) != 0) {\n        sym = &csym->super_Symbol;\n        while( true ) {\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,&sym);\n          sym = *ppSVar6;\n          if ((Sized_symbol<64> *)sym == csym) break;\n          if (((((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if ((Object *)posd != (((Sized_symbol<64> *)sym)->super_Symbol).u1_.object) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          puVar1 = &(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b;\n          *puVar1 = *puVar1 | 8;\n          local_20[0] = (Sized_symbol<64> *)sym;\n          ppDVar5 = std::__detail::\n                    _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n          *ppDVar5 = (mapped_type)pOVar4;\n        }\n      }\n      return;\n    }" { (if_statement "if (((csym->super_Symbol).field_0x2b & 8) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x952,"define_with_copy_reloc");\n      }" if (parenthesized_expression "(((csym->super_Symbol).field_0x2b & 8) != 0)" ( (binary_expression "((csym->super_Symbol).field_0x2b & 8) != 0" (parenthesized_expression "((csym->super_Symbol).field_0x2b & 8)" ( (binary_expression "(csym->super_Symbol).field_0x2b & 8" (field_expression "(csym->super_Symbol).field_0x2b" (parenthesized_expression "(csym->super_Symbol)" ( (field_expression "csym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x952,"define_with_copy_reloc");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0x952,"define_with_copy_reloc");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0x952,"define_with_copy_reloc")" identifier (argument_list "("../../gold/symtab.cc",0x952,"define_with_copy_reloc")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_with_copy_reloc"" " string_content ") ))) ;) })) (expression_statement "bVar2 = (csym->super_Symbol).field_0x28;" (assignment_expression "bVar2 = (csym->super_Symbol).field_0x28" identifier = (field_expression "(csym->super_Symbol).field_0x28" (parenthesized_expression "(csym->super_Symbol)" ( (field_expression "csym->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "binding = (STB)(bVar2 >> 4);" (assignment_expression "binding = (STB)(bVar2 >> 4)" identifier = (call_expression "(STB)(bVar2 >> 4)" (parenthesized_expression "(STB)" ( identifier )) (argument_list "(bVar2 >> 4)" ( (binary_expression "bVar2 >> 4" identifier >> number_literal) )))) ;) (if_statement "if (binding == STB_WEAK) {\n        binding = STB_GLOBAL;\n      }" if (parenthesized_expression "(binding == STB_WEAK)" ( (binary_expression "binding == STB_WEAK" identifier == identifier) )) (compound_statement "{\n        binding = STB_GLOBAL;\n      }" { (expression_statement "binding = STB_GLOBAL;" (assignment_expression "binding = STB_GLOBAL" identifier = identifier) ;) })) (expression_statement "bVar3 = (csym->super_Symbol).field_0x29;" (assignment_expression "bVar3 = (csym->super_Symbol).field_0x29" identifier = (field_expression "(csym->super_Symbol).field_0x29" (parenthesized_expression "(csym->super_Symbol)" ( (field_expression "csym->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "define_in_output_data\n                (this,(csym->super_Symbol).name_,(csym->super_Symbol).version_,COPY,posd,value,\n                 csym->symsize_,bVar2 & STT_HIPROC,binding,bVar3 & STV_PROTECTED,bVar3 >> 2,false,\n                 false);" (call_expression "define_in_output_data\n                (this,(csym->super_Symbol).name_,(csym->super_Symbol).version_,COPY,posd,value,\n                 csym->symsize_,bVar2 & STT_HIPROC,binding,bVar3 & STV_PROTECTED,bVar3 >> 2,false,\n                 false)" identifier (argument_list "(this,(csym->super_Symbol).name_,(csym->super_Symbol).version_,COPY,posd,value,\n                 csym->symsize_,bVar2 & STT_HIPROC,binding,bVar3 & STV_PROTECTED,bVar3 >> 2,false,\n                 false)" ( identifier , (field_expression "(csym->super_Symbol).name_" (parenthesized_expression "(csym->super_Symbol)" ( (field_expression "csym->super_Symbol" identifier -> field_identifier) )) . field_identifier) , (field_expression "(csym->super_Symbol).version_" (parenthesized_expression "(csym->super_Symbol)" ( (field_expression "csym->super_Symbol" identifier -> field_identifier) )) . field_identifier) , identifier , identifier , identifier , (field_expression "csym->symsize_" identifier -> field_identifier) , (binary_expression "bVar2 & STT_HIPROC" identifier & identifier) , identifier , (binary_expression "bVar3 & STV_PROTECTED" identifier & identifier) , (binary_expression "bVar3 >> 2" identifier >> number_literal) , false , false ))) ;) (expression_statement "local_20[0] = csym;" (assignment_expression "local_20[0] = csym" (subscript_expression "local_20[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = &(csym->super_Symbol).field_0x2a;" (assignment_expression "puVar1 = &(csym->super_Symbol).field_0x2a" identifier = (pointer_expression "&(csym->super_Symbol).field_0x2a" & (field_expression "(csym->super_Symbol).field_0x2a" (parenthesized_expression "(csym->super_Symbol)" ( (field_expression "csym->super_Symbol" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*(ushort *)puVar1 = *(ushort *)puVar1 | 0x840;" (assignment_expression "*(ushort *)puVar1 = *(ushort *)puVar1 | 0x840" (pointer_expression "*(ushort *)puVar1" * (cast_expression "(ushort *)puVar1" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "*(ushort *)puVar1 | 0x840" (pointer_expression "*(ushort *)puVar1" * (cast_expression "(ushort *)puVar1" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) | number_literal)) ;) (ERROR "ppDVar5 = std::__detail::\n                _Map_base<const_gold::Symbol*,_std::pair<const_gold::" (assignment_expression "ppDVar5 = std" identifier = identifier) : : (comma_expression "__detail::\n                _Map_base<const_gold::Symbol*,_std" identifier (ERROR "::\n                _Map_base<const_gold::Symbol*" : : (binary_expression "_Map_base<const_gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : :) (declaration "Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                              *)" type_identifier (pointer_declarator "*_const" * identifier) , (ERROR "_gold::" identifier : :) identifier (ERROR "*>" * >) , (ERROR "_std::allocator<std::pair<const_gold::Symbol" identifier : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier) , (ERROR "_gold::Dynobj*>" identifier : : identifier * >) identifier (ERROR ">" >) , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::equal_to<const_gold::" identifier : : identifier < identifier : :) identifier (ERROR "*>" * >) , (ERROR "_std::hash<const_gold::" identifier : : identifier < identifier : :) identifier (ERROR "*>" * >) , (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 "<false" < false) , identifier , identifier (ERROR ">" >) , (ERROR "_true>\n                ::" identifier > : :) (function_declarator "operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                              *)" (array_declarator "operator[]" identifier [ ]) (ERROR "(" () (parameter_list "(_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                              *)" ( (parameter_declaration "_Map_base<const_gold::Symbol*" type_identifier (ERROR "<const_gold::Symbol" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::pair<const_gold::Symbol*_const" type_identifier (ERROR "::pair<const_gold::Symbol" : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier)) , (parameter_declaration "_gold::Dynobj" type_identifier (ERROR "::" : :) identifier) (ERROR "*>" * >) , (parameter_declaration "_std::allocator<std::pair<const_gold::Symbol*_const" type_identifier (ERROR "::allocator<std::pair<const_gold::Symbol" : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier)) , (parameter_declaration "_gold::Dynobj*>_" type_identifier (ERROR "::Dynobj*>" : : identifier * >) identifier) (ERROR ">" >) , (parameter_declaration "_std::__detail::_Select1st" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::equal_to<const_gold::Symbol" type_identifier (ERROR "::equal_to<const_gold::" : : identifier < identifier : :) identifier) (ERROR "*>" * >) , (parameter_declaration "_std::hash<const_gold::Symbol" type_identifier (ERROR "::hash<const_gold::" : : identifier < identifier : :) identifier) (ERROR "*>" * >) , (parameter_declaration "_std::__detail::_Mod_range_hashing" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Default_ranged_hash" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Prime_rehash_policy" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Hashtable_traits" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) (ERROR "<false" < false) , (parameter_declaration "_false" type_identifier) , (parameter_declaration "_true" type_identifier) (ERROR ">" >) , (parameter_declaration "_true>\n                              *" type_identifier (ERROR ">" >) (abstract_pointer_declarator "*" *)) ))) ;) (expression_statement "&this->copied_symbol_dynobjs_,(key_type *)local_20);" (comma_expression "&this->copied_symbol_dynobjs_,(key_type *)local_20" (pointer_expression "&this->copied_symbol_dynobjs_" & (field_expression "this->copied_symbol_dynobjs_" identifier -> field_identifier)) , (cast_expression "(key_type *)local_20" ( (type_descriptor "key_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) (ERROR ")" )) ;) (expression_statement "*ppDVar5 = (mapped_type)pOVar4;" (assignment_expression "*ppDVar5 = (mapped_type)pOVar4" (pointer_expression "*ppDVar5" * identifier) = (cast_expression "(mapped_type)pOVar4" ( (type_descriptor "mapped_type" type_identifier) ) identifier)) ;) (if_statement "if (((csym->super_Symbol).field_0x2a & 0x20) != 0) {\n        sym = &csym->super_Symbol;\n        while( true ) {\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,&sym);\n          sym = *ppSVar6;\n          if ((Sized_symbol<64> *)sym == csym) break;\n          if (((((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if ((Object *)posd != (((Sized_symbol<64> *)sym)->super_Symbol).u1_.object) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          puVar1 = &(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b;\n          *puVar1 = *puVar1 | 8;\n          local_20[0] = (Sized_symbol<64> *)sym;\n          ppDVar5 = std::__detail::\n                    _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n          *ppDVar5 = (mapped_type)pOVar4;\n        }\n      }" if (parenthesized_expression "(((csym->super_Symbol).field_0x2a & 0x20) != 0)" ( (binary_expression "((csym->super_Symbol).field_0x2a & 0x20) != 0" (parenthesized_expression "((csym->super_Symbol).field_0x2a & 0x20)" ( (binary_expression "(csym->super_Symbol).field_0x2a & 0x20" (field_expression "(csym->super_Symbol).field_0x2a" (parenthesized_expression "(csym->super_Symbol)" ( (field_expression "csym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        sym = &csym->super_Symbol;\n        while( true ) {\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,&sym);\n          sym = *ppSVar6;\n          if ((Sized_symbol<64> *)sym == csym) break;\n          if (((((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if ((Object *)posd != (((Sized_symbol<64> *)sym)->super_Symbol).u1_.object) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          puVar1 = &(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b;\n          *puVar1 = *puVar1 | 8;\n          local_20[0] = (Sized_symbol<64> *)sym;\n          ppDVar5 = std::__detail::\n                    _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n          *ppDVar5 = (mapped_type)pOVar4;\n        }\n      }" { (expression_statement "sym = &csym->super_Symbol;" (assignment_expression "sym = &csym->super_Symbol" identifier = (pointer_expression "&csym->super_Symbol" & (field_expression "csym->super_Symbol" identifier -> field_identifier))) ;) (while_statement "while( true ) {\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,&sym);\n          sym = *ppSVar6;\n          if ((Sized_symbol<64> *)sym == csym) break;\n          if (((((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if ((Object *)posd != (((Sized_symbol<64> *)sym)->super_Symbol).u1_.object) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          puVar1 = &(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b;\n          *puVar1 = *puVar1 | 8;\n          local_20[0] = (Sized_symbol<64> *)sym;\n          ppDVar5 = std::__detail::\n                    _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n          *ppDVar5 = (mapped_type)pOVar4;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,&sym);\n          sym = *ppSVar6;\n          if ((Sized_symbol<64> *)sym == csym) break;\n          if (((((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if ((Object *)posd != (((Sized_symbol<64> *)sym)->super_Symbol).u1_.object) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          puVar1 = &(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b;\n          *puVar1 = *puVar1 | 8;\n          local_20[0] = (Sized_symbol<64> *)sym;\n          ppDVar5 = std::__detail::\n                    _Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->copied_symbol_dynobjs_,(key_type *)local_20);\n          *ppDVar5 = (mapped_type)pOVar4;\n        }" { (ERROR "ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::" (assignment_expression "ppSVar6 = std" identifier = identifier) : : (comma_expression "__detail::\n                    _Map_base<gold::Symbol*,_std" identifier (ERROR "::\n                    _Map_base<gold::Symbol*" : : (binary_expression "_Map_base<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "pair<gold" identifier < identifier) : :) (declaration "Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)" type_identifier (pointer_declarator "*_const" * identifier) , (ERROR "_gold::" identifier : :) identifier (ERROR "*>" * >) , (ERROR "_std::allocator<std::pair<gold::Symbol" identifier : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier) , (ERROR "_gold::Symbol*>" identifier : : identifier * >) identifier (ERROR ">" >) , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::equal_to<gold::" identifier : : identifier < identifier : :) identifier (ERROR "*>" * >) , (ERROR "_std::hash<gold::" identifier : : identifier < identifier : :) identifier (ERROR "*>" * >) , (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 "<false" < false) , identifier , identifier (ERROR ">" >) , (ERROR "_true>\n                    ::" identifier > : :) (function_declarator "operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)" (array_declarator "operator[]" identifier [ ]) (ERROR "(" () (parameter_list "(_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)" ( (parameter_declaration "_Map_base<gold::Symbol*" type_identifier (ERROR "<gold::Symbol" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::pair<gold::Symbol*_const" type_identifier (ERROR "::pair<gold::Symbol" : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier)) , (parameter_declaration "_gold::Symbol" type_identifier (ERROR "::" : :) identifier) (ERROR "*>" * >) , (parameter_declaration "_std::allocator<std::pair<gold::Symbol*_const" type_identifier (ERROR "::allocator<std::pair<gold::Symbol" : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier)) , (parameter_declaration "_gold::Symbol*>_" type_identifier (ERROR "::Symbol*>" : : identifier * >) identifier) (ERROR ">" >) , (parameter_declaration "_std::__detail::_Select1st" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::equal_to<gold::Symbol" type_identifier (ERROR "::equal_to<gold::" : : identifier < identifier : :) identifier) (ERROR "*>" * >) , (parameter_declaration "_std::hash<gold::Symbol" type_identifier (ERROR "::hash<gold::" : : identifier < identifier : :) identifier) (ERROR "*>" * >) , (parameter_declaration "_std::__detail::_Mod_range_hashing" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Default_ranged_hash" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Prime_rehash_policy" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Hashtable_traits" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) (ERROR "<false" < false) , (parameter_declaration "_false" type_identifier) , (parameter_declaration "_true" type_identifier) (ERROR ">" >) , (parameter_declaration "_true>\n                                  *" type_identifier (ERROR ">" >) (abstract_pointer_declarator "*" *)) ))) ;) (expression_statement "&this->weak_aliases_,&sym);" (comma_expression "&this->weak_aliases_,&sym" (pointer_expression "&this->weak_aliases_" & (field_expression "this->weak_aliases_" identifier -> field_identifier)) , (pointer_expression "&sym" & identifier)) (ERROR ")" )) ;) (expression_statement "sym = *ppSVar6;" (assignment_expression "sym = *ppSVar6" identifier = (pointer_expression "*ppSVar6" * identifier)) ;) (if_statement "if ((Sized_symbol<64> *)sym == csym) break;" if (parenthesized_expression "((Sized_symbol<64> *)sym == csym)" ( (parenthesized_expression "(Sized_symbol<64> *)sym == csym)" ( (binary_expression "Sized_symbol<64> *)sym == csym" (binary_expression "Sized_symbol<64> *)sym" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*)sym" * (ERROR ")" )) identifier)) == identifier) )) )) (break_statement "break;" break ;)) (if_statement "if (((((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n          }" if (parenthesized_expression "(((((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7) != 1)" ( (parenthesized_expression "((((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7) != 1)" ( (binary_expression "(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7) != 1" (parenthesized_expression "(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7)" ( (binary_expression "((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a & 7" (field_expression "((Sized_symbol<64> *)sym)->super_Symbol).field_0x2a" (parenthesized_expression "((Sized_symbol<64> *)sym)->super_Symbol)" ( (field_expression "(Sized_symbol<64> *)sym)->super_Symbol" (parenthesized_expression "(Sized_symbol<64> *)sym)" ( (binary_expression "Sized_symbol<64> *)sym" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*)sym" * (ERROR ")" )) identifier)) )) -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data")" identifier (argument_list "("../../gold/symtab.h",0xb5,"output_data")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_data"" " string_content ") ))) ;) })) (if_statement "if ((Object *)posd != (((Sized_symbol<64> *)sym)->super_Symbol).u1_.object) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }" if (parenthesized_expression "((Object *)posd != (((Sized_symbol<64> *)sym)->super_Symbol).u1_.object)" ( (binary_expression "(Object *)posd != (((Sized_symbol<64> *)sym)->super_Symbol).u1_.object)" (cast_expression "(Object *)posd" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (parenthesized_expression "(((Sized_symbol<64> *)sym)->super_Symbol).u1_.object)" ( (field_expression "((Sized_symbol<64> *)sym)->super_Symbol).u1_.object" (field_expression "((Sized_symbol<64> *)sym)->super_Symbol).u1_" (parenthesized_expression "((Sized_symbol<64> *)sym)->super_Symbol)" ( (field_expression "(Sized_symbol<64> *)sym)->super_Symbol" (parenthesized_expression "(Sized_symbol<64> *)sym)" ( (binary_expression "Sized_symbol<64> *)sym" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*)sym" * (ERROR ")" )) identifier)) )) -> field_identifier) )) . field_identifier) . field_identifier) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0x972,"define_with_copy_reloc");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0x972,"define_with_copy_reloc")" identifier (argument_list "("../../gold/symtab.cc",0x972,"define_with_copy_reloc")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_with_copy_reloc"" " string_content ") ))) ;) })) (expression_statement "puVar1 = &(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b;" (assignment_expression "puVar1 = &(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b" identifier = (pointer_expression "&(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b" & (parenthesized_expression "(((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b" ( (field_expression "((Sized_symbol<64> *)sym)->super_Symbol).field_0x2b" (parenthesized_expression "((Sized_symbol<64> *)sym)->super_Symbol)" ( (field_expression "(Sized_symbol<64> *)sym)->super_Symbol" (parenthesized_expression "(Sized_symbol<64> *)sym)" ( (binary_expression "Sized_symbol<64> *)sym" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*)sym" * (ERROR ")" )) identifier)) )) -> field_identifier) )) . field_identifier) )))) ;) (expression_statement "*puVar1 = *puVar1 | 8;" (assignment_expression "*puVar1 = *puVar1 | 8" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 8" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "local_20[0] = (Sized_symbol<64> *)sym;" (assignment_expression "local_20[0] = (Sized_symbol<64> *)sym" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (parenthesized_expression "(Sized_symbol<64> *)sym" ( (binary_expression "Sized_symbol<64> *)sym" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*)sym" * (ERROR ")" )) identifier)) ))) ;) (ERROR "ppDVar5 = std::__detail::\n                    _Map_base<const_gold::Symbol*,_std::pair<const_gold::" (assignment_expression "ppDVar5 = std" identifier = identifier) : : (comma_expression "__detail::\n                    _Map_base<const_gold::Symbol*,_std" identifier (ERROR "::\n                    _Map_base<const_gold::Symbol*" : : (binary_expression "_Map_base<const_gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : :) (declaration "Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)" type_identifier (pointer_declarator "*_const" * identifier) , (ERROR "_gold::" identifier : :) identifier (ERROR "*>" * >) , (ERROR "_std::allocator<std::pair<const_gold::Symbol" identifier : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier) , (ERROR "_gold::Dynobj*>" identifier : : identifier * >) identifier (ERROR ">" >) , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::equal_to<const_gold::" identifier : : identifier < identifier : :) identifier (ERROR "*>" * >) , (ERROR "_std::hash<const_gold::" identifier : : identifier < identifier : :) identifier (ERROR "*>" * >) , (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 "<false" < false) , identifier , identifier (ERROR ">" >) , (ERROR "_true>\n                    ::" identifier > : :) (function_declarator "operator[]((_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)" (array_declarator "operator[]" identifier [ ]) (ERROR "(" () (parameter_list "(_Map_base<const_gold::Symbol*,_std::pair<const_gold::Symbol*_const,_gold::Dynobj*>,_std::allocator<std::pair<const_gold::Symbol*_const,_gold::Dynobj*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Symbol*>,_std::hash<const_gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)" ( (parameter_declaration "_Map_base<const_gold::Symbol*" type_identifier (ERROR "<const_gold::Symbol" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::pair<const_gold::Symbol*_const" type_identifier (ERROR "::pair<const_gold::Symbol" : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier)) , (parameter_declaration "_gold::Dynobj" type_identifier (ERROR "::" : :) identifier) (ERROR "*>" * >) , (parameter_declaration "_std::allocator<std::pair<const_gold::Symbol*_const" type_identifier (ERROR "::allocator<std::pair<const_gold::Symbol" : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier)) , (parameter_declaration "_gold::Dynobj*>_" type_identifier (ERROR "::Dynobj*>" : : identifier * >) identifier) (ERROR ">" >) , (parameter_declaration "_std::__detail::_Select1st" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::equal_to<const_gold::Symbol" type_identifier (ERROR "::equal_to<const_gold::" : : identifier < identifier : :) identifier) (ERROR "*>" * >) , (parameter_declaration "_std::hash<const_gold::Symbol" type_identifier (ERROR "::hash<const_gold::" : : identifier < identifier : :) identifier) (ERROR "*>" * >) , (parameter_declaration "_std::__detail::_Mod_range_hashing" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Default_ranged_hash" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Prime_rehash_policy" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Hashtable_traits" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) (ERROR "<false" < false) , (parameter_declaration "_false" type_identifier) , (parameter_declaration "_true" type_identifier) (ERROR ">" >) , (parameter_declaration "_true>\n                                  *" type_identifier (ERROR ">" >) (abstract_pointer_declarator "*" *)) ))) ;) (expression_statement "&this->copied_symbol_dynobjs_,(key_type *)local_20);" (comma_expression "&this->copied_symbol_dynobjs_,(key_type *)local_20" (pointer_expression "&this->copied_symbol_dynobjs_" & (field_expression "this->copied_symbol_dynobjs_" identifier -> field_identifier)) , (cast_expression "(key_type *)local_20" ( (type_descriptor "key_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) (ERROR ")" )) ;) (expression_statement "*ppDVar5 = (mapped_type)pOVar4;" (assignment_expression "*ppDVar5 = (mapped_type)pOVar4" (pointer_expression "*ppDVar5" * identifier) = (cast_expression "(mapped_type)pOVar4" ( (type_descriptor "mapped_type" type_identifier) ) identifier)) ;) })) })) (return_statement "return;" return ;) })) })) comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0x951,"define_with_copy_reloc");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0x951,"define_with_copy_reloc")" identifier (argument_list "("../../gold/symtab.cc",0x951,"define_with_copy_reloc")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_with_copy_reloc"" " string_content ") ))) ;) })))
(translation_unit "void FUN_0015abb0(int param_1,undefined4 *param_2,int param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  int iVar1;\n  byte bVar2;\n  int *piVar3;\n  undefined4 *local_24;\n  undefined4 *local_20 [4];\n  \n  if ((*(byte *)((int)param_2 + 0x2a) & 7) == 0) {\n    iVar1 = param_2[2];\n    if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }\n  }\n                    \n  FUN_0008b620("../../gold/symtab.cc",0x951,"define_with_copy_reloc");\n}\n\n" (function_definition "void FUN_0015abb0(int param_1,undefined4 *param_2,int param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  int iVar1;\n  byte bVar2;\n  int *piVar3;\n  undefined4 *local_24;\n  undefined4 *local_20 [4];\n  \n  if ((*(byte *)((int)param_2 + 0x2a) & 7) == 0) {\n    iVar1 = param_2[2];\n    if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }\n  }\n                    \n  FUN_0008b620("../../gold/symtab.cc",0x951,"define_with_copy_reloc");\n}" primitive_type (function_declarator "FUN_0015abb0(int param_1,undefined4 *param_2,int param_3,undefined4 param_4,undefined4 param_5)" identifier (parameter_list "(int param_1,undefined4 *param_2,int param_3,undefined4 param_4,undefined4 param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  byte bVar2;\n  int *piVar3;\n  undefined4 *local_24;\n  undefined4 *local_20 [4];\n  \n  if ((*(byte *)((int)param_2 + 0x2a) & 7) == 0) {\n    iVar1 = param_2[2];\n    if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }\n  }\n                    \n  FUN_0008b620("../../gold/symtab.cc",0x951,"define_with_copy_reloc");\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 *local_20 [4];" type_identifier (pointer_declarator "*local_20 [4]" * (array_declarator "local_20 [4]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)((int)param_2 + 0x2a) & 7) == 0) {\n    iVar1 = param_2[2];\n    if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }\n  }" if (parenthesized_expression "((*(byte *)((int)param_2 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)param_2 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_2 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_2 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_2 + 0x2a)" * (cast_expression "(byte *)((int)param_2 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2a)" ( (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar1 = param_2[2];\n    if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }\n  }" { (expression_statement "iVar1 = param_2[2];" (assignment_expression "iVar1 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }" if (parenthesized_expression "((*(byte *)(iVar1 + 0x2c) & 1) != 0)" ( (binary_expression "(*(byte *)(iVar1 + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(iVar1 + 0x2c) & 1)" ( (binary_expression "*(byte *)(iVar1 + 0x2c) & 1" (pointer_expression "*(byte *)(iVar1 + 0x2c)" * (cast_expression "(byte *)(iVar1 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }" { (if_statement "if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }" if (parenthesized_expression "((*(byte *)((int)param_2 + 0x2b) & 8) != 0)" ( (binary_expression "(*(byte *)((int)param_2 + 0x2b) & 8) != 0" (parenthesized_expression "(*(byte *)((int)param_2 + 0x2b) & 8)" ( (binary_expression "*(byte *)((int)param_2 + 0x2b) & 8" (pointer_expression "*(byte *)((int)param_2 + 0x2b)" * (cast_expression "(byte *)((int)param_2 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2b)" ( (binary_expression "(int)param_2 + 0x2b" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }" { (expression_statement "FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);" (call_expression "FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1)" identifier (argument_list "("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1)" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_with_copy_reloc"" " string_content ") , identifier ))) ;) })) (expression_statement "bVar2 = *(byte *)(param_2 + 10) >> 4;" (assignment_expression "bVar2 = *(byte *)(param_2 + 10) >> 4" identifier = (binary_expression "*(byte *)(param_2 + 10) >> 4" (pointer_expression "*(byte *)(param_2 + 10)" * (cast_expression "(byte *)(param_2 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) >> number_literal)) ;) (if_statement "if (bVar2 == 2) {\n        bVar2 = 1;\n      }" if (parenthesized_expression "(bVar2 == 2)" ( (binary_expression "bVar2 == 2" identifier == number_literal) )) (compound_statement "{\n        bVar2 = 1;\n      }" { (expression_statement "bVar2 = 1;" (assignment_expression "bVar2 = 1" identifier = number_literal) ;) })) (expression_statement "FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);" (call_expression "FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0)" identifier (argument_list "(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0)" ( identifier , (pointer_expression "*param_2" * identifier) , (subscript_expression "param_2[1]" identifier [ number_literal ]) , number_literal , identifier , identifier , identifier , (subscript_expression "param_2[0xe]" identifier [ number_literal ]) , (subscript_expression "param_2[0xf]" identifier [ number_literal ]) , (binary_expression "*(byte *)(param_2 + 10) & 0xf" (pointer_expression "*(byte *)(param_2 + 10)" * (cast_expression "(byte *)(param_2 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) & number_literal) , identifier , (binary_expression "*(byte *)((int)param_2 + 0x29) & 3" (pointer_expression "*(byte *)((int)param_2 + 0x29)" * (cast_expression "(byte *)((int)param_2 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x29)" ( (binary_expression "(int)param_2 + 0x29" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) , (binary_expression "*(byte *)((int)param_2 + 0x29) >> 2" (pointer_expression "*(byte *)((int)param_2 + 0x29)" * (cast_expression "(byte *)((int)param_2 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x29)" ( (binary_expression "(int)param_2 + 0x29" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) , number_literal , number_literal ))) ;) (expression_statement "local_20[0] = param_2;" (assignment_expression "local_20[0] = param_2" (subscript_expression "local_20[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;" (assignment_expression "*(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840" (pointer_expression "*(ushort *)((int)param_2 + 0x2a)" * (cast_expression "(ushort *)((int)param_2 + 0x2a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2a)" ( (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(ushort *)((int)param_2 + 0x2a) | 0x840" (pointer_expression "*(ushort *)((int)param_2 + 0x2a)" * (cast_expression "(ushort *)((int)param_2 + 0x2a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2a)" ( (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);" (assignment_expression "piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20)" identifier = (cast_expression "(int *)FUN_001570e0(param_1 + 0x138,local_20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001570e0(param_1 + 0x138,local_20)" identifier (argument_list "(param_1 + 0x138,local_20)" ( (binary_expression "param_1 + 0x138" identifier + number_literal) , identifier ))))) ;) (expression_statement "*piVar3 = iVar1;" (assignment_expression "*piVar3 = iVar1" (pointer_expression "*piVar3" * identifier) = identifier) ;) (if_statement "if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }" if (parenthesized_expression "((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)param_2 + 0x2a) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)param_2 + 0x2a) & 0x20)" ( (binary_expression "*(byte *)((int)param_2 + 0x2a) & 0x20" (pointer_expression "*(byte *)((int)param_2 + 0x2a)" * (cast_expression "(byte *)((int)param_2 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2a)" ( (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }" { (expression_statement "local_24 = param_2;" (assignment_expression "local_24 = param_2" identifier = identifier) ;) (while_statement "while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }" { (expression_statement "local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);" (assignment_expression "local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24)" identifier = (cast_expression "(undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001574b0(param_1 + 0xa8,&local_24)" identifier (argument_list "(param_1 + 0xa8,&local_24)" ( (binary_expression "param_1 + 0xa8" identifier + number_literal) , (pointer_expression "&local_24" & identifier) ))))) ;) (expression_statement "local_24 = (undefined4 *)*local_24;" (assignment_expression "local_24 = (undefined4 *)*local_24" identifier = (cast_expression "(undefined4 *)*local_24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_24" * identifier))) ;) (if_statement "if (local_24 == param_2) break;" if (parenthesized_expression "(local_24 == param_2)" ( (binary_expression "local_24 == param_2" identifier == identifier) )) (break_statement "break;" break ;)) (if_statement "if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }" if (parenthesized_expression "((*(byte *)((int)local_24 + 0x2a) & 7) != 1)" ( (binary_expression "(*(byte *)((int)local_24 + 0x2a) & 7) != 1" (parenthesized_expression "(*(byte *)((int)local_24 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_24 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_24 + 0x2a)" * (cast_expression "(byte *)((int)local_24 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_24 + 0x2a)" ( (binary_expression "(int)local_24 + 0x2a" (cast_expression "(int)local_24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }" { (expression_statement "FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");" (call_expression "FUN_0008b620("../../gold/symtab.h",0xb5,"output_data")" identifier (argument_list "("../../gold/symtab.h",0xb5,"output_data")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_data"" " string_content ") ))) ;) })) (if_statement "if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }" if (parenthesized_expression "(param_3 != local_24[2])" ( (binary_expression "param_3 != local_24[2]" identifier != (subscript_expression "local_24[2]" identifier [ number_literal ])) )) (compound_statement "{\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }" { (expression_statement "FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");" (call_expression "FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc")" identifier (argument_list "("../../gold/symtab.cc",0x972,"define_with_copy_reloc")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_with_copy_reloc"" " string_content ") ))) ;) })) (expression_statement "*(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;" (assignment_expression "*(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8" (pointer_expression "*(byte *)((int)local_24 + 0x2b)" * (cast_expression "(byte *)((int)local_24 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_24 + 0x2b)" ( (binary_expression "(int)local_24 + 0x2b" (cast_expression "(int)local_24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)local_24 + 0x2b) | 8" (pointer_expression "*(byte *)((int)local_24 + 0x2b)" * (cast_expression "(byte *)((int)local_24 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_24 + 0x2b)" ( (binary_expression "(int)local_24 + 0x2b" (cast_expression "(int)local_24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "local_20[0] = local_24;" (assignment_expression "local_20[0] = local_24" (subscript_expression "local_20[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);" (assignment_expression "piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20)" identifier = (cast_expression "(int *)FUN_001570e0(param_1 + 0x138,local_20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001570e0(param_1 + 0x138,local_20)" identifier (argument_list "(param_1 + 0x138,local_20)" ( (binary_expression "param_1 + 0x138" identifier + number_literal) , identifier ))))) ;) (expression_statement "*piVar3 = iVar1;" (assignment_expression "*piVar3 = iVar1" (pointer_expression "*piVar3" * identifier) = identifier) ;) })) })) (return_statement "return;" return ;) })) })) (expression_statement "FUN_0008b620("../../gold/symtab.cc",0x951,"define_with_copy_reloc");" (call_expression "FUN_0008b620("../../gold/symtab.cc",0x951,"define_with_copy_reloc")" identifier (argument_list "("../../gold/symtab.cc",0x951,"define_with_copy_reloc")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_with_copy_reloc"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , LIT , IDENT , IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) >> LIT) , LIT , LIT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) })) (return_statement return ;) })) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "void FUN_0015abb0(int param_1,undefined4 *param_2,int param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  int iVar1;\n  byte bVar2;\n  int *piVar3;\n  undefined4 *local_24;\n  undefined4 *local_20 [4];\n  \n  if ((*(byte *)((int)param_2 + 0x2a) & 7) == 0) {\n    iVar1 = param_2[2];\n    if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }\n  }\n                    \n  FUN_0008b620("../../gold/symtab.cc",0x951,"define_with_copy_reloc");\n}" (primitive_type "void") (function_declarator "FUN_0015abb0(int param_1,undefined4 *param_2,int param_3,undefined4 param_4,undefined4 param_5)" (identifier "FUN_0015abb0") (parameter_list "(int param_1,undefined4 *param_2,int param_3,undefined4 param_4,undefined4 param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) () ")"))) (compound_statement "{\n  int iVar1;\n  byte bVar2;\n  int *piVar3;\n  undefined4 *local_24;\n  undefined4 *local_20 [4];\n  \n  if ((*(byte *)((int)param_2 + 0x2a) & 7) == 0) {\n    iVar1 = param_2[2];\n    if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }\n  }\n                    \n  FUN_0008b620("../../gold/symtab.cc",0x951,"define_with_copy_reloc");\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "undefined4 *local_24;" (type_identifier "undefined4") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "undefined4 *local_20 [4];" (type_identifier "undefined4") (pointer_declarator "*local_20 [4]" (* "*") (array_declarator "local_20 [4]" (identifier "local_20") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if ((*(byte *)((int)param_2 + 0x2a) & 7) == 0) {\n    iVar1 = param_2[2];\n    if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }\n  }" (if "if") (parenthesized_expression "((*(byte *)((int)param_2 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((int)param_2 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_2 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)param_2 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_2 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x2a)" (( "(") (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = param_2[2];\n    if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }\n  }" ({ "{") (expression_statement "iVar1 = param_2[2];" (assignment_expression "iVar1 = param_2[2]" (identifier "iVar1") (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }" (if "if") (parenthesized_expression "((*(byte *)(iVar1 + 0x2c) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(iVar1 + 0x2c) & 1) != 0" (parenthesized_expression "(*(byte *)(iVar1 + 0x2c) & 1)" (( "(") (binary_expression "*(byte *)(iVar1 + 0x2c) & 1" (pointer_expression "*(byte *)(iVar1 + 0x2c)" (* "*") (cast_expression "(byte *)(iVar1 + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }\n      bVar2 = *(byte *)(param_2 + 10) >> 4;\n      if (bVar2 == 2) {\n        bVar2 = 1;\n      }\n      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);\n      local_20[0] = param_2;\n      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;\n      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n      *piVar3 = iVar1;\n      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }\n      return;\n    }" ({ "{") (if_statement "if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)param_2 + 0x2b) & 8) != 0)" (( "(") (binary_expression "(*(byte *)((int)param_2 + 0x2b) & 8) != 0" (parenthesized_expression "(*(byte *)((int)param_2 + 0x2b) & 8)" (( "(") (binary_expression "*(byte *)((int)param_2 + 0x2b) & 8" (pointer_expression "*(byte *)((int)param_2 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x2b)" (( "(") (binary_expression "(int)param_2 + 0x2b" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);\n      }" ({ "{") (expression_statement "FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);" (call_expression "FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1)" (identifier "FUN_0008b620") (argument_list "("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1)" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0x952") (, ",") (string_literal ""define_with_copy_reloc"" (" """) (string_content "define_with_copy_reloc") (" """)) (, ",") (identifier "iVar1") () ")"))) (; ";")) (} "}"))) (expression_statement "bVar2 = *(byte *)(param_2 + 10) >> 4;" (assignment_expression "bVar2 = *(byte *)(param_2 + 10) >> 4" (identifier "bVar2") (= "=") (binary_expression "*(byte *)(param_2 + 10) >> 4" (pointer_expression "*(byte *)(param_2 + 10)" (* "*") (cast_expression "(byte *)(param_2 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 10)" (( "(") (binary_expression "param_2 + 10" (identifier "param_2") (+ "+") (number_literal "10")) () ")")))) (>> ">>") (number_literal "4"))) (; ";")) (if_statement "if (bVar2 == 2) {\n        bVar2 = 1;\n      }" (if "if") (parenthesized_expression "(bVar2 == 2)" (( "(") (binary_expression "bVar2 == 2" (identifier "bVar2") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        bVar2 = 1;\n      }" ({ "{") (expression_statement "bVar2 = 1;" (assignment_expression "bVar2 = 1" (identifier "bVar2") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);" (call_expression "FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0)" (identifier "FUN_00151380") (argument_list "(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],\n                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,\n                   *(byte *)((int)param_2 + 0x29) >> 2,0,0)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "1") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (subscript_expression "param_2[0xe]" (identifier "param_2") ([ "[") (number_literal "0xe") (] "]")) (, ",") (subscript_expression "param_2[0xf]" (identifier "param_2") ([ "[") (number_literal "0xf") (] "]")) (, ",") (binary_expression "*(byte *)(param_2 + 10) & 0xf" (pointer_expression "*(byte *)(param_2 + 10)" (* "*") (cast_expression "(byte *)(param_2 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 10)" (( "(") (binary_expression "param_2 + 10" (identifier "param_2") (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "0xf")) (, ",") (identifier "bVar2") (, ",") (binary_expression "*(byte *)((int)param_2 + 0x29) & 3" (pointer_expression "*(byte *)((int)param_2 + 0x29)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x29)" (( "(") (binary_expression "(int)param_2 + 0x29" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x29")) () ")")))) (& "&") (number_literal "3")) (, ",") (binary_expression "*(byte *)((int)param_2 + 0x29) >> 2" (pointer_expression "*(byte *)((int)param_2 + 0x29)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x29)" (( "(") (binary_expression "(int)param_2 + 0x29" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x29")) () ")")))) (>> ">>") (number_literal "2")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_20[0] = param_2;" (assignment_expression "local_20[0] = param_2" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;" (assignment_expression "*(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840" (pointer_expression "*(ushort *)((int)param_2 + 0x2a)" (* "*") (cast_expression "(ushort *)((int)param_2 + 0x2a)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x2a)" (( "(") (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x2a")) () ")")))) (= "=") (binary_expression "*(ushort *)((int)param_2 + 0x2a) | 0x840" (pointer_expression "*(ushort *)((int)param_2 + 0x2a)" (* "*") (cast_expression "(ushort *)((int)param_2 + 0x2a)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x2a)" (( "(") (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x2a")) () ")")))) (| "|") (number_literal "0x840"))) (; ";")) (expression_statement "piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);" (assignment_expression "piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20)" (identifier "piVar3") (= "=") (cast_expression "(int *)FUN_001570e0(param_1 + 0x138,local_20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001570e0(param_1 + 0x138,local_20)" (identifier "FUN_001570e0") (argument_list "(param_1 + 0x138,local_20)" (( "(") (binary_expression "param_1 + 0x138" (identifier "param_1") (+ "+") (number_literal "0x138")) (, ",") (identifier "local_20") () ")"))))) (; ";")) (expression_statement "*piVar3 = iVar1;" (assignment_expression "*piVar3 = iVar1" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (identifier "iVar1")) (; ";")) (if_statement "if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)((int)param_2 + 0x2a) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)param_2 + 0x2a) & 0x20)" (( "(") (binary_expression "*(byte *)((int)param_2 + 0x2a) & 0x20" (pointer_expression "*(byte *)((int)param_2 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x2a)" (( "(") (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_24 = param_2;\n        while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }\n      }" ({ "{") (expression_statement "local_24 = param_2;" (assignment_expression "local_24 = param_2" (identifier "local_24") (= "=") (identifier "param_2")) (; ";")) (while_statement "while( true ) {\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);\n          local_24 = (undefined4 *)*local_24;\n          if (local_24 == param_2) break;\n          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }\n          if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }\n          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;\n          local_20[0] = local_24;\n          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);\n          *piVar3 = iVar1;\n        }" ({ "{") (expression_statement "local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);" (assignment_expression "local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24)" (identifier "local_24") (= "=") (cast_expression "(undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001574b0(param_1 + 0xa8,&local_24)" (identifier "FUN_001574b0") (argument_list "(param_1 + 0xa8,&local_24)" (( "(") (binary_expression "param_1 + 0xa8" (identifier "param_1") (+ "+") (number_literal "0xa8")) (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) () ")"))))) (; ";")) (expression_statement "local_24 = (undefined4 *)*local_24;" (assignment_expression "local_24 = (undefined4 *)*local_24" (identifier "local_24") (= "=") (cast_expression "(undefined4 *)*local_24" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_24" (* "*") (identifier "local_24")))) (; ";")) (if_statement "if (local_24 == param_2) break;" (if "if") (parenthesized_expression "(local_24 == param_2)" (( "(") (binary_expression "local_24 == param_2" (identifier "local_24") (== "==") (identifier "param_2")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }" (if "if") (parenthesized_expression "((*(byte *)((int)local_24 + 0x2a) & 7) != 1)" (( "(") (binary_expression "(*(byte *)((int)local_24 + 0x2a) & 7) != 1" (parenthesized_expression "(*(byte *)((int)local_24 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)local_24 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_24 + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_24 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_24 + 0x2a)" (( "(") (binary_expression "(int)local_24 + 0x2a" (cast_expression "(int)local_24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_24")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                    \n            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");\n          }" ({ "{") (expression_statement "FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");" (call_expression "FUN_0008b620("../../gold/symtab.h",0xb5,"output_data")" (identifier "FUN_0008b620") (argument_list "("../../gold/symtab.h",0xb5,"output_data")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xb5") (, ",") (string_literal ""output_data"" (" """) (string_content "output_data") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_3 != local_24[2]) {\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }" (if "if") (parenthesized_expression "(param_3 != local_24[2])" (( "(") (binary_expression "param_3 != local_24[2]" (identifier "param_3") (!= "!=") (subscript_expression "local_24[2]" (identifier "local_24") ([ "[") (number_literal "2") (] "]"))) () ")")) (compound_statement "{\n                    \n            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");\n          }" ({ "{") (expression_statement "FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");" (call_expression "FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc")" (identifier "FUN_0008b620") (argument_list "("../../gold/symtab.cc",0x972,"define_with_copy_reloc")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0x972") (, ",") (string_literal ""define_with_copy_reloc"" (" """) (string_content "define_with_copy_reloc") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "*(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;" (assignment_expression "*(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8" (pointer_expression "*(byte *)((int)local_24 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_24 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_24 + 0x2b)" (( "(") (binary_expression "(int)local_24 + 0x2b" (cast_expression "(int)local_24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_24")) (+ "+") (number_literal "0x2b")) () ")")))) (= "=") (binary_expression "*(byte *)((int)local_24 + 0x2b) | 8" (pointer_expression "*(byte *)((int)local_24 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_24 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_24 + 0x2b)" (( "(") (binary_expression "(int)local_24 + 0x2b" (cast_expression "(int)local_24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_24")) (+ "+") (number_literal "0x2b")) () ")")))) (| "|") (number_literal "8"))) (; ";")) (expression_statement "local_20[0] = local_24;" (assignment_expression "local_20[0] = local_24" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_24")) (; ";")) (expression_statement "piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);" (assignment_expression "piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20)" (identifier "piVar3") (= "=") (cast_expression "(int *)FUN_001570e0(param_1 + 0x138,local_20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001570e0(param_1 + 0x138,local_20)" (identifier "FUN_001570e0") (argument_list "(param_1 + 0x138,local_20)" (( "(") (binary_expression "param_1 + 0x138" (identifier "param_1") (+ "+") (number_literal "0x138")) (, ",") (identifier "local_20") () ")"))))) (; ";")) (expression_statement "*piVar3 = iVar1;" (assignment_expression "*piVar3 = iVar1" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (identifier "iVar1")) (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_0008b620("../../gold/symtab.cc",0x951,"define_with_copy_reloc");" (call_expression "FUN_0008b620("../../gold/symtab.cc",0x951,"define_with_copy_reloc")" (identifier "FUN_0008b620") (argument_list "("../../gold/symtab.cc",0x951,"define_with_copy_reloc")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0x951") (, ",") (string_literal ""define_with_copy_reloc"" (" """) (string_content "define_with_copy_reloc") (" """)) () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* DWARF original prototype: void define_with_copy_reloc<64>(Symbol_table * this, Sized_symbol<64> *
   csym, Output_data * posd, Elf_Addr value) */

void __thiscall
gold::type_1::function_1<64>
          (type_1 *this,type_2<64> *var_9,type_3 *posd,type_4 value)

{
  type_5 *puVar1;
  type_6 var_2;
  type_6 var_7;
  type_7 *pOVar4;
  type_8 var_3;
  type_9 *ppDVar5;
  type_9 *ppSVar6;
  type_10 *sym;
  type_2<64> *local_20 [4];
  
  if (((var_9->super_Symbol).field_0x2a & 7) == 0) {
    pOVar4 = (var_9->super_Symbol).u1_.output_segment;
    if ((((type_11 *)pOVar4->output_lists_)->field_0x2c & 1) != 0) {
      if (((var_9->super_Symbol).field_0x2b & 8) != 0) {
                    /* WARNING: Subroutine does not return */
        var_1("../../gold/symtab.cc",0x952,"define_with_copy_reloc");
      }
      var_2 = (var_9->super_Symbol).field_0x28;
      var_3 = (type_8)(var_2 >> 4);
      if (var_3 == var_4) {
        var_3 = STB_GLOBAL;
      }
      var_7 = (var_9->super_Symbol).field_0x29;
      var_5
                (this,(var_9->super_Symbol).name_,(var_9->super_Symbol).version_,COPY,posd,value,
                 var_9->symsize_,var_2 & var_6,var_3,var_7 & var_8,var_7 >> 2,false,
                 false);
      local_20[0] = var_9;
      puVar1 = &(var_9->super_Symbol).field_0x2a;
      *(type_12 *)puVar1 = *(type_12 *)puVar1 | 0x840;
      ppDVar5 = std::__detail::
                type_13<const_gold::type_10*,type_14::pair<const_gold::type_10*_const,type_15::Dynobj*>,type_14::allocator<std::pair<const_gold::type_10*_const,type_15::Dynobj*>_>,type_14::__detail::_Select1st,type_14::equal_to<const_gold::type_10*>,type_14::hash<const_gold::type_10*>,type_14::__detail::_Mod_range_hashing,type_14::__detail::_Default_ranged_hash,type_14::__detail::_Prime_rehash_policy,type_14::__detail::_Hashtable_traits<false,type_16,type_17>,type_17>
                ::operator[]((type_13<const_gold::type_10*,type_14::pair<const_gold::type_10*_const,type_15::Dynobj*>,type_14::allocator<std::pair<const_gold::type_10*_const,type_15::Dynobj*>_>,type_14::__detail::_Select1st,type_14::equal_to<const_gold::type_10*>,type_14::hash<const_gold::type_10*>,type_14::__detail::_Mod_range_hashing,type_14::__detail::_Default_ranged_hash,type_14::__detail::_Prime_rehash_policy,type_14::__detail::_Hashtable_traits<false,type_16,type_17>,type_17>
                              *)&this->copied_symbol_dynobjs_,(type_18 *)local_20);
      *ppDVar5 = (type_9)pOVar4;
      if (((var_9->super_Symbol).field_0x2a & 0x20) != 0) {
        sym = &var_9->super_Symbol;
        while( true ) {
          ppSVar6 = std::__detail::
                    type_13<gold::type_10*,type_14::pair<gold::type_10*_const,type_15::type_10*>,type_14::allocator<std::pair<gold::type_10*_const,type_15::type_10*>_>,type_14::__detail::_Select1st,type_14::equal_to<gold::type_10*>,type_14::hash<gold::type_10*>,type_14::__detail::_Mod_range_hashing,type_14::__detail::_Default_ranged_hash,type_14::__detail::_Prime_rehash_policy,type_14::__detail::_Hashtable_traits<false,type_16,type_17>,type_17>
                    ::operator[]((type_13<gold::type_10*,type_14::pair<gold::type_10*_const,type_15::type_10*>,type_14::allocator<std::pair<gold::type_10*_const,type_15::type_10*>_>,type_14::__detail::_Select1st,type_14::equal_to<gold::type_10*>,type_14::hash<gold::type_10*>,type_14::__detail::_Mod_range_hashing,type_14::__detail::_Default_ranged_hash,type_14::__detail::_Prime_rehash_policy,type_14::__detail::_Hashtable_traits<false,type_16,type_17>,type_17>
                                  *)&this->weak_aliases_,&sym);
          sym = *ppSVar6;
          if ((type_2<64> *)sym == var_9) break;
          if (((((type_2<64> *)sym)->super_Symbol).field_0x2a & 7) != 1) {
                    /* WARNING: Subroutine does not return */
            var_1("../../gold/symtab.h",0xb5,"output_data");
          }
          if ((type_11 *)posd != (((type_2<64> *)sym)->super_Symbol).u1_.object) {
                    /* WARNING: Subroutine does not return */
            var_1("../../gold/symtab.cc",0x972,"define_with_copy_reloc");
          }
          puVar1 = &(((type_2<64> *)sym)->super_Symbol).field_0x2b;
          *puVar1 = *puVar1 | 8;
          local_20[0] = (type_2<64> *)sym;
          ppDVar5 = std::__detail::
                    type_13<const_gold::type_10*,type_14::pair<const_gold::type_10*_const,type_15::Dynobj*>,type_14::allocator<std::pair<const_gold::type_10*_const,type_15::Dynobj*>_>,type_14::__detail::_Select1st,type_14::equal_to<const_gold::type_10*>,type_14::hash<const_gold::type_10*>,type_14::__detail::_Mod_range_hashing,type_14::__detail::_Default_ranged_hash,type_14::__detail::_Prime_rehash_policy,type_14::__detail::_Hashtable_traits<false,type_16,type_17>,type_17>
                    ::operator[]((type_13<const_gold::type_10*,type_14::pair<const_gold::type_10*_const,type_15::Dynobj*>,type_14::allocator<std::pair<const_gold::type_10*_const,type_15::Dynobj*>_>,type_14::__detail::_Select1st,type_14::equal_to<const_gold::type_10*>,type_14::hash<const_gold::type_10*>,type_14::__detail::_Mod_range_hashing,type_14::__detail::_Default_ranged_hash,type_14::__detail::_Prime_rehash_policy,type_14::__detail::_Hashtable_traits<false,type_16,type_17>,type_17>
                                  *)&this->copied_symbol_dynobjs_,(type_18 *)local_20);
          *ppDVar5 = (type_9)pOVar4;
        }
      }
      return;
    }
  }
                    /* WARNING: Subroutine does not return */
  var_1("../../gold/symtab.cc",0x951,"define_with_copy_reloc");
}


(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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal) (identifier) (identifier) (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (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: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) (return_statement))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))))

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void MASKED(int param_1,undefined4 *param_2,int param_3,undefined4 param_4,undefined4 param_5)

{
  int iVar1;
  byte bVar2;
  int *piVar3;
  undefined4 *local_24;
  undefined4 *local_20 [4];
  
  if ((*(byte *)((int)param_2 + 0x2a) & 7) == 0) {
    iVar1 = param_2[2];
    if ((*(byte *)(iVar1 + 0x2c) & 1) != 0) {
      if ((*(byte *)((int)param_2 + 0x2b) & 8) != 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/symtab.cc",0x952,"define_with_copy_reloc",iVar1);
      }
      bVar2 = *(byte *)(param_2 + 10) >> 4;
      if (bVar2 == 2) {
        bVar2 = 1;
      }
      FUN_00151380(param_1,*param_2,param_2[1],1,param_3,param_4,param_5,param_2[0xe],param_2[0xf],
                   *(byte *)(param_2 + 10) & 0xf,bVar2,*(byte *)((int)param_2 + 0x29) & 3,
                   *(byte *)((int)param_2 + 0x29) >> 2,0,0);
      local_20[0] = param_2;
      *(ushort *)((int)param_2 + 0x2a) = *(ushort *)((int)param_2 + 0x2a) | 0x840;
      piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);
      *piVar3 = iVar1;
      if ((*(byte *)((int)param_2 + 0x2a) & 0x20) != 0) {
        local_24 = param_2;
        while( true ) {
          local_24 = (undefined4 *)FUN_001574b0(param_1 + 0xa8,&local_24);
          local_24 = (undefined4 *)*local_24;
          if (local_24 == param_2) break;
          if ((*(byte *)((int)local_24 + 0x2a) & 7) != 1) {
                    /* WARNING: Subroutine does not return */
            FUN_0008b620("../../gold/symtab.h",0xb5,"output_data");
          }
          if (param_3 != local_24[2]) {
                    /* WARNING: Subroutine does not return */
            FUN_0008b620("../../gold/symtab.cc",0x972,"define_with_copy_reloc");
          }
          *(byte *)((int)local_24 + 0x2b) = *(byte *)((int)local_24 + 0x2b) | 8;
          local_20[0] = local_24;
          piVar3 = (int *)FUN_001570e0(param_1 + 0x138,local_20);
          *piVar3 = iVar1;
        }
      }
      return;
    }
  }
                    /* WARNING: Subroutine does not return */
  FUN_0008b620("../../gold/symtab.cc",0x951,"define_with_copy_reloc");
}

