
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: define_default_version<32, false>
   DWARF original prototype: void define_default_version<32,_false>(Symbol_table * this,
   Sized_symbol<32> * sym, bool default_is_new, iterator pdef) */

void __thiscall
gold::Symbol_table::define_default_version<32,_false>
          (Symbol_table *this,Sized_symbol<32> *sym,bool default_is_new,iterator pdef)

{
  undefined1 *puVar1;
  uint st_shndx;
  bool bVar2;
  Symbol_table *this_00;
  Sized_symbol<32> *pSVar3;
  Output_segment *pOVar4;
  Sym<32,_false> local_40;
  uchar buf [16];
  
  if (default_is_new) {
    *(Sized_symbol<32> **)
     ((long)pdef.
            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>
            ._M_cur + 0x18) = sym;
    puVar1 = &(sym->super_Symbol).field_0x3a;
    *puVar1 = *puVar1 | 8;
    return;
  }
  this_00 = *(Symbol_table **)
             ((long)pdef.
                    super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>
                    ._M_cur + 0x18);
  if (this_00 == (Symbol_table *)sym) {
    return;
  }
  if (*(char **)&this_00->first_global_index_ != (char *)0x0) {
    if (*(char **)&this_00->first_global_index_ != (sym->super_Symbol).version_) {
      return;
    }
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/symtab.cc",0x36d,"define_default_version");
  }
  pSVar3 = sym;
  if (((sym->super_Symbol).field_0x39 & 3) == 0) {
    if ((((this_00->table_)._M_h._M_bucket_count & 0x300) != 0) &&
       (((sym->super_Symbol).field_0x3a & 7) == 0)) goto LAB_00225c2a;
LAB_00225af2:
    if (((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) goto LAB_00225b30;
    pOVar4 = ((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->output_segment;
  }
  else {
    if (((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) {
      if ((((this_00->table_)._M_h._M_bucket_count & 0x300) == 0) ||
         (((sym->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00225b30;
LAB_00225c2a:
      if (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].
                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                  _M_impl._M_finish & 0x100000000) != 0) {
        return;
      }
      goto LAB_00225af2;
    }
    pOVar4 = ((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->output_segment;
    if (((ulong)pOVar4->output_lists_[2].
                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
                _M_finish & 0x100000000) != 0) {
      return;
    }
    if (((this_00->table_)._M_h._M_bucket_count & 0x300) == 0) goto LAB_00225b30;
    if (((sym->super_Symbol).field_0x3a & 7) == 0) goto LAB_00225c2a;
  }
  if (((((ulong)pOVar4->output_lists_[2].
                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
                _M_finish & 0x100000000) != 0) && (((sym->super_Symbol).field_0x3a & 7) == 0)) &&
     (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].
              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
              _M_finish & 0x100000000) != 0)) {
    if (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0) {
      bVar2 = Symbol::is_common_shndx
                        (((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx);
      if (bVar2) {
        this_00 = *(Symbol_table **)
                   ((long)pdef.
                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>
                          ._M_cur + 0x18);
        goto LAB_00225b30;
      }
      this_00 = *(Symbol_table **)
                 ((long)pdef.
                        super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>
                        ._M_cur + 0x18);
      if ((((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) ||
         (pOVar4 = (Output_segment *)((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->object,
         ((sym->super_Symbol).field_0x3a & 7) != 0)) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");
      }
    }
    else if (((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx == 0)
    goto LAB_00225b30;
    if ((Output_segment *)(sym->super_Symbol).u1_.object != pOVar4) {
      return;
    }
  }
LAB_00225b30:
  pSVar3 = get_sized_symbol<32>(this_00,&pSVar3->super_Symbol);
  buf._4_8_ = *(undefined8 *)&pSVar3->value_;
  buf[0xc] = (pSVar3->super_Symbol).field_0x38;
  buf[0xd] = (pSVar3->super_Symbol).field_0x39;
  if (((pSVar3->super_Symbol).field_0x3a & 7) != 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");
  }
  local_40.p_ = (Sym_data<32> *)buf;
  st_shndx = (pSVar3->super_Symbol).u2_.shndx;
  resolve<32,_false>(this,sym,&local_40,st_shndx,
                     (bool)((byte)(pSVar3->super_Symbol).field_0x3b >> 5 & 1),st_shndx,
                     (pSVar3->super_Symbol).u1_.object,(pSVar3->super_Symbol).version_,true);
  if ((char)(pSVar3->super_Symbol).field_0x3a < '\0') {
    puVar1 = &(sym->super_Symbol).field_0x3a;
    *puVar1 = *puVar1 | 0x80;
  }
  if (((pSVar3->super_Symbol).field_0x3b & 1) != 0) {
    puVar1 = &(sym->super_Symbol).field_0x3b;
    *puVar1 = *puVar1 | 1;
  }
  if (parameters->options_ != (General_options *)0x0) {
    if ((((parameters->options_->gc_sections_).value != false) &&
        (((sym->super_Symbol).field_0x3b & 1) != 0)) &&
       ((((sym->super_Symbol).field_0x3a & 7) == 0 &&
        (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].
                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl
                 ._M_finish & 0x100000000) == 0)))) {
      gc_mark_symbol(this,&sym->super_Symbol);
    }
    make_forwarder(this,*(Symbol **)
                         ((long)pdef.
                                super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>
                                ._M_cur + 0x18),&sym->super_Symbol);
    *(Sized_symbol<32> **)
     ((long)pdef.
            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>
            ._M_cur + 0x18) = sym;
    puVar1 = &(sym->super_Symbol).field_0x3a;
    *puVar1 = *puVar1 | 8;
    return;
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
}



void FUN_00225a60(undefined8 param_1,long param_2,char param_3,long param_4)

{
  char cVar1;
  long lVar2;
  long lVar3;
  undefined1 *local_40;
  undefined1 local_38 [4];
  undefined8 local_34;
  undefined1 local_2c;
  undefined1 local_2b;
  
  if (param_3 != '\0') {
    *(long *)(param_4 + 0x18) = param_2;
    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;
    return;
  }
  lVar2 = *(long *)(param_4 + 0x18);
  if (lVar2 == param_2) {
    return;
  }
  if (*(long *)(lVar2 + 8) != 0) {
    if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {
      return;
    }
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");
  }
  if ((*(byte *)(param_2 + 0x39) & 3) == 0) {
    if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))
    goto LAB_00225c2a;
LAB_00225af2:
    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;
    lVar3 = *(long *)(lVar2 + 0x10);
  }
  else {
    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {
      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))
      goto LAB_00225b30;
LAB_00225c2a:
      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {
        return;
      }
      goto LAB_00225af2;
    }
    lVar3 = *(long *)(lVar2 + 0x10);
    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {
      return;
    }
    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;
    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;
  }
  if ((((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&
     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)) {
    if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {
      cVar1 = FUN_0021e870();
      if (cVar1 != '\0') {
        lVar2 = *(long *)(param_4 + 0x18);
        goto LAB_00225b30;
      }
      lVar2 = *(long *)(param_4 + 0x18);
      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||
         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {
                    /* WARNING: Subroutine does not return */
        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");
      }
    }
    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;
    if (*(long *)(param_2 + 0x10) != lVar3) {
      return;
    }
  }
LAB_00225b30:
  lVar2 = FUN_0021e500(lVar2);
  local_34 = *(undefined8 *)(lVar2 + 0x40);
  local_2c = *(undefined1 *)(lVar2 + 0x38);
  local_2b = *(undefined1 *)(lVar2 + 0x39);
  if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");
  }
  local_40 = local_38;
  FUN_0025c820(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),
               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),
               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1);
  if (*(char *)(lVar2 + 0x3a) < '\0') {
    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;
  }
  if ((*(byte *)(lVar2 + 0x3b) & 1) != 0) {
    *(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;
  }
  if (*(long *)(PTR_DAT_003be6b0 + 0x10) != 0) {
    if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&
        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&
       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&
        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {
      FUN_0021f580(param_1,param_2);
    }
    FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);
    *(long *)(param_4 + 0x18) = param_2;
    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");
}


TEST DL,DL
JZ 0x00225a70
MOV qword ptr [RCX + 0x18],RSI
OR byte ptr [RSI + 0x3a],0x8
RET
MOV RAX,qword ptr [RCX + 0x18]
MOV R8,RAX
CMP RAX,RSI
JZ 0x00225ab0
PUSH R13
PUSH R12
MOV R12,RDI
PUSH RBP
MOV RBP,RCX
PUSH RBX
MOV RBX,RSI
SUB RSP,0x28
MOV RDX,qword ptr [RAX + 0x8]
TEST RDX,RDX
JZ 0x00225ab8
CMP RDX,qword ptr [RSI + 0x8]
JZ 0x00225c97
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
RET
RET
TEST byte ptr [RSI + 0x39],0x3
JZ 0x00225ae8
TEST byte ptr [RAX + 0x3a],0x7
JNZ 0x00225c40
MOV RDX,qword ptr [RAX + 0x10]
TEST byte ptr [RDX + 0x3c],0x1
JNZ 0x00225aa2
TEST byte ptr [RAX + 0x39],0x3
JZ 0x00225b30
TEST byte ptr [RSI + 0x3a],0x7
JNZ 0x00225afc
JMP 0x00225c2a
TEST byte ptr [RAX + 0x39],0x3
JNZ 0x00225c20
TEST byte ptr [RAX + 0x3a],0x7
JNZ 0x00225b30
MOV RDX,qword ptr [RAX + 0x10]
TEST byte ptr [RDX + 0x3c],0x1
JZ 0x00225b30
TEST byte ptr [RBX + 0x3a],0x7
JNZ 0x00225b30
MOV RCX,qword ptr [RBX + 0x10]
TEST byte ptr [RCX + 0x3c],0x1
JZ 0x00225b30
MOV EDI,dword ptr [RAX + 0x18]
TEST byte ptr [RAX + 0x3b],0x20
JZ 0x00225c55
TEST EDI,EDI
JZ 0x00225b30
CMP qword ptr [RBX + 0x10],RDX
JNZ 0x00225aa2
MOV R8,RAX
MOV RDI,R8
CALL 0x0021e500
MOV R13,RAX
MOV RAX,qword ptr [RAX + 0x40]
MOV qword ptr [RSP + 0x14],RAX
MOVZX EAX,byte ptr [R13 + 0x38]
MOV byte ptr [RSP + 0x1c],AL
MOVZX EAX,byte ptr [R13 + 0x39]
MOV byte ptr [RSP + 0x1d],AL
TEST byte ptr [R13 + 0x3a],0x7
JNZ 0x00225cc7
MOV RSI,qword ptr [R13 + 0x8]
MOV RAX,qword ptr [R13 + 0x10]
LEA RDX,[RSP + 0x10]
MOV RDI,R12
MOVZX R8D,byte ptr [R13 + 0x3b]
MOV ECX,dword ptr [R13 + 0x18]
MOV qword ptr [RSP + 0x8],RDX
LEA RDX,[RSP + 0x8]
SUB RSP,0x8
PUSH 0x1
SHR R8B,0x5
MOV R9D,ECX
PUSH RSI
AND R8D,0x1
MOV RSI,RBX
PUSH RAX
CALL 0x0025c820
ADD RSP,0x20
CMP byte ptr [R13 + 0x3a],0x0
JNS 0x00225bae
OR byte ptr [RBX + 0x3a],0x80
TEST byte ptr [R13 + 0x3b],0x1
JNZ 0x00225c18
MOV RAX,qword ptr [0x003be6b0]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x00225caf
CMP byte ptr [RAX + 0x2809],0x0
JZ 0x00225bf8
TEST byte ptr [RBX + 0x3b],0x1
JZ 0x00225bf8
TEST byte ptr [RBX + 0x3a],0x7
JNZ 0x00225bf8
MOV RAX,qword ptr [RBX + 0x10]
TEST byte ptr [RAX + 0x3c],0x1
JNZ 0x00225bf8
MOV RSI,RBX
MOV RDI,R12
CALL 0x0021f580
NOP dword ptr [RAX + RAX*0x1]
MOV RSI,qword ptr [RBP + 0x18]
MOV RDX,RBX
MOV RDI,R12
CALL 0x00220810
MOV qword ptr [RBP + 0x18],RBX
OR byte ptr [RBX + 0x3a],0x8
JMP 0x00225aa2
OR byte ptr [RBX + 0x3b],0x1
JMP 0x00225bb5
TEST byte ptr [RSI + 0x3a],0x7
JNZ 0x00225af2
MOV RDX,qword ptr [RBX + 0x10]
TEST byte ptr [RDX + 0x3c],0x1
JNZ 0x00225aa2
JMP 0x00225af2
TEST byte ptr [RAX + 0x39],0x3
JZ 0x00225b30
TEST byte ptr [RSI + 0x3a],0x7
JZ 0x00225c2a
JMP 0x00225b30
CALL 0x0021e870
TEST AL,AL
JZ 0x00225c67
MOV R8,qword ptr [RBP + 0x18]
JMP 0x00225b30
MOV RAX,qword ptr [RBP + 0x18]
TEST byte ptr [RAX + 0x3a],0x7
JNZ 0x00225c7f
MOV RDX,qword ptr [RAX + 0x10]
TEST byte ptr [RBX + 0x3a],0x7
JZ 0x00225b23
LEA RDX,[0x31f924]
MOV ESI,0xa1
LEA RDI,[0x30dc8d]
CALL 0x0016cdf0
LEA RDX,[0x31f7a0]
MOV ESI,0x36d
LEA RDI,[0x31ed51]
CALL 0x0016cdf0
LEA RDX,[0x31f968]
MOV ESI,0x5c
LEA RDI,[0x30dc70]
CALL 0x0016cdf0
LEA RDX,[0x31f947]
MOV ESI,0xaa
LEA RDI,[0x30dc8d]
CALL 0x0016cdf0
(translation_unit "void FUN_00225a60(undefined8 param_1,long param_2,char param_3,long param_4)\n\n{\n  char cVar1;\n  long lVar2;\n  long lVar3;\n  undefined1 *local_40;\n  undefined1 local_38 [4];\n  undefined8 local_34;\n  undefined1 local_2c;\n  undefined1 local_2b;\n  \n  if (param_3 != '\0') {\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }\n  lVar2 = *(long *)(param_4 + 0x18);\n  if (lVar2 == param_2) {\n    return;\n  }\n  if (*(long *)(lVar2 + 8) != 0) {\n    if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");\n  }\n  if ((*(byte *)(param_2 + 0x39) & 3) == 0) {\n    if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;\nLAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;\n    lVar3 = *(long *)(lVar2 + 0x10);\n  }\n  else {\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }\n  if ((((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)) {\n    if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;\n    if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }\n  }\nLAB_00225b30:\n  lVar2 = FUN_0021e500(lVar2);\n  local_34 = *(undefined8 *)(lVar2 + 0x40);\n  local_2c = *(undefined1 *)(lVar2 + 0x38);\n  local_2b = *(undefined1 *)(lVar2 + 0x39);\n  if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");\n  }\n  local_40 = local_38;\n  FUN_0025c820(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1);\n  if (*(char *)(lVar2 + 0x3a) < '\0') {\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;\n  }\n  if ((*(byte *)(lVar2 + 0x3b) & 1) != 0) {\n    *(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;\n  }\n  if (*(long *)(PTR_DAT_003be6b0 + 0x10) != 0) {\n    if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }\n    FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n}\n\n" (function_definition "void FUN_00225a60(undefined8 param_1,long param_2,char param_3,long param_4)\n\n{\n  char cVar1;\n  long lVar2;\n  long lVar3;\n  undefined1 *local_40;\n  undefined1 local_38 [4];\n  undefined8 local_34;\n  undefined1 local_2c;\n  undefined1 local_2b;\n  \n  if (param_3 != '\0') {\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }\n  lVar2 = *(long *)(param_4 + 0x18);\n  if (lVar2 == param_2) {\n    return;\n  }\n  if (*(long *)(lVar2 + 8) != 0) {\n    if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");\n  }\n  if ((*(byte *)(param_2 + 0x39) & 3) == 0) {\n    if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;\nLAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;\n    lVar3 = *(long *)(lVar2 + 0x10);\n  }\n  else {\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }\n  if ((((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)) {\n    if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;\n    if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }\n  }\nLAB_00225b30:\n  lVar2 = FUN_0021e500(lVar2);\n  local_34 = *(undefined8 *)(lVar2 + 0x40);\n  local_2c = *(undefined1 *)(lVar2 + 0x38);\n  local_2b = *(undefined1 *)(lVar2 + 0x39);\n  if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");\n  }\n  local_40 = local_38;\n  FUN_0025c820(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1);\n  if (*(char *)(lVar2 + 0x3a) < '\0') {\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;\n  }\n  if ((*(byte *)(lVar2 + 0x3b) & 1) != 0) {\n    *(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;\n  }\n  if (*(long *)(PTR_DAT_003be6b0 + 0x10) != 0) {\n    if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }\n    FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n}" primitive_type (function_declarator "FUN_00225a60(undefined8 param_1,long param_2,char param_3,long param_4)" identifier (parameter_list "(undefined8 param_1,long param_2,char param_3,long param_4)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char param_3" primitive_type identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  char cVar1;\n  long lVar2;\n  long lVar3;\n  undefined1 *local_40;\n  undefined1 local_38 [4];\n  undefined8 local_34;\n  undefined1 local_2c;\n  undefined1 local_2b;\n  \n  if (param_3 != '\0') {\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }\n  lVar2 = *(long *)(param_4 + 0x18);\n  if (lVar2 == param_2) {\n    return;\n  }\n  if (*(long *)(lVar2 + 8) != 0) {\n    if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");\n  }\n  if ((*(byte *)(param_2 + 0x39) & 3) == 0) {\n    if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;\nLAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;\n    lVar3 = *(long *)(lVar2 + 0x10);\n  }\n  else {\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }\n  if ((((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)) {\n    if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;\n    if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }\n  }\nLAB_00225b30:\n  lVar2 = FUN_0021e500(lVar2);\n  local_34 = *(undefined8 *)(lVar2 + 0x40);\n  local_2c = *(undefined1 *)(lVar2 + 0x38);\n  local_2b = *(undefined1 *)(lVar2 + 0x39);\n  if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");\n  }\n  local_40 = local_38;\n  FUN_0025c820(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1);\n  if (*(char *)(lVar2 + 0x3a) < '\0') {\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;\n  }\n  if ((*(byte *)(lVar2 + 0x3b) & 1) != 0) {\n    *(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;\n  }\n  if (*(long *)(PTR_DAT_003be6b0 + 0x10) != 0) {\n    if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }\n    FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined1 local_38 [4];" type_identifier (array_declarator "local_38 [4]" identifier [ number_literal ]) ;) (declaration "undefined8 local_34;" type_identifier identifier ;) (declaration "undefined1 local_2c;" type_identifier identifier ;) (declaration "undefined1 local_2b;" type_identifier identifier ;) (if_statement "if (param_3 != '\0') {\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }" if (parenthesized_expression "(param_3 != '\0')" ( (binary_expression "param_3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }" { (expression_statement "*(long *)(param_4 + 0x18) = param_2;" (assignment_expression "*(long *)(param_4 + 0x18) = param_2" (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;" (assignment_expression "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_2 + 0x3a) | 8" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) | number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "lVar2 = *(long *)(param_4 + 0x18);" (assignment_expression "lVar2 = *(long *)(param_4 + 0x18)" identifier = (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (lVar2 == param_2) {\n    return;\n  }" if (parenthesized_expression "(lVar2 == param_2)" ( (binary_expression "lVar2 == param_2" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (*(long *)(lVar2 + 8) != 0) {\n    if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");\n  }" if (parenthesized_expression "(*(long *)(lVar2 + 8) != 0)" ( (binary_expression "*(long *)(lVar2 + 8) != 0" (pointer_expression "*(long *)(lVar2 + 8)" * (cast_expression "(long *)(lVar2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 8)" ( (binary_expression "lVar2 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");\n  }" { (if_statement "if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }" if (parenthesized_expression "(*(long *)(lVar2 + 8) != *(long *)(param_2 + 8))" ( (binary_expression "*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)" (pointer_expression "*(long *)(lVar2 + 8)" * (cast_expression "(long *)(lVar2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 8)" ( (binary_expression "lVar2 + 8" identifier + number_literal) )))) != (pointer_expression "*(long *)(param_2 + 8)" * (cast_expression "(long *)(param_2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) comment (expression_statement "FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");" (call_expression "FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version")" identifier (argument_list "("../../gold/symtab.cc",0x36d,"define_default_version")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_default_version"" " string_content ") ))) ;) })) (if_statement "if ((*(byte *)(param_2 + 0x39) & 3) == 0) {\n    if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;\nLAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;\n    lVar3 = *(long *)(lVar2 + 0x10);\n  }\n  else {\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }" if (parenthesized_expression "((*(byte *)(param_2 + 0x39) & 3) == 0)" ( (binary_expression "(*(byte *)(param_2 + 0x39) & 3) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x39) & 3)" ( (binary_expression "*(byte *)(param_2 + 0x39) & 3" (pointer_expression "*(byte *)(param_2 + 0x39)" * (cast_expression "(byte *)(param_2 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x39)" ( (binary_expression "param_2 + 0x39" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;\nLAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;\n    lVar3 = *(long *)(lVar2 + 0x10);\n  }" { (if_statement "if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;" if (parenthesized_expression "(((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))" ( (binary_expression "((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)" (parenthesized_expression "((*(byte *)(lVar2 + 0x39) & 3) != 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x39) & 3) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x39) & 3)" ( (binary_expression "*(byte *)(lVar2 + 0x39) & 3" (pointer_expression "*(byte *)(lVar2 + 0x39)" * (cast_expression "(byte *)(lVar2 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x39)" ( (binary_expression "lVar2 + 0x39" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00225c2a;" goto statement_identifier ;)) (labeled_statement "LAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;" statement_identifier : (if_statement "if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;" if (parenthesized_expression "((*(byte *)(lVar2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar2 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar2 + 0x3a)" * (cast_expression "(byte *)(lVar2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x3a)" ( (binary_expression "lVar2 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00225b30;" goto statement_identifier ;))) (expression_statement "lVar3 = *(long *)(lVar2 + 0x10);" (assignment_expression "lVar3 = *(long *)(lVar2 + 0x10)" identifier = (pointer_expression "*(long *)(lVar2 + 0x10)" * (cast_expression "(long *)(lVar2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x10)" ( (binary_expression "lVar2 + 0x10" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }" else (compound_statement "{\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }" { (if_statement "if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }" if (parenthesized_expression "((*(byte *)(lVar2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar2 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar2 + 0x3a)" * (cast_expression "(byte *)(lVar2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x3a)" ( (binary_expression "lVar2 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }" { (if_statement "if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;" if (parenthesized_expression "(((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))" ( (binary_expression "((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0)" (parenthesized_expression "((*(byte *)(lVar2 + 0x39) & 3) == 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x39) & 3) == 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x39) & 3)" ( (binary_expression "*(byte *)(lVar2 + 0x39) & 3" (pointer_expression "*(byte *)(lVar2 + 0x39)" * (cast_expression "(byte *)(lVar2 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x39)" ( (binary_expression "lVar2 + 0x39" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00225b30;" goto statement_identifier ;)) (labeled_statement "LAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }" statement_identifier : (if_statement "if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }" if (parenthesized_expression "((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)" ( (binary_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1)" ( (binary_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1" (pointer_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" * (cast_expression "(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_2 + 0x10) + 0x3c)" ( (binary_expression "*(long *)(param_2 + 0x10) + 0x3c" (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) }))) (goto_statement "goto LAB_00225af2;" goto statement_identifier ;) })) (expression_statement "lVar3 = *(long *)(lVar2 + 0x10);" (assignment_expression "lVar3 = *(long *)(lVar2 + 0x10)" identifier = (pointer_expression "*(long *)(lVar2 + 0x10)" * (cast_expression "(long *)(lVar2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x10)" ( (binary_expression "lVar2 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }" if (parenthesized_expression "((*(byte *)(lVar3 + 0x3c) & 1) != 0)" ( (binary_expression "(*(byte *)(lVar3 + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar3 + 0x3c) & 1)" ( (binary_expression "*(byte *)(lVar3 + 0x3c) & 1" (pointer_expression "*(byte *)(lVar3 + 0x3c)" * (cast_expression "(byte *)(lVar3 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x3c)" ( (binary_expression "lVar3 + 0x3c" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;" if (parenthesized_expression "((*(byte *)(lVar2 + 0x39) & 3) == 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x39) & 3) == 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x39) & 3)" ( (binary_expression "*(byte *)(lVar2 + 0x39) & 3" (pointer_expression "*(byte *)(lVar2 + 0x39)" * (cast_expression "(byte *)(lVar2 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x39)" ( (binary_expression "lVar2 + 0x39" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00225b30;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;" if (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00225c2a;" goto statement_identifier ;)) }))) (if_statement "if ((((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)) {\n    if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;\n    if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }\n  }" if (parenthesized_expression "((((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0))" ( (binary_expression "(((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)" (parenthesized_expression "(((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))" ( (binary_expression "((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)" (parenthesized_expression "((*(byte *)(lVar3 + 0x3c) & 1) != 0)" ( (binary_expression "(*(byte *)(lVar3 + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar3 + 0x3c) & 1)" ( (binary_expression "*(byte *)(lVar3 + 0x3c) & 1" (pointer_expression "*(byte *)(lVar3 + 0x3c)" * (cast_expression "(byte *)(lVar3 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x3c)" ( (binary_expression "lVar3 + 0x3c" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)" ( (binary_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1)" ( (binary_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1" (pointer_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" * (cast_expression "(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_2 + 0x10) + 0x3c)" ( (binary_expression "*(long *)(param_2 + 0x10) + 0x3c" (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;\n    if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }\n  }" { (if_statement "if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;" if (parenthesized_expression "((*(byte *)(lVar2 + 0x3b) & 0x20) == 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)(lVar2 + 0x3b) & 0x20" (pointer_expression "*(byte *)(lVar2 + 0x3b)" * (cast_expression "(byte *)(lVar2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x3b)" ( (binary_expression "lVar2 + 0x3b" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }" { (expression_statement "cVar1 = FUN_0021e870();" (assignment_expression "cVar1 = FUN_0021e870()" identifier = (call_expression "FUN_0021e870()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }" { (expression_statement "lVar2 = *(long *)(param_4 + 0x18);" (assignment_expression "lVar2 = *(long *)(param_4 + 0x18)" identifier = (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00225b30;" goto statement_identifier ;) })) (expression_statement "lVar2 = *(long *)(param_4 + 0x18);" (assignment_expression "lVar2 = *(long *)(param_4 + 0x18)" identifier = (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }" if (parenthesized_expression "(((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0))" ( (binary_expression "((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)" (parenthesized_expression "((*(byte *)(lVar2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar2 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar2 + 0x3a)" * (cast_expression "(byte *)(lVar2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x3a)" ( (binary_expression "lVar2 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)" ( (comma_expression "lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0" (assignment_expression "lVar3 = *(long *)(lVar2 + 0x10)" identifier = (pointer_expression "*(long *)(lVar2 + 0x10)" * (cast_expression "(long *)(lVar2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x10)" ( (binary_expression "lVar2 + 0x10" identifier + number_literal) ))))) , (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }" { comment (expression_statement "FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_0016cdf0("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;) })) }) (else_clause "else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;" else (if_statement "if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;" if (parenthesized_expression "(*(int *)(lVar2 + 0x18) == 0)" ( (binary_expression "*(int *)(lVar2 + 0x18) == 0" (pointer_expression "*(int *)(lVar2 + 0x18)" * (cast_expression "(int *)(lVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00225b30;" goto statement_identifier ;)))) (if_statement "if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }" if (parenthesized_expression "(*(long *)(param_2 + 0x10) != lVar3)" ( (binary_expression "*(long *)(param_2 + 0x10) != lVar3" (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })) (labeled_statement "LAB_00225b30:\n  lVar2 = FUN_0021e500(lVar2);" statement_identifier : (expression_statement "lVar2 = FUN_0021e500(lVar2);" (assignment_expression "lVar2 = FUN_0021e500(lVar2)" identifier = (call_expression "FUN_0021e500(lVar2)" identifier (argument_list "(lVar2)" ( identifier )))) ;)) (expression_statement "local_34 = *(undefined8 *)(lVar2 + 0x40);" (assignment_expression "local_34 = *(undefined8 *)(lVar2 + 0x40)" identifier = (pointer_expression "*(undefined8 *)(lVar2 + 0x40)" * (cast_expression "(undefined8 *)(lVar2 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x40)" ( (binary_expression "lVar2 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(undefined1 *)(lVar2 + 0x38);" (assignment_expression "local_2c = *(undefined1 *)(lVar2 + 0x38)" identifier = (pointer_expression "*(undefined1 *)(lVar2 + 0x38)" * (cast_expression "(undefined1 *)(lVar2 + 0x38)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x38)" ( (binary_expression "lVar2 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "local_2b = *(undefined1 *)(lVar2 + 0x39);" (assignment_expression "local_2b = *(undefined1 *)(lVar2 + 0x39)" identifier = (pointer_expression "*(undefined1 *)(lVar2 + 0x39)" * (cast_expression "(undefined1 *)(lVar2 + 0x39)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x39)" ( (binary_expression "lVar2 + 0x39" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");\n  }" if (parenthesized_expression "((*(byte *)(lVar2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar2 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar2 + 0x3a)" * (cast_expression "(byte *)(lVar2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x3a)" ( (binary_expression "lVar2 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;) })) (expression_statement "local_40 = local_38;" (assignment_expression "local_40 = local_38" identifier = identifier) ;) (expression_statement "FUN_0025c820(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1);" (call_expression "FUN_0025c820(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1)" identifier (argument_list "(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1)" ( identifier , identifier , (pointer_expression "&local_40" & identifier) , (pointer_expression "*(undefined4 *)(lVar2 + 0x18)" * (cast_expression "(undefined4 *)(lVar2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) )))) , (binary_expression "*(byte *)(lVar2 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)(lVar2 + 0x3b) >> 5" (pointer_expression "*(byte *)(lVar2 + 0x3b)" * (cast_expression "(byte *)(lVar2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x3b)" ( (binary_expression "lVar2 + 0x3b" identifier + number_literal) )))) >> number_literal) & number_literal) , (pointer_expression "*(undefined4 *)(lVar2 + 0x18)" * (cast_expression "(undefined4 *)(lVar2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(lVar2 + 0x10)" * (cast_expression "(undefined8 *)(lVar2 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x10)" ( (binary_expression "lVar2 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(lVar2 + 8)" * (cast_expression "(undefined8 *)(lVar2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 8)" ( (binary_expression "lVar2 + 8" identifier + number_literal) )))) , number_literal ))) ;) (if_statement "if (*(char *)(lVar2 + 0x3a) < '\0') {\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;\n  }" if (parenthesized_expression "(*(char *)(lVar2 + 0x3a) < '\0')" ( (binary_expression "*(char *)(lVar2 + 0x3a) < '\0'" (pointer_expression "*(char *)(lVar2 + 0x3a)" * (cast_expression "(char *)(lVar2 + 0x3a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x3a)" ( (binary_expression "lVar2 + 0x3a" identifier + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;\n  }" { (expression_statement "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;" (assignment_expression "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_2 + 0x3a) | 0x80" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((*(byte *)(lVar2 + 0x3b) & 1) != 0) {\n    *(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;\n  }" if (parenthesized_expression "((*(byte *)(lVar2 + 0x3b) & 1) != 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x3b) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3b) & 1)" ( (binary_expression "*(byte *)(lVar2 + 0x3b) & 1" (pointer_expression "*(byte *)(lVar2 + 0x3b)" * (cast_expression "(byte *)(lVar2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x3b)" ( (binary_expression "lVar2 + 0x3b" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;\n  }" { (expression_statement "*(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;" (assignment_expression "*(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1" (pointer_expression "*(byte *)(param_2 + 0x3b)" * (cast_expression "(byte *)(param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3b)" ( (binary_expression "param_2 + 0x3b" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_2 + 0x3b) | 1" (pointer_expression "*(byte *)(param_2 + 0x3b)" * (cast_expression "(byte *)(param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3b)" ( (binary_expression "param_2 + 0x3b" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x10) != 0) {\n    if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }\n    FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x10)" ( (binary_expression "PTR_DAT_003be6b0 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }\n    FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }" { (if_statement "if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }" if (parenthesized_expression "(((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0))))" ( (binary_expression "((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))" (parenthesized_expression "((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0))" ( (binary_expression "(*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)" (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809)" * (cast_expression "(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x10)" ( (binary_expression "PTR_DAT_003be6b0 + 0x10" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((*(byte *)(param_2 + 0x3b) & 1) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x3b) & 1) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3b) & 1)" ( (binary_expression "*(byte *)(param_2 + 0x3b) & 1" (pointer_expression "*(byte *)(param_2 + 0x3b)" * (cast_expression "(byte *)(param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3b)" ( (binary_expression "param_2 + 0x3b" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))" ( (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0))" ( (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)" (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) & number_literal) )) == number_literal) && (parenthesized_expression "((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)" ( (binary_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1)" ( (binary_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1" (pointer_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" * (cast_expression "(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_2 + 0x10) + 0x3c)" ( (binary_expression "*(long *)(param_2 + 0x10) + 0x3c" (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n      FUN_0021f580(param_1,param_2);\n    }" { (expression_statement "FUN_0021f580(param_1,param_2);" (call_expression "FUN_0021f580(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) })) (expression_statement "FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);" (call_expression "FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2)" identifier (argument_list "(param_1,*(undefined8 *)(param_4 + 0x18),param_2)" ( identifier , (pointer_expression "*(undefined8 *)(param_4 + 0x18)" * (cast_expression "(undefined8 *)(param_4 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "*(long *)(param_4 + 0x18) = param_2;" (assignment_expression "*(long *)(param_4 + 0x18) = param_2" (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;" (assignment_expression "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_2 + 0x3a) | 8" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) | number_literal)) ;) (return_statement "return;" return ;) })) comment (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0016cdf0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original name: define_default_version<32, false>\n   DWARF original prototype: void define_default_version<32,_false>(Symbol_table * this,\n   Sized_symbol<32> * sym, bool default_is_new, iterator pdef) */\n\nvoid __thiscall\ngold::Symbol_table::define_default_version<32,_false>\n          (Symbol_table *this,Sized_symbol<32> *sym,bool default_is_new,iterator pdef)\n\n{\n  undefined1 *puVar1;\n  uint st_shndx;\n  bool bVar2;\n  Symbol_table *this_00;\n  Sized_symbol<32> *pSVar3;\n  Output_segment *pOVar4;\n  Sym<32,_false> local_40;\n  uchar buf [16];\n  \n  if (default_is_new) {\n    *(Sized_symbol<32> **)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18) = sym;\n    puVar1 = &(sym->super_Symbol).field_0x3a;\n    *puVar1 = *puVar1 | 8;\n    return;\n  }\n  this_00 = *(Symbol_table **)\n             ((long)pdef.\n                    super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                    ._M_cur + 0x18);\n  if (this_00 == (Symbol_table *)sym) {\n    return;\n  }\n  if (*(char **)&this_00->first_global_index_ != (char *)0x0) {\n    if (*(char **)&this_00->first_global_index_ != (sym->super_Symbol).version_) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0x36d,"define_default_version");\n  }\n  pSVar3 = sym;\n  if (((sym->super_Symbol).field_0x39 & 3) == 0) {\n    if ((((this_00->table_)._M_h._M_bucket_count & 0x300) != 0) &&\n       (((sym->super_Symbol).field_0x3a & 7) == 0)) goto LAB_00225c2a;\nLAB_00225af2:\n    if (((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) goto LAB_00225b30;\n    pOVar4 = ((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->output_segment;\n  }\n  else {\n    if (((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) {\n      if ((((this_00->table_)._M_h._M_bucket_count & 0x300) == 0) ||\n         (((sym->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00225b30;\nLAB_00225c2a:\n      if (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish & 0x100000000) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    pOVar4 = ((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->output_segment;\n    if (((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000) != 0) {\n      return;\n    }\n    if (((this_00->table_)._M_h._M_bucket_count & 0x300) == 0) goto LAB_00225b30;\n    if (((sym->super_Symbol).field_0x3a & 7) == 0) goto LAB_00225c2a;\n  }\n  if (((((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000) != 0) && (((sym->super_Symbol).field_0x3a & 7) == 0)) &&\n     (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish & 0x100000000) != 0)) {\n    if (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0) {\n      bVar2 = Symbol::is_common_shndx\n                        (((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx);\n      if (bVar2) {\n        this_00 = *(Symbol_table **)\n                   ((long)pdef.\n                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                          ._M_cur + 0x18);\n        goto LAB_00225b30;\n      }\n      this_00 = *(Symbol_table **)\n                 ((long)pdef.\n                        super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                        ._M_cur + 0x18);\n      if ((((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) ||\n         (pOVar4 = (Output_segment *)((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->object,\n         ((sym->super_Symbol).field_0x3a & 7) != 0)) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx == 0)\n    goto LAB_00225b30;\n    if ((Output_segment *)(sym->super_Symbol).u1_.object != pOVar4) {\n      return;\n    }\n  }\nLAB_00225b30:\n  pSVar3 = get_sized_symbol<32>(this_00,&pSVar3->super_Symbol);\n  buf._4_8_ = *(undefined8 *)&pSVar3->value_;\n  buf[0xc] = (pSVar3->super_Symbol).field_0x38;\n  buf[0xd] = (pSVar3->super_Symbol).field_0x39;\n  if (((pSVar3->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n  }\n  local_40.p_ = (Sym_data<32> *)buf;\n  st_shndx = (pSVar3->super_Symbol).u2_.shndx;\n  resolve<32,_false>(this,sym,&local_40,st_shndx,\n                     (bool)((byte)(pSVar3->super_Symbol).field_0x3b >> 5 & 1),st_shndx,\n                     (pSVar3->super_Symbol).u1_.object,(pSVar3->super_Symbol).version_,true);\n  if ((char)(pSVar3->super_Symbol).field_0x3a < '\0') {\n    puVar1 = &(sym->super_Symbol).field_0x3a;\n    *puVar1 = *puVar1 | 0x80;\n  }\n  if (((pSVar3->super_Symbol).field_0x3b & 1) != 0) {\n    puVar1 = &(sym->super_Symbol).field_0x3b;\n    *puVar1 = *puVar1 | 1;\n  }\n  if (parameters->options_ != (General_options *)0x0) {\n    if ((((parameters->options_->gc_sections_).value != false) &&\n        (((sym->super_Symbol).field_0x3b & 1) != 0)) &&\n       ((((sym->super_Symbol).field_0x3a & 7) == 0 &&\n        (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0)))) {\n      gc_mark_symbol(this,&sym->super_Symbol);\n    }\n    make_forwarder(this,*(Symbol **)\n                         ((long)pdef.\n                                super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                                ._M_cur + 0x18),&sym->super_Symbol);\n    *(Sized_symbol<32> **)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18) = sym;\n    puVar1 = &(sym->super_Symbol).field_0x3a;\n    *puVar1 = *puVar1 | 8;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n}\n\n" comment comment (declaration "void __thiscall\ngold::Symbol_table::define_default_version<32,_false>\n          (Symbol_table *this,Sized_symbol<32> *sym,bool default_is_new,iterator pdef)\n\n{\n  undefined1 *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_false>\n          (Symbol_table *this,Sized_symbol<32> *sym,bool default_is_new,iterator pdef)\n\n{\n  undefined1" (function_declarator "_false>\n          (Symbol_table *this,Sized_symbol<32> *sym,bool default_is_new,iterator pdef)" identifier (ERROR ">" >) (parameter_list "(Symbol_table *this,Sized_symbol<32> *sym,bool default_is_new,iterator pdef)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_symbol<32> *sym" type_identifier (ERROR "<32>" < number_literal >) (pointer_declarator "*sym" * identifier)) , (parameter_declaration "bool default_is_new" primitive_type identifier) , (parameter_declaration "iterator pdef" type_identifier identifier) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint st_shndx;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "Symbol_table *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (expression_statement "Sized_symbol<32> *pSVar3;" (update_expression "Sized_symbol<32> *pSVar3" (binary_expression "Sized_symbol<32> *pSVar3" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*pSVar3" * identifier)) --) ;) (declaration "Output_segment *pOVar4;" type_identifier (pointer_declarator "*pOVar4" * identifier) ;) (ERROR "Sym<32,_false> local_40" (binary_expression "Sym<32" identifier < number_literal) , (binary_expression "_false> local_40" identifier > identifier)) (expression_statement ";" ;) (declaration "uchar buf [16];" type_identifier (array_declarator "buf [16]" identifier [ number_literal ]) ;) (if_statement "if (default_is_new) {\n    *(Sized_symbol<32> **)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18) = sym;\n    puVar1 = &(sym->super_Symbol).field_0x3a;\n    *puVar1 = *puVar1 | 8;\n    return;\n  }" if (parenthesized_expression "(default_is_new)" ( identifier )) (compound_statement "{\n    *(Sized_symbol<32> **)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18) = sym;\n    puVar1 = &(sym->super_Symbol).field_0x3a;\n    *puVar1 = *puVar1 | 8;\n    return;\n  }" { (expression_statement "*(Sized_symbol<32> **)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18) = sym;" (pointer_expression "*(Sized_symbol<32> **)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18) = sym" * (parenthesized_expression "(Sized_symbol<32> **)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18) = sym" ( (binary_expression "Sized_symbol<32> **)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18) = sym" (binary_expression "Sized_symbol<32" identifier < number_literal) > (assignment_expression "**)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18) = sym" (pointer_expression "**)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18)" * (pointer_expression "*)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18)" * (ERROR ")" )) (parenthesized_expression "((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18)" ( (ERROR "(long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ." (comma_expression "(long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "(long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int" (binary_expression "(long)pdef.\n            super__Node_iterator_base<std::pair<const_std" (binary_expression "(long)pdef.\n            super__Node_iterator_base<std" (cast_expression "(long)pdef.\n            super__Node_iterator_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pdef.\n            super__Node_iterator_base" identifier . field_identifier)) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : identifier * > , identifier > .) (binary_expression "_M_cur + 0x18" identifier + number_literal) )))) = identifier)) ))) ;) (expression_statement "puVar1 = &(sym->super_Symbol).field_0x3a;" (assignment_expression "puVar1 = &(sym->super_Symbol).field_0x3a" identifier = (pointer_expression "&(sym->super_Symbol).field_0x3a" & (field_expression "(sym->super_Symbol).field_0x3a" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" 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)) ;) (return_statement "return;" return ;) })) (expression_statement "this_00 = *(Symbol_table **)\n             ((long)pdef.\n                    super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                    ._M_cur + 0x18);" (assignment_expression "this_00 = *(Symbol_table **)\n             ((long)pdef.\n                    super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                    ._M_cur + 0x18)" identifier = (pointer_expression "*(Symbol_table **)\n             ((long)pdef.\n                    super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                    ._M_cur + 0x18)" * (cast_expression "(Symbol_table **)\n             ((long)pdef.\n                    super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                    ._M_cur + 0x18)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)pdef.\n                    super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                    ._M_cur + 0x18)" ( (ERROR "(long)pdef.\n                    super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                    ." (comma_expression "(long)pdef.\n                    super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "(long)pdef.\n                    super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int" (binary_expression "(long)pdef.\n                    super__Node_iterator_base<std::pair<const_std" (binary_expression "(long)pdef.\n                    super__Node_iterator_base<std" (cast_expression "(long)pdef.\n                    super__Node_iterator_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pdef.\n                    super__Node_iterator_base" identifier . field_identifier)) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : identifier * > , identifier > .) (binary_expression "_M_cur + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (this_00 == (Symbol_table *)sym) {\n    return;\n  }" if (parenthesized_expression "(this_00 == (Symbol_table *)sym)" ( (binary_expression "this_00 == (Symbol_table *)sym" identifier == (cast_expression "(Symbol_table *)sym" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (*(char **)&this_00->first_global_index_ != (char *)0x0) {\n    if (*(char **)&this_00->first_global_index_ != (sym->super_Symbol).version_) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0x36d,"define_default_version");\n  }" if (parenthesized_expression "(*(char **)&this_00->first_global_index_ != (char *)0x0)" ( (binary_expression "*(char **)&this_00->first_global_index_ != (char *)0x0" (pointer_expression "*(char **)&this_00->first_global_index_" * (cast_expression "(char **)&this_00->first_global_index_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&this_00->first_global_index_" & (field_expression "this_00->first_global_index_" identifier -> field_identifier)))) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*(char **)&this_00->first_global_index_ != (sym->super_Symbol).version_) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0x36d,"define_default_version");\n  }" { (if_statement "if (*(char **)&this_00->first_global_index_ != (sym->super_Symbol).version_) {\n      return;\n    }" if (parenthesized_expression "(*(char **)&this_00->first_global_index_ != (sym->super_Symbol).version_)" ( (binary_expression "*(char **)&this_00->first_global_index_ != (sym->super_Symbol).version_" (pointer_expression "*(char **)&this_00->first_global_index_" * (cast_expression "(char **)&this_00->first_global_index_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&this_00->first_global_index_" & (field_expression "this_00->first_global_index_" identifier -> field_identifier)))) != (field_expression "(sym->super_Symbol).version_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0x36d,"define_default_version");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0x36d,"define_default_version")" identifier (argument_list "("../../gold/symtab.cc",0x36d,"define_default_version")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_default_version"" " string_content ") ))) ;) })) (expression_statement "pSVar3 = sym;" (assignment_expression "pSVar3 = sym" identifier = identifier) ;) (if_statement "if (((sym->super_Symbol).field_0x39 & 3) == 0) {\n    if ((((this_00->table_)._M_h._M_bucket_count & 0x300) != 0) &&\n       (((sym->super_Symbol).field_0x3a & 7) == 0)) goto LAB_00225c2a;\nLAB_00225af2:\n    if (((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) goto LAB_00225b30;\n    pOVar4 = ((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->output_segment;\n  }\n  else {\n    if (((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) {\n      if ((((this_00->table_)._M_h._M_bucket_count & 0x300) == 0) ||\n         (((sym->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00225b30;\nLAB_00225c2a:\n      if (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish & 0x100000000) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    pOVar4 = ((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->output_segment;\n    if (((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000) != 0) {\n      return;\n    }\n    if (((this_00->table_)._M_h._M_bucket_count & 0x300) == 0) goto LAB_00225b30;\n    if (((sym->super_Symbol).field_0x3a & 7) == 0) goto LAB_00225c2a;\n  }" if (parenthesized_expression "(((sym->super_Symbol).field_0x39 & 3) == 0)" ( (binary_expression "((sym->super_Symbol).field_0x39 & 3) == 0" (parenthesized_expression "((sym->super_Symbol).field_0x39 & 3)" ( (binary_expression "(sym->super_Symbol).field_0x39 & 3" (field_expression "(sym->super_Symbol).field_0x39" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    if ((((this_00->table_)._M_h._M_bucket_count & 0x300) != 0) &&\n       (((sym->super_Symbol).field_0x3a & 7) == 0)) goto LAB_00225c2a;\nLAB_00225af2:\n    if (((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) goto LAB_00225b30;\n    pOVar4 = ((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->output_segment;\n  }" { (if_statement "if ((((this_00->table_)._M_h._M_bucket_count & 0x300) != 0) &&\n       (((sym->super_Symbol).field_0x3a & 7) == 0)) goto LAB_00225c2a;" if (parenthesized_expression "((((this_00->table_)._M_h._M_bucket_count & 0x300) != 0) &&\n       (((sym->super_Symbol).field_0x3a & 7) == 0))" ( (binary_expression "(((this_00->table_)._M_h._M_bucket_count & 0x300) != 0) &&\n       (((sym->super_Symbol).field_0x3a & 7) == 0)" (parenthesized_expression "(((this_00->table_)._M_h._M_bucket_count & 0x300) != 0)" ( (binary_expression "((this_00->table_)._M_h._M_bucket_count & 0x300) != 0" (parenthesized_expression "((this_00->table_)._M_h._M_bucket_count & 0x300)" ( (binary_expression "(this_00->table_)._M_h._M_bucket_count & 0x300" (field_expression "(this_00->table_)._M_h._M_bucket_count" (field_expression "(this_00->table_)._M_h" (parenthesized_expression "(this_00->table_)" ( (field_expression "this_00->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(((sym->super_Symbol).field_0x3a & 7) == 0)" ( (binary_expression "((sym->super_Symbol).field_0x3a & 7) == 0" (parenthesized_expression "((sym->super_Symbol).field_0x3a & 7)" ( (binary_expression "(sym->super_Symbol).field_0x3a & 7" (field_expression "(sym->super_Symbol).field_0x3a" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00225c2a;" goto statement_identifier ;)) (labeled_statement "LAB_00225af2:\n    if (((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) goto LAB_00225b30;" statement_identifier : (if_statement "if (((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) goto LAB_00225b30;" if (parenthesized_expression "(((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0)" ( (binary_expression "((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0" (parenthesized_expression "((this_00->table_)._M_h._M_bucket_count & 0x70000)" ( (binary_expression "(this_00->table_)._M_h._M_bucket_count & 0x70000" (field_expression "(this_00->table_)._M_h._M_bucket_count" (field_expression "(this_00->table_)._M_h" (parenthesized_expression "(this_00->table_)" ( (field_expression "this_00->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00225b30;" goto statement_identifier ;))) (expression_statement "pOVar4 = ((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->output_segment;" (assignment_expression "pOVar4 = ((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->output_segment" identifier = (field_expression "((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->output_segment" (parenthesized_expression "((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)" ( (cast_expression "(anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_" ( (type_descriptor "anon_union_8_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_00->offset_" & (field_expression "this_00->offset_" identifier -> field_identifier))) )) -> field_identifier)) ;) }) (else_clause "else {\n    if (((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) {\n      if ((((this_00->table_)._M_h._M_bucket_count & 0x300) == 0) ||\n         (((sym->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00225b30;\nLAB_00225c2a:\n      if (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish & 0x100000000) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    pOVar4 = ((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->output_segment;\n    if (((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000) != 0) {\n      return;\n    }\n    if (((this_00->table_)._M_h._M_bucket_count & 0x300) == 0) goto LAB_00225b30;\n    if (((sym->super_Symbol).field_0x3a & 7) == 0) goto LAB_00225c2a;\n  }" else (compound_statement "{\n    if (((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) {\n      if ((((this_00->table_)._M_h._M_bucket_count & 0x300) == 0) ||\n         (((sym->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00225b30;\nLAB_00225c2a:\n      if (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish & 0x100000000) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    pOVar4 = ((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->output_segment;\n    if (((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000) != 0) {\n      return;\n    }\n    if (((this_00->table_)._M_h._M_bucket_count & 0x300) == 0) goto LAB_00225b30;\n    if (((sym->super_Symbol).field_0x3a & 7) == 0) goto LAB_00225c2a;\n  }" { (if_statement "if (((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) {\n      if ((((this_00->table_)._M_h._M_bucket_count & 0x300) == 0) ||\n         (((sym->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00225b30;\nLAB_00225c2a:\n      if (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish & 0x100000000) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }" if (parenthesized_expression "(((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0)" ( (binary_expression "((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0" (parenthesized_expression "((this_00->table_)._M_h._M_bucket_count & 0x70000)" ( (binary_expression "(this_00->table_)._M_h._M_bucket_count & 0x70000" (field_expression "(this_00->table_)._M_h._M_bucket_count" (field_expression "(this_00->table_)._M_h" (parenthesized_expression "(this_00->table_)" ( (field_expression "this_00->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if ((((this_00->table_)._M_h._M_bucket_count & 0x300) == 0) ||\n         (((sym->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00225b30;\nLAB_00225c2a:\n      if (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish & 0x100000000) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }" { (if_statement "if ((((this_00->table_)._M_h._M_bucket_count & 0x300) == 0) ||\n         (((sym->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00225b30;" if (parenthesized_expression "((((this_00->table_)._M_h._M_bucket_count & 0x300) == 0) ||\n         (((sym->super_Symbol).field_0x3a & 7) != 0))" ( (binary_expression "(((this_00->table_)._M_h._M_bucket_count & 0x300) == 0) ||\n         (((sym->super_Symbol).field_0x3a & 7) != 0)" (parenthesized_expression "(((this_00->table_)._M_h._M_bucket_count & 0x300) == 0)" ( (binary_expression "((this_00->table_)._M_h._M_bucket_count & 0x300) == 0" (parenthesized_expression "((this_00->table_)._M_h._M_bucket_count & 0x300)" ( (binary_expression "(this_00->table_)._M_h._M_bucket_count & 0x300" (field_expression "(this_00->table_)._M_h._M_bucket_count" (field_expression "(this_00->table_)._M_h" (parenthesized_expression "(this_00->table_)" ( (field_expression "this_00->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) || (parenthesized_expression "(((sym->super_Symbol).field_0x3a & 7) != 0)" ( (binary_expression "((sym->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((sym->super_Symbol).field_0x3a & 7)" ( (binary_expression "(sym->super_Symbol).field_0x3a & 7" (field_expression "(sym->super_Symbol).field_0x3a" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00225b30;" goto statement_identifier ;)) (labeled_statement "LAB_00225c2a:\n      if (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish & 0x100000000) != 0) {\n        return;\n      }" statement_identifier : (if_statement "if (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish & 0x100000000) != 0) {\n        return;\n      }" if (parenthesized_expression "(((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish & 0x100000000) != 0)" ( (binary_expression "((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish & 0x100000000) != 0" (parenthesized_expression "((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish & 0x100000000)" ( (binary_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish & 0x100000000" (field_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_finish" (field_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl" (binary_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold::Output_data*,_std" (binary_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base<gold" (field_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                  super__Vector_base" (subscript_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2]" (field_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_" (call_expression "(ulong)((sym->super_Symbol).u1_.output_segment)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((sym->super_Symbol).u1_.output_segment)" ( (field_expression "(sym->super_Symbol).u1_.output_segment" (field_expression "(sym->super_Symbol).u1_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) -> field_identifier) [ number_literal ]) . field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) }))) (goto_statement "goto LAB_00225af2;" goto statement_identifier ;) })) (expression_statement "pOVar4 = ((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->output_segment;" (assignment_expression "pOVar4 = ((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->output_segment" identifier = (field_expression "((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->output_segment" (parenthesized_expression "((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)" ( (cast_expression "(anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_" ( (type_descriptor "anon_union_8_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_00->offset_" & (field_expression "this_00->offset_" identifier -> field_identifier))) )) -> field_identifier)) ;) (if_statement "if (((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000) != 0) {\n      return;\n    }" if (parenthesized_expression "(((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000) != 0)" ( (binary_expression "((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000) != 0" (parenthesized_expression "((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000)" ( (binary_expression "(ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000" (field_expression "(ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish" (field_expression "(ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std" (binary_expression "(ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold" (cast_expression "(ulong)pOVar4->output_lists_[2].\n                super__Vector_base" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pOVar4->output_lists_[2].\n                super__Vector_base" (subscript_expression "pOVar4->output_lists_[2]" (field_expression "pOVar4->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if (((this_00->table_)._M_h._M_bucket_count & 0x300) == 0) goto LAB_00225b30;" if (parenthesized_expression "(((this_00->table_)._M_h._M_bucket_count & 0x300) == 0)" ( (binary_expression "((this_00->table_)._M_h._M_bucket_count & 0x300) == 0" (parenthesized_expression "((this_00->table_)._M_h._M_bucket_count & 0x300)" ( (binary_expression "(this_00->table_)._M_h._M_bucket_count & 0x300" (field_expression "(this_00->table_)._M_h._M_bucket_count" (field_expression "(this_00->table_)._M_h" (parenthesized_expression "(this_00->table_)" ( (field_expression "this_00->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00225b30;" goto statement_identifier ;)) (if_statement "if (((sym->super_Symbol).field_0x3a & 7) == 0) goto LAB_00225c2a;" if (parenthesized_expression "(((sym->super_Symbol).field_0x3a & 7) == 0)" ( (binary_expression "((sym->super_Symbol).field_0x3a & 7) == 0" (parenthesized_expression "((sym->super_Symbol).field_0x3a & 7)" ( (binary_expression "(sym->super_Symbol).field_0x3a & 7" (field_expression "(sym->super_Symbol).field_0x3a" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00225c2a;" goto statement_identifier ;)) }))) (if_statement "if (((((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000) != 0) && (((sym->super_Symbol).field_0x3a & 7) == 0)) &&\n     (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish & 0x100000000) != 0)) {\n    if (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0) {\n      bVar2 = Symbol::is_common_shndx\n                        (((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx);\n      if (bVar2) {\n        this_00 = *(Symbol_table **)\n                   ((long)pdef.\n                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                          ._M_cur + 0x18);\n        goto LAB_00225b30;\n      }\n      this_00 = *(Symbol_table **)\n                 ((long)pdef.\n                        super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                        ._M_cur + 0x18);\n      if ((((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) ||\n         (pOVar4 = (Output_segment *)((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->object,\n         ((sym->super_Symbol).field_0x3a & 7) != 0)) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx == 0)\n    goto LAB_00225b30;\n    if ((Output_segment *)(sym->super_Symbol).u1_.object != pOVar4) {\n      return;\n    }\n  }" if (parenthesized_expression "(((((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000) != 0) && (((sym->super_Symbol).field_0x3a & 7) == 0)) &&\n     (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish & 0x100000000) != 0))" ( (binary_expression "((((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000) != 0) && (((sym->super_Symbol).field_0x3a & 7) == 0)) &&\n     (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish & 0x100000000) != 0)" (parenthesized_expression "((((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000) != 0) && (((sym->super_Symbol).field_0x3a & 7) == 0))" ( (binary_expression "(((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000) != 0) && (((sym->super_Symbol).field_0x3a & 7) == 0)" (parenthesized_expression "(((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000) != 0)" ( (binary_expression "((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000) != 0" (parenthesized_expression "((ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000)" ( (binary_expression "(ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish & 0x100000000" (field_expression "(ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n                _M_finish" (field_expression "(ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold::Output_data*,_std" (binary_expression "(ulong)pOVar4->output_lists_[2].\n                super__Vector_base<gold" (cast_expression "(ulong)pOVar4->output_lists_[2].\n                super__Vector_base" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pOVar4->output_lists_[2].\n                super__Vector_base" (subscript_expression "pOVar4->output_lists_[2]" (field_expression "pOVar4->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(((sym->super_Symbol).field_0x3a & 7) == 0)" ( (binary_expression "((sym->super_Symbol).field_0x3a & 7) == 0" (parenthesized_expression "((sym->super_Symbol).field_0x3a & 7)" ( (binary_expression "(sym->super_Symbol).field_0x3a & 7" (field_expression "(sym->super_Symbol).field_0x3a" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish & 0x100000000) != 0)" ( (binary_expression "((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish & 0x100000000) != 0" (parenthesized_expression "((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish & 0x100000000)" ( (binary_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish & 0x100000000" (field_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish" (field_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n              super__Vector_base<gold::Output_data*,_std" (binary_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n              super__Vector_base<gold" (field_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n              super__Vector_base" (subscript_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2]" (field_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_" (call_expression "(ulong)((sym->super_Symbol).u1_.output_segment)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((sym->super_Symbol).u1_.output_segment)" ( (field_expression "(sym->super_Symbol).u1_.output_segment" (field_expression "(sym->super_Symbol).u1_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) -> field_identifier) [ number_literal ]) . field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    if (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0) {\n      bVar2 = Symbol::is_common_shndx\n                        (((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx);\n      if (bVar2) {\n        this_00 = *(Symbol_table **)\n                   ((long)pdef.\n                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                          ._M_cur + 0x18);\n        goto LAB_00225b30;\n      }\n      this_00 = *(Symbol_table **)\n                 ((long)pdef.\n                        super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                        ._M_cur + 0x18);\n      if ((((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) ||\n         (pOVar4 = (Output_segment *)((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->object,\n         ((sym->super_Symbol).field_0x3a & 7) != 0)) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx == 0)\n    goto LAB_00225b30;\n    if ((Output_segment *)(sym->super_Symbol).u1_.object != pOVar4) {\n      return;\n    }\n  }" { (if_statement "if (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0) {\n      bVar2 = Symbol::is_common_shndx\n                        (((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx);\n      if (bVar2) {\n        this_00 = *(Symbol_table **)\n                   ((long)pdef.\n                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                          ._M_cur + 0x18);\n        goto LAB_00225b30;\n      }\n      this_00 = *(Symbol_table **)\n                 ((long)pdef.\n                        super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                        ._M_cur + 0x18);\n      if ((((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) ||\n         (pOVar4 = (Output_segment *)((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->object,\n         ((sym->super_Symbol).field_0x3a & 7) != 0)) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx == 0)\n    goto LAB_00225b30;" if (parenthesized_expression "(((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0)" ( (binary_expression "((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0" (parenthesized_expression "((this_00->table_)._M_h._M_bucket_count & 0x20000000)" ( (binary_expression "(this_00->table_)._M_h._M_bucket_count & 0x20000000" (field_expression "(this_00->table_)._M_h._M_bucket_count" (field_expression "(this_00->table_)._M_h" (parenthesized_expression "(this_00->table_)" ( (field_expression "this_00->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      bVar2 = Symbol::is_common_shndx\n                        (((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx);\n      if (bVar2) {\n        this_00 = *(Symbol_table **)\n                   ((long)pdef.\n                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                          ._M_cur + 0x18);\n        goto LAB_00225b30;\n      }\n      this_00 = *(Symbol_table **)\n                 ((long)pdef.\n                        super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                        ._M_cur + 0x18);\n      if ((((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) ||\n         (pOVar4 = (Output_segment *)((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->object,\n         ((sym->super_Symbol).field_0x3a & 7) != 0)) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n      }\n    }" { (ERROR "bVar2 = Symbol::" (assignment_expression "bVar2 = Symbol" identifier = identifier) : :) (expression_statement "is_common_shndx\n                        (((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx);" (call_expression "is_common_shndx\n                        (((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx)" identifier (argument_list "(((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx)" ( (field_expression "((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx" (parenthesized_expression "((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)" ( (cast_expression "(anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_" ( (type_descriptor "anon_union_4_3_b582a2bd_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_00->output_count_" & (field_expression "this_00->output_count_" identifier -> field_identifier))) )) -> field_identifier) ))) ;) (if_statement "if (bVar2) {\n        this_00 = *(Symbol_table **)\n                   ((long)pdef.\n                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                          ._M_cur + 0x18);\n        goto LAB_00225b30;\n      }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n        this_00 = *(Symbol_table **)\n                   ((long)pdef.\n                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                          ._M_cur + 0x18);\n        goto LAB_00225b30;\n      }" { (expression_statement "this_00 = *(Symbol_table **)\n                   ((long)pdef.\n                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                          ._M_cur + 0x18);" (assignment_expression "this_00 = *(Symbol_table **)\n                   ((long)pdef.\n                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                          ._M_cur + 0x18)" identifier = (pointer_expression "*(Symbol_table **)\n                   ((long)pdef.\n                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                          ._M_cur + 0x18)" * (cast_expression "(Symbol_table **)\n                   ((long)pdef.\n                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                          ._M_cur + 0x18)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)pdef.\n                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                          ._M_cur + 0x18)" ( (ERROR "(long)pdef.\n                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                          ." (comma_expression "(long)pdef.\n                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "(long)pdef.\n                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int" (binary_expression "(long)pdef.\n                          super__Node_iterator_base<std::pair<const_std" (binary_expression "(long)pdef.\n                          super__Node_iterator_base<std" (cast_expression "(long)pdef.\n                          super__Node_iterator_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pdef.\n                          super__Node_iterator_base" identifier . field_identifier)) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : identifier * > , identifier > .) (binary_expression "_M_cur + 0x18" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00225b30;" goto statement_identifier ;) })) (expression_statement "this_00 = *(Symbol_table **)\n                 ((long)pdef.\n                        super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                        ._M_cur + 0x18);" (assignment_expression "this_00 = *(Symbol_table **)\n                 ((long)pdef.\n                        super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                        ._M_cur + 0x18)" identifier = (pointer_expression "*(Symbol_table **)\n                 ((long)pdef.\n                        super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                        ._M_cur + 0x18)" * (cast_expression "(Symbol_table **)\n                 ((long)pdef.\n                        super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                        ._M_cur + 0x18)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)pdef.\n                        super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                        ._M_cur + 0x18)" ( (ERROR "(long)pdef.\n                        super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                        ." (comma_expression "(long)pdef.\n                        super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "(long)pdef.\n                        super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int" (binary_expression "(long)pdef.\n                        super__Node_iterator_base<std::pair<const_std" (binary_expression "(long)pdef.\n                        super__Node_iterator_base<std" (cast_expression "(long)pdef.\n                        super__Node_iterator_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pdef.\n                        super__Node_iterator_base" identifier . field_identifier)) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : identifier * > , identifier > .) (binary_expression "_M_cur + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) ||\n         (pOVar4 = (Output_segment *)((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->object,\n         ((sym->super_Symbol).field_0x3a & 7) != 0)) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n      }" if (parenthesized_expression "((((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) ||\n         (pOVar4 = (Output_segment *)((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->object,\n         ((sym->super_Symbol).field_0x3a & 7) != 0))" ( (binary_expression "(((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0) ||\n         (pOVar4 = (Output_segment *)((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->object,\n         ((sym->super_Symbol).field_0x3a & 7) != 0)" (parenthesized_expression "(((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0)" ( (binary_expression "((this_00->table_)._M_h._M_bucket_count & 0x70000) != 0" (parenthesized_expression "((this_00->table_)._M_h._M_bucket_count & 0x70000)" ( (binary_expression "(this_00->table_)._M_h._M_bucket_count & 0x70000" (field_expression "(this_00->table_)._M_h._M_bucket_count" (field_expression "(this_00->table_)._M_h" (parenthesized_expression "(this_00->table_)" ( (field_expression "this_00->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(pOVar4 = (Output_segment *)((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->object,\n         ((sym->super_Symbol).field_0x3a & 7) != 0)" ( (comma_expression "pOVar4 = (Output_segment *)((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->object,\n         ((sym->super_Symbol).field_0x3a & 7) != 0" (assignment_expression "pOVar4 = (Output_segment *)((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->object" identifier = (cast_expression "(Output_segment *)((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->object" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)->object" (parenthesized_expression "((anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_)" ( (cast_expression "(anon_union_8_3_b0f6f408_for_u1_ *)&this_00->offset_" ( (type_descriptor "anon_union_8_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_00->offset_" & (field_expression "this_00->offset_" identifier -> field_identifier))) )) -> field_identifier))) , (binary_expression "((sym->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((sym->super_Symbol).field_0x3a & 7)" ( (binary_expression "(sym->super_Symbol).field_0x3a & 7" (field_expression "(sym->super_Symbol).field_0x3a" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->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.h",0xa1,"object");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xa1,"object");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;) })) }) (else_clause "else if (((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx == 0)\n    goto LAB_00225b30;" else (if_statement "if (((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx == 0)\n    goto LAB_00225b30;" if (parenthesized_expression "(((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx == 0)" ( (binary_expression "((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx == 0" (field_expression "((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)->shndx" (parenthesized_expression "((anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_)" ( (cast_expression "(anon_union_4_3_b582a2bd_for_u2_ *)&this_00->output_count_" ( (type_descriptor "anon_union_4_3_b582a2bd_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_00->output_count_" & (field_expression "this_00->output_count_" identifier -> field_identifier))) )) -> field_identifier) == number_literal) )) (goto_statement "goto LAB_00225b30;" goto statement_identifier ;)))) (if_statement "if ((Output_segment *)(sym->super_Symbol).u1_.object != pOVar4) {\n      return;\n    }" if (parenthesized_expression "((Output_segment *)(sym->super_Symbol).u1_.object != pOVar4)" ( (binary_expression "(Output_segment *)(sym->super_Symbol).u1_.object != pOVar4" (cast_expression "(Output_segment *)(sym->super_Symbol).u1_.object" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(sym->super_Symbol).u1_.object" (field_expression "(sym->super_Symbol).u1_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) != identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })) (labeled_statement "LAB_00225b30:\n  pSVar3 = get_sized_symbol<32>(this_00,&pSVar3->super_Symbol);" statement_identifier : (expression_statement "pSVar3 = get_sized_symbol<32>(this_00,&pSVar3->super_Symbol);" (assignment_expression "pSVar3 = get_sized_symbol<32>(this_00,&pSVar3->super_Symbol)" identifier = (binary_expression "get_sized_symbol<32>(this_00,&pSVar3->super_Symbol)" (binary_expression "get_sized_symbol<32" identifier < number_literal) > (parenthesized_expression "(this_00,&pSVar3->super_Symbol)" ( (comma_expression "this_00,&pSVar3->super_Symbol" identifier , (pointer_expression "&pSVar3->super_Symbol" & (field_expression "pSVar3->super_Symbol" identifier -> field_identifier))) )))) ;)) (expression_statement "buf._4_8_ = *(undefined8 *)&pSVar3->value_;" (assignment_expression "buf._4_8_ = *(undefined8 *)&pSVar3->value_" (field_expression "buf._4_8_" identifier . field_identifier) = (pointer_expression "*(undefined8 *)&pSVar3->value_" * (cast_expression "(undefined8 *)&pSVar3->value_" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar3->value_" & (field_expression "pSVar3->value_" identifier -> field_identifier))))) ;) (expression_statement "buf[0xc] = (pSVar3->super_Symbol).field_0x38;" (assignment_expression "buf[0xc] = (pSVar3->super_Symbol).field_0x38" (subscript_expression "buf[0xc]" identifier [ number_literal ]) = (field_expression "(pSVar3->super_Symbol).field_0x38" (parenthesized_expression "(pSVar3->super_Symbol)" ( (field_expression "pSVar3->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "buf[0xd] = (pSVar3->super_Symbol).field_0x39;" (assignment_expression "buf[0xd] = (pSVar3->super_Symbol).field_0x39" (subscript_expression "buf[0xd]" identifier [ number_literal ]) = (field_expression "(pSVar3->super_Symbol).field_0x39" (parenthesized_expression "(pSVar3->super_Symbol)" ( (field_expression "pSVar3->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((pSVar3->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n  }" if (parenthesized_expression "(((pSVar3->super_Symbol).field_0x3a & 7) != 0)" ( (binary_expression "((pSVar3->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((pSVar3->super_Symbol).field_0x3a & 7)" ( (binary_expression "(pSVar3->super_Symbol).field_0x3a & 7" (field_expression "(pSVar3->super_Symbol).field_0x3a" (parenthesized_expression "(pSVar3->super_Symbol)" ( (field_expression "pSVar3->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.h",0xaa,"shndx");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;) })) (expression_statement "local_40.p_ = (Sym_data<32> *)buf;" (assignment_expression "local_40.p_ = (Sym_data<32> *)buf" (field_expression "local_40.p_" identifier . field_identifier) = (parenthesized_expression "(Sym_data<32> *)buf" ( (binary_expression "Sym_data<32> *)buf" (binary_expression "Sym_data<32" identifier < number_literal) > (pointer_expression "*)buf" * (ERROR ")" )) identifier)) ))) ;) (expression_statement "st_shndx = (pSVar3->super_Symbol).u2_.shndx;" (assignment_expression "st_shndx = (pSVar3->super_Symbol).u2_.shndx" identifier = (field_expression "(pSVar3->super_Symbol).u2_.shndx" (field_expression "(pSVar3->super_Symbol).u2_" (parenthesized_expression "(pSVar3->super_Symbol)" ( (field_expression "pSVar3->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "resolve<32,_false>(this,sym,&local_40,st_shndx,\n                     (bool)((byte)(pSVar3->super_Symbol).field_0x3b >> 5 & 1),st_shndx,\n                     (pSVar3->super_Symbol).u1_.object,(pSVar3->super_Symbol).version_,true);" (update_expression "resolve<32,_false>(this,sym,&local_40,st_shndx,\n                     (bool)((byte)(pSVar3->super_Symbol).field_0x3b >> 5 & 1),st_shndx,\n                     (pSVar3->super_Symbol).u1_.object,(pSVar3->super_Symbol).version_,true)" (binary_expression "resolve<32,_false>(this,sym,&local_40,st_shndx,\n                     (bool)((byte)(pSVar3->super_Symbol).field_0x3b >> 5 & 1),st_shndx,\n                     (pSVar3->super_Symbol).u1_.object,(pSVar3->super_Symbol).version_,true)" (binary_expression "resolve<32" identifier < number_literal) (ERROR ",_false" , identifier) > (parenthesized_expression "(this,sym,&local_40,st_shndx,\n                     (bool)((byte)(pSVar3->super_Symbol).field_0x3b >> 5 & 1),st_shndx,\n                     (pSVar3->super_Symbol).u1_.object,(pSVar3->super_Symbol).version_,true)" ( (comma_expression "this,sym,&local_40,st_shndx,\n                     (bool)((byte)(pSVar3->super_Symbol).field_0x3b >> 5 & 1),st_shndx,\n                     (pSVar3->super_Symbol).u1_.object,(pSVar3->super_Symbol).version_,true" identifier , (comma_expression "sym,&local_40,st_shndx,\n                     (bool)((byte)(pSVar3->super_Symbol).field_0x3b >> 5 & 1),st_shndx,\n                     (pSVar3->super_Symbol).u1_.object,(pSVar3->super_Symbol).version_,true" identifier , (comma_expression "&local_40,st_shndx,\n                     (bool)((byte)(pSVar3->super_Symbol).field_0x3b >> 5 & 1),st_shndx,\n                     (pSVar3->super_Symbol).u1_.object,(pSVar3->super_Symbol).version_,true" (pointer_expression "&local_40" & identifier) , (comma_expression "st_shndx,\n                     (bool)((byte)(pSVar3->super_Symbol).field_0x3b >> 5 & 1),st_shndx,\n                     (pSVar3->super_Symbol).u1_.object,(pSVar3->super_Symbol).version_,true" identifier , (comma_expression "(bool)((byte)(pSVar3->super_Symbol).field_0x3b >> 5 & 1),st_shndx,\n                     (pSVar3->super_Symbol).u1_.object,(pSVar3->super_Symbol).version_,true" (cast_expression "(bool)((byte)(pSVar3->super_Symbol).field_0x3b >> 5 & 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "((byte)(pSVar3->super_Symbol).field_0x3b >> 5 & 1)" ( (binary_expression "(byte)(pSVar3->super_Symbol).field_0x3b >> 5 & 1" (binary_expression "(byte)(pSVar3->super_Symbol).field_0x3b >> 5" (field_expression "(byte)(pSVar3->super_Symbol).field_0x3b" (call_expression "(byte)(pSVar3->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pSVar3->super_Symbol)" ( (field_expression "pSVar3->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal) & number_literal) ))) , (comma_expression "st_shndx,\n                     (pSVar3->super_Symbol).u1_.object,(pSVar3->super_Symbol).version_,true" identifier , (comma_expression "(pSVar3->super_Symbol).u1_.object,(pSVar3->super_Symbol).version_,true" (field_expression "(pSVar3->super_Symbol).u1_.object" (field_expression "(pSVar3->super_Symbol).u1_" (parenthesized_expression "(pSVar3->super_Symbol)" ( (field_expression "pSVar3->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) , (comma_expression "(pSVar3->super_Symbol).version_,true" (field_expression "(pSVar3->super_Symbol).version_" (parenthesized_expression "(pSVar3->super_Symbol)" ( (field_expression "pSVar3->super_Symbol" identifier -> field_identifier) )) . field_identifier) , true)))))))) ))) --) ;) (if_statement "if ((char)(pSVar3->super_Symbol).field_0x3a < '\0') {\n    puVar1 = &(sym->super_Symbol).field_0x3a;\n    *puVar1 = *puVar1 | 0x80;\n  }" if (parenthesized_expression "((char)(pSVar3->super_Symbol).field_0x3a < '\0')" ( (binary_expression "(char)(pSVar3->super_Symbol).field_0x3a < '\0'" (cast_expression "(char)(pSVar3->super_Symbol).field_0x3a" ( (type_descriptor "char" primitive_type) ) (field_expression "(pSVar3->super_Symbol).field_0x3a" (parenthesized_expression "(pSVar3->super_Symbol)" ( (field_expression "pSVar3->super_Symbol" identifier -> field_identifier) )) . field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar1 = &(sym->super_Symbol).field_0x3a;\n    *puVar1 = *puVar1 | 0x80;\n  }" { (expression_statement "puVar1 = &(sym->super_Symbol).field_0x3a;" (assignment_expression "puVar1 = &(sym->super_Symbol).field_0x3a" identifier = (pointer_expression "&(sym->super_Symbol).field_0x3a" & (field_expression "(sym->super_Symbol).field_0x3a" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 0x80;" (assignment_expression "*puVar1 = *puVar1 | 0x80" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 0x80" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) })) (if_statement "if (((pSVar3->super_Symbol).field_0x3b & 1) != 0) {\n    puVar1 = &(sym->super_Symbol).field_0x3b;\n    *puVar1 = *puVar1 | 1;\n  }" if (parenthesized_expression "(((pSVar3->super_Symbol).field_0x3b & 1) != 0)" ( (binary_expression "((pSVar3->super_Symbol).field_0x3b & 1) != 0" (parenthesized_expression "((pSVar3->super_Symbol).field_0x3b & 1)" ( (binary_expression "(pSVar3->super_Symbol).field_0x3b & 1" (field_expression "(pSVar3->super_Symbol).field_0x3b" (parenthesized_expression "(pSVar3->super_Symbol)" ( (field_expression "pSVar3->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    puVar1 = &(sym->super_Symbol).field_0x3b;\n    *puVar1 = *puVar1 | 1;\n  }" { (expression_statement "puVar1 = &(sym->super_Symbol).field_0x3b;" (assignment_expression "puVar1 = &(sym->super_Symbol).field_0x3b" identifier = (pointer_expression "&(sym->super_Symbol).field_0x3b" & (field_expression "(sym->super_Symbol).field_0x3b" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 1;" (assignment_expression "*puVar1 = *puVar1 | 1" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 1" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) })) (if_statement "if (parameters->options_ != (General_options *)0x0) {\n    if ((((parameters->options_->gc_sections_).value != false) &&\n        (((sym->super_Symbol).field_0x3b & 1) != 0)) &&\n       ((((sym->super_Symbol).field_0x3a & 7) == 0 &&\n        (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0)))) {\n      gc_mark_symbol(this,&sym->super_Symbol);\n    }\n    make_forwarder(this,*(Symbol **)\n                         ((long)pdef.\n                                super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                                ._M_cur + 0x18),&sym->super_Symbol);\n    *(Sized_symbol<32> **)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18) = sym;\n    puVar1 = &(sym->super_Symbol).field_0x3a;\n    *puVar1 = *puVar1 | 8;\n    return;\n  }" if (parenthesized_expression "(parameters->options_ != (General_options *)0x0)" ( (binary_expression "parameters->options_ != (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) != (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((((parameters->options_->gc_sections_).value != false) &&\n        (((sym->super_Symbol).field_0x3b & 1) != 0)) &&\n       ((((sym->super_Symbol).field_0x3a & 7) == 0 &&\n        (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0)))) {\n      gc_mark_symbol(this,&sym->super_Symbol);\n    }\n    make_forwarder(this,*(Symbol **)\n                         ((long)pdef.\n                                super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                                ._M_cur + 0x18),&sym->super_Symbol);\n    *(Sized_symbol<32> **)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18) = sym;\n    puVar1 = &(sym->super_Symbol).field_0x3a;\n    *puVar1 = *puVar1 | 8;\n    return;\n  }" { (if_statement "if ((((parameters->options_->gc_sections_).value != false) &&\n        (((sym->super_Symbol).field_0x3b & 1) != 0)) &&\n       ((((sym->super_Symbol).field_0x3a & 7) == 0 &&\n        (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0)))) {\n      gc_mark_symbol(this,&sym->super_Symbol);\n    }" if (parenthesized_expression "((((parameters->options_->gc_sections_).value != false) &&\n        (((sym->super_Symbol).field_0x3b & 1) != 0)) &&\n       ((((sym->super_Symbol).field_0x3a & 7) == 0 &&\n        (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0))))" ( (binary_expression "(((parameters->options_->gc_sections_).value != false) &&\n        (((sym->super_Symbol).field_0x3b & 1) != 0)) &&\n       ((((sym->super_Symbol).field_0x3a & 7) == 0 &&\n        (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0)))" (parenthesized_expression "(((parameters->options_->gc_sections_).value != false) &&\n        (((sym->super_Symbol).field_0x3b & 1) != 0))" ( (binary_expression "((parameters->options_->gc_sections_).value != false) &&\n        (((sym->super_Symbol).field_0x3b & 1) != 0)" (parenthesized_expression "((parameters->options_->gc_sections_).value != false)" ( (binary_expression "(parameters->options_->gc_sections_).value != false" (field_expression "(parameters->options_->gc_sections_).value" (parenthesized_expression "(parameters->options_->gc_sections_)" ( (field_expression "parameters->options_->gc_sections_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) && (parenthesized_expression "(((sym->super_Symbol).field_0x3b & 1) != 0)" ( (binary_expression "((sym->super_Symbol).field_0x3b & 1) != 0" (parenthesized_expression "((sym->super_Symbol).field_0x3b & 1)" ( (binary_expression "(sym->super_Symbol).field_0x3b & 1" (field_expression "(sym->super_Symbol).field_0x3b" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((((sym->super_Symbol).field_0x3a & 7) == 0 &&\n        (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0)))" ( (parenthesized_expression "(((sym->super_Symbol).field_0x3a & 7) == 0 &&\n        (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0))" ( (binary_expression "((sym->super_Symbol).field_0x3a & 7) == 0 &&\n        (((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0)" (binary_expression "((sym->super_Symbol).field_0x3a & 7) == 0" (parenthesized_expression "((sym->super_Symbol).field_0x3a & 7)" ( (binary_expression "(sym->super_Symbol).field_0x3a & 7" (field_expression "(sym->super_Symbol).field_0x3a" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) && (parenthesized_expression "(((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0)" ( (binary_expression "((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000) == 0" (parenthesized_expression "((ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000)" ( (binary_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish & 0x100000000" (field_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish" (field_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold::Output_data*,_std" (binary_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base<gold" (field_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                 super__Vector_base" (subscript_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_[2]" (field_expression "(ulong)((sym->super_Symbol).u1_.output_segment)->output_lists_" (call_expression "(ulong)((sym->super_Symbol).u1_.output_segment)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((sym->super_Symbol).u1_.output_segment)" ( (field_expression "(sym->super_Symbol).u1_.output_segment" (field_expression "(sym->super_Symbol).u1_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) -> field_identifier) [ number_literal ]) . field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n      gc_mark_symbol(this,&sym->super_Symbol);\n    }" { (expression_statement "gc_mark_symbol(this,&sym->super_Symbol);" (call_expression "gc_mark_symbol(this,&sym->super_Symbol)" identifier (argument_list "(this,&sym->super_Symbol)" ( identifier , (pointer_expression "&sym->super_Symbol" & (field_expression "sym->super_Symbol" identifier -> field_identifier)) ))) ;) })) (expression_statement "make_forwarder(this,*(Symbol **)\n                         ((long)pdef.\n                                super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                                ._M_cur + 0x18),&sym->super_Symbol);" (call_expression "make_forwarder(this,*(Symbol **)\n                         ((long)pdef.\n                                super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                                ._M_cur + 0x18),&sym->super_Symbol)" identifier (argument_list "(this,*(Symbol **)\n                         ((long)pdef.\n                                super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                                ._M_cur + 0x18),&sym->super_Symbol)" ( identifier , (pointer_expression "*(Symbol **)\n                         ((long)pdef.\n                                super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                                ._M_cur + 0x18)" * (cast_expression "(Symbol **)\n                         ((long)pdef.\n                                super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                                ._M_cur + 0x18)" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)pdef.\n                                super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                                ._M_cur + 0x18)" ( (ERROR "(long)pdef.\n                                super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n                                ." (comma_expression "(long)pdef.\n                                super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "(long)pdef.\n                                super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int" (binary_expression "(long)pdef.\n                                super__Node_iterator_base<std::pair<const_std" (binary_expression "(long)pdef.\n                                super__Node_iterator_base<std" (cast_expression "(long)pdef.\n                                super__Node_iterator_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pdef.\n                                super__Node_iterator_base" identifier . field_identifier)) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : identifier * > , identifier > .) (binary_expression "_M_cur + 0x18" identifier + number_literal) )))) , (pointer_expression "&sym->super_Symbol" & (field_expression "sym->super_Symbol" identifier -> field_identifier)) ))) ;) (expression_statement "*(Sized_symbol<32> **)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18) = sym;" (pointer_expression "*(Sized_symbol<32> **)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18) = sym" * (parenthesized_expression "(Sized_symbol<32> **)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18) = sym" ( (binary_expression "Sized_symbol<32> **)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18) = sym" (binary_expression "Sized_symbol<32" identifier < number_literal) > (assignment_expression "**)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18) = sym" (pointer_expression "**)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18)" * (pointer_expression "*)\n     ((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18)" * (ERROR ")" )) (parenthesized_expression "((long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ._M_cur + 0x18)" ( (ERROR "(long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n            ." (comma_expression "(long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "(long)pdef.\n            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int" (binary_expression "(long)pdef.\n            super__Node_iterator_base<std::pair<const_std" (binary_expression "(long)pdef.\n            super__Node_iterator_base<std" (cast_expression "(long)pdef.\n            super__Node_iterator_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pdef.\n            super__Node_iterator_base" identifier . field_identifier)) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : identifier * > , identifier > .) (binary_expression "_M_cur + 0x18" identifier + number_literal) )))) = identifier)) ))) ;) (expression_statement "puVar1 = &(sym->super_Symbol).field_0x3a;" (assignment_expression "puVar1 = &(sym->super_Symbol).field_0x3a" identifier = (pointer_expression "&(sym->super_Symbol).field_0x3a" & (field_expression "(sym->super_Symbol).field_0x3a" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" 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)) ;) (return_statement "return;" return ;) })) comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) (ERROR "}" }))
(translation_unit "void FUN_00225a60(undefined8 param_1,long param_2,char param_3,long param_4)\n\n{\n  char cVar1;\n  long lVar2;\n  long lVar3;\n  undefined1 *local_40;\n  undefined1 local_38 [4];\n  undefined8 local_34;\n  undefined1 local_2c;\n  undefined1 local_2b;\n  \n  if (param_3 != '\0') {\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }\n  lVar2 = *(long *)(param_4 + 0x18);\n  if (lVar2 == param_2) {\n    return;\n  }\n  if (*(long *)(lVar2 + 8) != 0) {\n    if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");\n  }\n  if ((*(byte *)(param_2 + 0x39) & 3) == 0) {\n    if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;\nLAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;\n    lVar3 = *(long *)(lVar2 + 0x10);\n  }\n  else {\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }\n  if ((((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)) {\n    if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;\n    if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }\n  }\nLAB_00225b30:\n  lVar2 = FUN_0021e500(lVar2);\n  local_34 = *(undefined8 *)(lVar2 + 0x40);\n  local_2c = *(undefined1 *)(lVar2 + 0x38);\n  local_2b = *(undefined1 *)(lVar2 + 0x39);\n  if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n                    \n    FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");\n  }\n  local_40 = local_38;\n  FUN_0025c820(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1);\n  if (*(char *)(lVar2 + 0x3a) < '\0') {\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;\n  }\n  if ((*(byte *)(lVar2 + 0x3b) & 1) != 0) {\n    *(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;\n  }\n  if (*(long *)(PTR_DAT_003be6b0 + 0x10) != 0) {\n    if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }\n    FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }\n                    \n  FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n}\n\n" (function_definition "void FUN_00225a60(undefined8 param_1,long param_2,char param_3,long param_4)\n\n{\n  char cVar1;\n  long lVar2;\n  long lVar3;\n  undefined1 *local_40;\n  undefined1 local_38 [4];\n  undefined8 local_34;\n  undefined1 local_2c;\n  undefined1 local_2b;\n  \n  if (param_3 != '\0') {\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }\n  lVar2 = *(long *)(param_4 + 0x18);\n  if (lVar2 == param_2) {\n    return;\n  }\n  if (*(long *)(lVar2 + 8) != 0) {\n    if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");\n  }\n  if ((*(byte *)(param_2 + 0x39) & 3) == 0) {\n    if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;\nLAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;\n    lVar3 = *(long *)(lVar2 + 0x10);\n  }\n  else {\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }\n  if ((((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)) {\n    if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;\n    if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }\n  }\nLAB_00225b30:\n  lVar2 = FUN_0021e500(lVar2);\n  local_34 = *(undefined8 *)(lVar2 + 0x40);\n  local_2c = *(undefined1 *)(lVar2 + 0x38);\n  local_2b = *(undefined1 *)(lVar2 + 0x39);\n  if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n                    \n    FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");\n  }\n  local_40 = local_38;\n  FUN_0025c820(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1);\n  if (*(char *)(lVar2 + 0x3a) < '\0') {\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;\n  }\n  if ((*(byte *)(lVar2 + 0x3b) & 1) != 0) {\n    *(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;\n  }\n  if (*(long *)(PTR_DAT_003be6b0 + 0x10) != 0) {\n    if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }\n    FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }\n                    \n  FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n}" primitive_type (function_declarator "FUN_00225a60(undefined8 param_1,long param_2,char param_3,long param_4)" identifier (parameter_list "(undefined8 param_1,long param_2,char param_3,long param_4)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char param_3" primitive_type identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  char cVar1;\n  long lVar2;\n  long lVar3;\n  undefined1 *local_40;\n  undefined1 local_38 [4];\n  undefined8 local_34;\n  undefined1 local_2c;\n  undefined1 local_2b;\n  \n  if (param_3 != '\0') {\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }\n  lVar2 = *(long *)(param_4 + 0x18);\n  if (lVar2 == param_2) {\n    return;\n  }\n  if (*(long *)(lVar2 + 8) != 0) {\n    if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");\n  }\n  if ((*(byte *)(param_2 + 0x39) & 3) == 0) {\n    if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;\nLAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;\n    lVar3 = *(long *)(lVar2 + 0x10);\n  }\n  else {\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }\n  if ((((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)) {\n    if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;\n    if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }\n  }\nLAB_00225b30:\n  lVar2 = FUN_0021e500(lVar2);\n  local_34 = *(undefined8 *)(lVar2 + 0x40);\n  local_2c = *(undefined1 *)(lVar2 + 0x38);\n  local_2b = *(undefined1 *)(lVar2 + 0x39);\n  if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n                    \n    FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");\n  }\n  local_40 = local_38;\n  FUN_0025c820(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1);\n  if (*(char *)(lVar2 + 0x3a) < '\0') {\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;\n  }\n  if ((*(byte *)(lVar2 + 0x3b) & 1) != 0) {\n    *(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;\n  }\n  if (*(long *)(PTR_DAT_003be6b0 + 0x10) != 0) {\n    if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }\n    FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }\n                    \n  FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined1 local_38 [4];" type_identifier (array_declarator "local_38 [4]" identifier [ number_literal ]) ;) (declaration "undefined8 local_34;" type_identifier identifier ;) (declaration "undefined1 local_2c;" type_identifier identifier ;) (declaration "undefined1 local_2b;" type_identifier identifier ;) (if_statement "if (param_3 != '\0') {\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }" if (parenthesized_expression "(param_3 != '\0')" ( (binary_expression "param_3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }" { (expression_statement "*(long *)(param_4 + 0x18) = param_2;" (assignment_expression "*(long *)(param_4 + 0x18) = param_2" (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;" (assignment_expression "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_2 + 0x3a) | 8" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) | number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "lVar2 = *(long *)(param_4 + 0x18);" (assignment_expression "lVar2 = *(long *)(param_4 + 0x18)" identifier = (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (lVar2 == param_2) {\n    return;\n  }" if (parenthesized_expression "(lVar2 == param_2)" ( (binary_expression "lVar2 == param_2" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (*(long *)(lVar2 + 8) != 0) {\n    if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");\n  }" if (parenthesized_expression "(*(long *)(lVar2 + 8) != 0)" ( (binary_expression "*(long *)(lVar2 + 8) != 0" (pointer_expression "*(long *)(lVar2 + 8)" * (cast_expression "(long *)(lVar2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 8)" ( (binary_expression "lVar2 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");\n  }" { (if_statement "if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }" if (parenthesized_expression "(*(long *)(lVar2 + 8) != *(long *)(param_2 + 8))" ( (binary_expression "*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)" (pointer_expression "*(long *)(lVar2 + 8)" * (cast_expression "(long *)(lVar2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 8)" ( (binary_expression "lVar2 + 8" identifier + number_literal) )))) != (pointer_expression "*(long *)(param_2 + 8)" * (cast_expression "(long *)(param_2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");" (call_expression "FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version")" identifier (argument_list "("../../gold/symtab.cc",0x36d,"define_default_version")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_default_version"" " string_content ") ))) ;) })) (if_statement "if ((*(byte *)(param_2 + 0x39) & 3) == 0) {\n    if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;\nLAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;\n    lVar3 = *(long *)(lVar2 + 0x10);\n  }\n  else {\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }" if (parenthesized_expression "((*(byte *)(param_2 + 0x39) & 3) == 0)" ( (binary_expression "(*(byte *)(param_2 + 0x39) & 3) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x39) & 3)" ( (binary_expression "*(byte *)(param_2 + 0x39) & 3" (pointer_expression "*(byte *)(param_2 + 0x39)" * (cast_expression "(byte *)(param_2 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x39)" ( (binary_expression "param_2 + 0x39" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;\nLAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;\n    lVar3 = *(long *)(lVar2 + 0x10);\n  }" { (if_statement "if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;" if (parenthesized_expression "(((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))" ( (binary_expression "((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)" (parenthesized_expression "((*(byte *)(lVar2 + 0x39) & 3) != 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x39) & 3) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x39) & 3)" ( (binary_expression "*(byte *)(lVar2 + 0x39) & 3" (pointer_expression "*(byte *)(lVar2 + 0x39)" * (cast_expression "(byte *)(lVar2 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x39)" ( (binary_expression "lVar2 + 0x39" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00225c2a;" goto statement_identifier ;)) (labeled_statement "LAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;" statement_identifier : (if_statement "if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;" if (parenthesized_expression "((*(byte *)(lVar2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar2 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar2 + 0x3a)" * (cast_expression "(byte *)(lVar2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x3a)" ( (binary_expression "lVar2 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00225b30;" goto statement_identifier ;))) (expression_statement "lVar3 = *(long *)(lVar2 + 0x10);" (assignment_expression "lVar3 = *(long *)(lVar2 + 0x10)" identifier = (pointer_expression "*(long *)(lVar2 + 0x10)" * (cast_expression "(long *)(lVar2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x10)" ( (binary_expression "lVar2 + 0x10" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }" else (compound_statement "{\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }" { (if_statement "if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }" if (parenthesized_expression "((*(byte *)(lVar2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar2 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar2 + 0x3a)" * (cast_expression "(byte *)(lVar2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x3a)" ( (binary_expression "lVar2 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }" { (if_statement "if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;" if (parenthesized_expression "(((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))" ( (binary_expression "((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0)" (parenthesized_expression "((*(byte *)(lVar2 + 0x39) & 3) == 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x39) & 3) == 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x39) & 3)" ( (binary_expression "*(byte *)(lVar2 + 0x39) & 3" (pointer_expression "*(byte *)(lVar2 + 0x39)" * (cast_expression "(byte *)(lVar2 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x39)" ( (binary_expression "lVar2 + 0x39" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00225b30;" goto statement_identifier ;)) (labeled_statement "LAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }" statement_identifier : (if_statement "if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }" if (parenthesized_expression "((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)" ( (binary_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1)" ( (binary_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1" (pointer_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" * (cast_expression "(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_2 + 0x10) + 0x3c)" ( (binary_expression "*(long *)(param_2 + 0x10) + 0x3c" (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) }))) (goto_statement "goto LAB_00225af2;" goto statement_identifier ;) })) (expression_statement "lVar3 = *(long *)(lVar2 + 0x10);" (assignment_expression "lVar3 = *(long *)(lVar2 + 0x10)" identifier = (pointer_expression "*(long *)(lVar2 + 0x10)" * (cast_expression "(long *)(lVar2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x10)" ( (binary_expression "lVar2 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }" if (parenthesized_expression "((*(byte *)(lVar3 + 0x3c) & 1) != 0)" ( (binary_expression "(*(byte *)(lVar3 + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar3 + 0x3c) & 1)" ( (binary_expression "*(byte *)(lVar3 + 0x3c) & 1" (pointer_expression "*(byte *)(lVar3 + 0x3c)" * (cast_expression "(byte *)(lVar3 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x3c)" ( (binary_expression "lVar3 + 0x3c" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;" if (parenthesized_expression "((*(byte *)(lVar2 + 0x39) & 3) == 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x39) & 3) == 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x39) & 3)" ( (binary_expression "*(byte *)(lVar2 + 0x39) & 3" (pointer_expression "*(byte *)(lVar2 + 0x39)" * (cast_expression "(byte *)(lVar2 + 0x39)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x39)" ( (binary_expression "lVar2 + 0x39" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00225b30;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;" if (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00225c2a;" goto statement_identifier ;)) }))) (if_statement "if ((((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)) {\n    if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;\n    if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }\n  }" if (parenthesized_expression "((((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0))" ( (binary_expression "(((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)" (parenthesized_expression "(((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))" ( (binary_expression "((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)" (parenthesized_expression "((*(byte *)(lVar3 + 0x3c) & 1) != 0)" ( (binary_expression "(*(byte *)(lVar3 + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar3 + 0x3c) & 1)" ( (binary_expression "*(byte *)(lVar3 + 0x3c) & 1" (pointer_expression "*(byte *)(lVar3 + 0x3c)" * (cast_expression "(byte *)(lVar3 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x3c)" ( (binary_expression "lVar3 + 0x3c" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) == 0)" ( (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)" ( (binary_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1)" ( (binary_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1" (pointer_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" * (cast_expression "(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_2 + 0x10) + 0x3c)" ( (binary_expression "*(long *)(param_2 + 0x10) + 0x3c" (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;\n    if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }\n  }" { (if_statement "if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;" if (parenthesized_expression "((*(byte *)(lVar2 + 0x3b) & 0x20) == 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)(lVar2 + 0x3b) & 0x20" (pointer_expression "*(byte *)(lVar2 + 0x3b)" * (cast_expression "(byte *)(lVar2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x3b)" ( (binary_expression "lVar2 + 0x3b" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }" { (expression_statement "cVar1 = FUN_0021e870();" (assignment_expression "cVar1 = FUN_0021e870()" identifier = (call_expression "FUN_0021e870()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }" { (expression_statement "lVar2 = *(long *)(param_4 + 0x18);" (assignment_expression "lVar2 = *(long *)(param_4 + 0x18)" identifier = (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00225b30;" goto statement_identifier ;) })) (expression_statement "lVar2 = *(long *)(param_4 + 0x18);" (assignment_expression "lVar2 = *(long *)(param_4 + 0x18)" identifier = (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }" if (parenthesized_expression "(((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0))" ( (binary_expression "((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)" (parenthesized_expression "((*(byte *)(lVar2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar2 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar2 + 0x3a)" * (cast_expression "(byte *)(lVar2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x3a)" ( (binary_expression "lVar2 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)" ( (comma_expression "lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0" (assignment_expression "lVar3 = *(long *)(lVar2 + 0x10)" identifier = (pointer_expression "*(long *)(lVar2 + 0x10)" * (cast_expression "(long *)(lVar2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x10)" ( (binary_expression "lVar2 + 0x10" identifier + number_literal) ))))) , (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }" { (expression_statement "FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_0016cdf0("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;) })) }) (else_clause "else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;" else (if_statement "if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;" if (parenthesized_expression "(*(int *)(lVar2 + 0x18) == 0)" ( (binary_expression "*(int *)(lVar2 + 0x18) == 0" (pointer_expression "*(int *)(lVar2 + 0x18)" * (cast_expression "(int *)(lVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00225b30;" goto statement_identifier ;)))) (if_statement "if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }" if (parenthesized_expression "(*(long *)(param_2 + 0x10) != lVar3)" ( (binary_expression "*(long *)(param_2 + 0x10) != lVar3" (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })) (labeled_statement "LAB_00225b30:\n  lVar2 = FUN_0021e500(lVar2);" statement_identifier : (expression_statement "lVar2 = FUN_0021e500(lVar2);" (assignment_expression "lVar2 = FUN_0021e500(lVar2)" identifier = (call_expression "FUN_0021e500(lVar2)" identifier (argument_list "(lVar2)" ( identifier )))) ;)) (expression_statement "local_34 = *(undefined8 *)(lVar2 + 0x40);" (assignment_expression "local_34 = *(undefined8 *)(lVar2 + 0x40)" identifier = (pointer_expression "*(undefined8 *)(lVar2 + 0x40)" * (cast_expression "(undefined8 *)(lVar2 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x40)" ( (binary_expression "lVar2 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(undefined1 *)(lVar2 + 0x38);" (assignment_expression "local_2c = *(undefined1 *)(lVar2 + 0x38)" identifier = (pointer_expression "*(undefined1 *)(lVar2 + 0x38)" * (cast_expression "(undefined1 *)(lVar2 + 0x38)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x38)" ( (binary_expression "lVar2 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "local_2b = *(undefined1 *)(lVar2 + 0x39);" (assignment_expression "local_2b = *(undefined1 *)(lVar2 + 0x39)" identifier = (pointer_expression "*(undefined1 *)(lVar2 + 0x39)" * (cast_expression "(undefined1 *)(lVar2 + 0x39)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x39)" ( (binary_expression "lVar2 + 0x39" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n                    \n    FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");\n  }" if (parenthesized_expression "((*(byte *)(lVar2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar2 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar2 + 0x3a)" * (cast_expression "(byte *)(lVar2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x3a)" ( (binary_expression "lVar2 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");\n  }" { (expression_statement "FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;) })) (expression_statement "local_40 = local_38;" (assignment_expression "local_40 = local_38" identifier = identifier) ;) (expression_statement "FUN_0025c820(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1);" (call_expression "FUN_0025c820(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1)" identifier (argument_list "(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1)" ( identifier , identifier , (pointer_expression "&local_40" & identifier) , (pointer_expression "*(undefined4 *)(lVar2 + 0x18)" * (cast_expression "(undefined4 *)(lVar2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) )))) , (binary_expression "*(byte *)(lVar2 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)(lVar2 + 0x3b) >> 5" (pointer_expression "*(byte *)(lVar2 + 0x3b)" * (cast_expression "(byte *)(lVar2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x3b)" ( (binary_expression "lVar2 + 0x3b" identifier + number_literal) )))) >> number_literal) & number_literal) , (pointer_expression "*(undefined4 *)(lVar2 + 0x18)" * (cast_expression "(undefined4 *)(lVar2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(lVar2 + 0x10)" * (cast_expression "(undefined8 *)(lVar2 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x10)" ( (binary_expression "lVar2 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(lVar2 + 8)" * (cast_expression "(undefined8 *)(lVar2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 8)" ( (binary_expression "lVar2 + 8" identifier + number_literal) )))) , number_literal ))) ;) (if_statement "if (*(char *)(lVar2 + 0x3a) < '\0') {\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;\n  }" if (parenthesized_expression "(*(char *)(lVar2 + 0x3a) < '\0')" ( (binary_expression "*(char *)(lVar2 + 0x3a) < '\0'" (pointer_expression "*(char *)(lVar2 + 0x3a)" * (cast_expression "(char *)(lVar2 + 0x3a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x3a)" ( (binary_expression "lVar2 + 0x3a" identifier + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;\n  }" { (expression_statement "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;" (assignment_expression "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_2 + 0x3a) | 0x80" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if ((*(byte *)(lVar2 + 0x3b) & 1) != 0) {\n    *(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;\n  }" if (parenthesized_expression "((*(byte *)(lVar2 + 0x3b) & 1) != 0)" ( (binary_expression "(*(byte *)(lVar2 + 0x3b) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3b) & 1)" ( (binary_expression "*(byte *)(lVar2 + 0x3b) & 1" (pointer_expression "*(byte *)(lVar2 + 0x3b)" * (cast_expression "(byte *)(lVar2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x3b)" ( (binary_expression "lVar2 + 0x3b" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    *(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;\n  }" { (expression_statement "*(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;" (assignment_expression "*(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1" (pointer_expression "*(byte *)(param_2 + 0x3b)" * (cast_expression "(byte *)(param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3b)" ( (binary_expression "param_2 + 0x3b" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_2 + 0x3b) | 1" (pointer_expression "*(byte *)(param_2 + 0x3b)" * (cast_expression "(byte *)(param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3b)" ( (binary_expression "param_2 + 0x3b" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x10) != 0) {\n    if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }\n    FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x10)" ( (binary_expression "PTR_DAT_003be6b0 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }\n    FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }" { (if_statement "if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }" if (parenthesized_expression "(((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0))))" ( (binary_expression "((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))" (parenthesized_expression "((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0))" ( (binary_expression "(*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)" (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809)" * (cast_expression "(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x10)" ( (binary_expression "PTR_DAT_003be6b0 + 0x10" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((*(byte *)(param_2 + 0x3b) & 1) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x3b) & 1) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3b) & 1)" ( (binary_expression "*(byte *)(param_2 + 0x3b) & 1" (pointer_expression "*(byte *)(param_2 + 0x3b)" * (cast_expression "(byte *)(param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3b)" ( (binary_expression "param_2 + 0x3b" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))" ( (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0))" ( (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)" (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) & number_literal) )) == number_literal) && (parenthesized_expression "((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)" ( (binary_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1)" ( (binary_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1" (pointer_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" * (cast_expression "(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_2 + 0x10) + 0x3c)" ( (binary_expression "*(long *)(param_2 + 0x10) + 0x3c" (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n      FUN_0021f580(param_1,param_2);\n    }" { (expression_statement "FUN_0021f580(param_1,param_2);" (call_expression "FUN_0021f580(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) })) (expression_statement "FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);" (call_expression "FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2)" identifier (argument_list "(param_1,*(undefined8 *)(param_4 + 0x18),param_2)" ( identifier , (pointer_expression "*(undefined8 *)(param_4 + 0x18)" * (cast_expression "(undefined8 *)(param_4 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "*(long *)(param_4 + 0x18) = param_2;" (assignment_expression "*(long *)(param_4 + 0x18) = param_2" (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;" (assignment_expression "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_2 + 0x3a) | 8" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) | number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0016cdf0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) && (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) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (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 IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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) )) || (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) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (return_statement return ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 { (return_statement return ;) })) (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) )) (goto_statement goto statement_identifier ;)) (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) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) )) && (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) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (return_statement return ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) && (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) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_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) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "void FUN_00225a60(undefined8 param_1,long param_2,char param_3,long param_4)\n\n{\n  char cVar1;\n  long lVar2;\n  long lVar3;\n  undefined1 *local_40;\n  undefined1 local_38 [4];\n  undefined8 local_34;\n  undefined1 local_2c;\n  undefined1 local_2b;\n  \n  if (param_3 != '\0') {\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }\n  lVar2 = *(long *)(param_4 + 0x18);\n  if (lVar2 == param_2) {\n    return;\n  }\n  if (*(long *)(lVar2 + 8) != 0) {\n    if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");\n  }\n  if ((*(byte *)(param_2 + 0x39) & 3) == 0) {\n    if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;\nLAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;\n    lVar3 = *(long *)(lVar2 + 0x10);\n  }\n  else {\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }\n  if ((((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)) {\n    if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;\n    if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }\n  }\nLAB_00225b30:\n  lVar2 = FUN_0021e500(lVar2);\n  local_34 = *(undefined8 *)(lVar2 + 0x40);\n  local_2c = *(undefined1 *)(lVar2 + 0x38);\n  local_2b = *(undefined1 *)(lVar2 + 0x39);\n  if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n                    \n    FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");\n  }\n  local_40 = local_38;\n  FUN_0025c820(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1);\n  if (*(char *)(lVar2 + 0x3a) < '\0') {\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;\n  }\n  if ((*(byte *)(lVar2 + 0x3b) & 1) != 0) {\n    *(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;\n  }\n  if (*(long *)(PTR_DAT_003be6b0 + 0x10) != 0) {\n    if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }\n    FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }\n                    \n  FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n}" (primitive_type "void") (function_declarator "FUN_00225a60(undefined8 param_1,long param_2,char param_3,long param_4)" (identifier "FUN_00225a60") (parameter_list "(undefined8 param_1,long param_2,char param_3,long param_4)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "char param_3" (primitive_type "char") (identifier "param_3")) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) () ")"))) (compound_statement "{\n  char cVar1;\n  long lVar2;\n  long lVar3;\n  undefined1 *local_40;\n  undefined1 local_38 [4];\n  undefined8 local_34;\n  undefined1 local_2c;\n  undefined1 local_2b;\n  \n  if (param_3 != '\0') {\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }\n  lVar2 = *(long *)(param_4 + 0x18);\n  if (lVar2 == param_2) {\n    return;\n  }\n  if (*(long *)(lVar2 + 8) != 0) {\n    if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");\n  }\n  if ((*(byte *)(param_2 + 0x39) & 3) == 0) {\n    if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;\nLAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;\n    lVar3 = *(long *)(lVar2 + 0x10);\n  }\n  else {\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }\n  if ((((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)) {\n    if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;\n    if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }\n  }\nLAB_00225b30:\n  lVar2 = FUN_0021e500(lVar2);\n  local_34 = *(undefined8 *)(lVar2 + 0x40);\n  local_2c = *(undefined1 *)(lVar2 + 0x38);\n  local_2b = *(undefined1 *)(lVar2 + 0x39);\n  if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n                    \n    FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");\n  }\n  local_40 = local_38;\n  FUN_0025c820(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1);\n  if (*(char *)(lVar2 + 0x3a) < '\0') {\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;\n  }\n  if ((*(byte *)(lVar2 + 0x3b) & 1) != 0) {\n    *(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;\n  }\n  if (*(long *)(PTR_DAT_003be6b0 + 0x10) != 0) {\n    if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }\n    FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }\n                    \n  FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "undefined1 *local_40;" (type_identifier "undefined1") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "undefined1 local_38 [4];" (type_identifier "undefined1") (array_declarator "local_38 [4]" (identifier "local_38") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined8 local_34;" (type_identifier "undefined8") (identifier "local_34") (; ";")) (declaration "undefined1 local_2c;" (type_identifier "undefined1") (identifier "local_2c") (; ";")) (declaration "undefined1 local_2b;" (type_identifier "undefined1") (identifier "local_2b") (; ";")) (if_statement "if (param_3 != '\0') {\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }" (if "if") (parenthesized_expression "(param_3 != '\0')" (( "(") (binary_expression "param_3 != '\0'" (identifier "param_3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }" ({ "{") (expression_statement "*(long *)(param_4 + 0x18) = param_2;" (assignment_expression "*(long *)(param_4 + 0x18) = param_2" (pointer_expression "*(long *)(param_4 + 0x18)" (* "*") (cast_expression "(long *)(param_4 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;" (assignment_expression "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8" (pointer_expression "*(byte *)(param_2 + 0x3a)" (* "*") (cast_expression "(byte *)(param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3a)" (( "(") (binary_expression "param_2 + 0x3a" (identifier "param_2") (+ "+") (number_literal "0x3a")) () ")")))) (= "=") (binary_expression "*(byte *)(param_2 + 0x3a) | 8" (pointer_expression "*(byte *)(param_2 + 0x3a)" (* "*") (cast_expression "(byte *)(param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3a)" (( "(") (binary_expression "param_2 + 0x3a" (identifier "param_2") (+ "+") (number_literal "0x3a")) () ")")))) (| "|") (number_literal "8"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "lVar2 = *(long *)(param_4 + 0x18);" (assignment_expression "lVar2 = *(long *)(param_4 + 0x18)" (identifier "lVar2") (= "=") (pointer_expression "*(long *)(param_4 + 0x18)" (* "*") (cast_expression "(long *)(param_4 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (lVar2 == param_2) {\n    return;\n  }" (if "if") (parenthesized_expression "(lVar2 == param_2)" (( "(") (binary_expression "lVar2 == param_2" (identifier "lVar2") (== "==") (identifier "param_2")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(long *)(lVar2 + 8) != 0) {\n    if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");\n  }" (if "if") (parenthesized_expression "(*(long *)(lVar2 + 8) != 0)" (( "(") (binary_expression "*(long *)(lVar2 + 8) != 0" (pointer_expression "*(long *)(lVar2 + 8)" (* "*") (cast_expression "(long *)(lVar2 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 8)" (( "(") (binary_expression "lVar2 + 8" (identifier "lVar2") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }\n                    \n    FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");\n  }" ({ "{") (if_statement "if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {\n      return;\n    }" (if "if") (parenthesized_expression "(*(long *)(lVar2 + 8) != *(long *)(param_2 + 8))" (( "(") (binary_expression "*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)" (pointer_expression "*(long *)(lVar2 + 8)" (* "*") (cast_expression "(long *)(lVar2 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 8)" (( "(") (binary_expression "lVar2 + 8" (identifier "lVar2") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (pointer_expression "*(long *)(param_2 + 8)" (* "*") (cast_expression "(long *)(param_2 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");" (call_expression "FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/symtab.cc",0x36d,"define_default_version")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0x36d") (, ",") (string_literal ""define_default_version"" (" """) (string_content "define_default_version") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)(param_2 + 0x39) & 3) == 0) {\n    if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;\nLAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;\n    lVar3 = *(long *)(lVar2 + 0x10);\n  }\n  else {\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 0x39) & 3) == 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x39) & 3) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x39) & 3)" (( "(") (binary_expression "*(byte *)(param_2 + 0x39) & 3" (pointer_expression "*(byte *)(param_2 + 0x39)" (* "*") (cast_expression "(byte *)(param_2 + 0x39)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x39)" (( "(") (binary_expression "param_2 + 0x39" (identifier "param_2") (+ "+") (number_literal "0x39")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;\nLAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;\n    lVar3 = *(long *)(lVar2 + 0x10);\n  }" ({ "{") (if_statement "if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))\n    goto LAB_00225c2a;" (if "if") (parenthesized_expression "(((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))" (( "(") (binary_expression "((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)" (parenthesized_expression "((*(byte *)(lVar2 + 0x39) & 3) != 0)" (( "(") (binary_expression "(*(byte *)(lVar2 + 0x39) & 3) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x39) & 3)" (( "(") (binary_expression "*(byte *)(lVar2 + 0x39) & 3" (pointer_expression "*(byte *)(lVar2 + 0x39)" (* "*") (cast_expression "(byte *)(lVar2 + 0x39)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x39)" (( "(") (binary_expression "lVar2 + 0x39" (identifier "lVar2") (+ "+") (number_literal "0x39")) () ")")))) (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" (* "*") (cast_expression "(byte *)(param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3a)" (( "(") (binary_expression "param_2 + 0x3a" (identifier "param_2") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00225c2a;" (goto "goto") (statement_identifier "LAB_00225c2a") (; ";"))) (labeled_statement "LAB_00225af2:\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;" (statement_identifier "LAB_00225af2") (: ":") (if_statement "if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;" (if "if") (parenthesized_expression "((*(byte *)(lVar2 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)(lVar2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(lVar2 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar2 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x3a)" (( "(") (binary_expression "lVar2 + 0x3a" (identifier "lVar2") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00225b30;" (goto "goto") (statement_identifier "LAB_00225b30") (; ";")))) (expression_statement "lVar3 = *(long *)(lVar2 + 0x10);" (assignment_expression "lVar3 = *(long *)(lVar2 + 0x10)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(lVar2 + 0x10)" (* "*") (cast_expression "(long *)(lVar2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x10)" (( "(") (binary_expression "lVar2 + 0x10" (identifier "lVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }" (else "else") (compound_statement "{\n    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }\n    lVar3 = *(long *)(lVar2 + 0x10);\n    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }\n    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;\n    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;\n  }" ({ "{") (if_statement "if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }" (if "if") (parenthesized_expression "((*(byte *)(lVar2 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)(lVar2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(lVar2 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar2 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x3a)" (( "(") (binary_expression "lVar2 + 0x3a" (identifier "lVar2") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;\nLAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }\n      goto LAB_00225af2;\n    }" ({ "{") (if_statement "if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))\n      goto LAB_00225b30;" (if "if") (parenthesized_expression "(((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))" (( "(") (binary_expression "((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0)" (parenthesized_expression "((*(byte *)(lVar2 + 0x39) & 3) == 0)" (( "(") (binary_expression "(*(byte *)(lVar2 + 0x39) & 3) == 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x39) & 3)" (( "(") (binary_expression "*(byte *)(lVar2 + 0x39) & 3" (pointer_expression "*(byte *)(lVar2 + 0x39)" (* "*") (cast_expression "(byte *)(lVar2 + 0x39)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x39)" (( "(") (binary_expression "lVar2 + 0x39" (identifier "lVar2") (+ "+") (number_literal "0x39")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" (* "*") (cast_expression "(byte *)(param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3a)" (( "(") (binary_expression "param_2 + 0x3a" (identifier "param_2") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00225b30;" (goto "goto") (statement_identifier "LAB_00225b30") (; ";"))) (labeled_statement "LAB_00225c2a:\n      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }" (statement_identifier "LAB_00225c2a") (: ":") (if_statement "if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {\n        return;\n      }" (if "if") (parenthesized_expression "((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1" (pointer_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" (* "*") (cast_expression "(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_2 + 0x10) + 0x3c)" (( "(") (binary_expression "*(long *)(param_2 + 0x10) + 0x3c" (pointer_expression "*(long *)(param_2 + 0x10)" (* "*") (cast_expression "(long *)(param_2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (goto_statement "goto LAB_00225af2;" (goto "goto") (statement_identifier "LAB_00225af2") (; ";")) (} "}"))) (expression_statement "lVar3 = *(long *)(lVar2 + 0x10);" (assignment_expression "lVar3 = *(long *)(lVar2 + 0x10)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(lVar2 + 0x10)" (* "*") (cast_expression "(long *)(lVar2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x10)" (( "(") (binary_expression "lVar2 + 0x10" (identifier "lVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {\n      return;\n    }" (if "if") (parenthesized_expression "((*(byte *)(lVar3 + 0x3c) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(lVar3 + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar3 + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)(lVar3 + 0x3c) & 1" (pointer_expression "*(byte *)(lVar3 + 0x3c)" (* "*") (cast_expression "(byte *)(lVar3 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x3c)" (( "(") (binary_expression "lVar3 + 0x3c" (identifier "lVar3") (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;" (if "if") (parenthesized_expression "((*(byte *)(lVar2 + 0x39) & 3) == 0)" (( "(") (binary_expression "(*(byte *)(lVar2 + 0x39) & 3) == 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x39) & 3)" (( "(") (binary_expression "*(byte *)(lVar2 + 0x39) & 3" (pointer_expression "*(byte *)(lVar2 + 0x39)" (* "*") (cast_expression "(byte *)(lVar2 + 0x39)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x39)" (( "(") (binary_expression "lVar2 + 0x39" (identifier "lVar2") (+ "+") (number_literal "0x39")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00225b30;" (goto "goto") (statement_identifier "LAB_00225b30") (; ";"))) (if_statement "if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" (* "*") (cast_expression "(byte *)(param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3a)" (( "(") (binary_expression "param_2 + 0x3a" (identifier "param_2") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00225c2a;" (goto "goto") (statement_identifier "LAB_00225c2a") (; ";"))) (} "}")))) (if_statement "if ((((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)) {\n    if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;\n    if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }\n  }" (if "if") (parenthesized_expression "((((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0))" (( "(") (binary_expression "(((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&\n     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)" (parenthesized_expression "(((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))" (( "(") (binary_expression "((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)" (parenthesized_expression "((*(byte *)(lVar3 + 0x3c) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(lVar3 + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar3 + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)(lVar3 + 0x3c) & 1" (pointer_expression "*(byte *)(lVar3 + 0x3c)" (* "*") (cast_expression "(byte *)(lVar3 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x3c)" (( "(") (binary_expression "lVar3 + 0x3c" (identifier "lVar3") (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" (* "*") (cast_expression "(byte *)(param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3a)" (( "(") (binary_expression "param_2 + 0x3a" (identifier "param_2") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1" (pointer_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" (* "*") (cast_expression "(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_2 + 0x10) + 0x3c)" (( "(") (binary_expression "*(long *)(param_2 + 0x10) + 0x3c" (pointer_expression "*(long *)(param_2 + 0x10)" (* "*") (cast_expression "(long *)(param_2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;\n    if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }\n  }" ({ "{") (if_statement "if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;" (if "if") (parenthesized_expression "((*(byte *)(lVar2 + 0x3b) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)(lVar2 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3b) & 0x20)" (( "(") (binary_expression "*(byte *)(lVar2 + 0x3b) & 0x20" (pointer_expression "*(byte *)(lVar2 + 0x3b)" (* "*") (cast_expression "(byte *)(lVar2 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x3b)" (( "(") (binary_expression "lVar2 + 0x3b" (identifier "lVar2") (+ "+") (number_literal "0x3b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      cVar1 = FUN_0021e870();\n      if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }\n      lVar2 = *(long *)(param_4 + 0x18);\n      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }\n    }" ({ "{") (expression_statement "cVar1 = FUN_0021e870();" (assignment_expression "cVar1 = FUN_0021e870()" (identifier "cVar1") (= "=") (call_expression "FUN_0021e870()" (identifier "FUN_0021e870") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar1 != '\0') {\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }" (if "if") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        lVar2 = *(long *)(param_4 + 0x18);\n        goto LAB_00225b30;\n      }" ({ "{") (expression_statement "lVar2 = *(long *)(param_4 + 0x18);" (assignment_expression "lVar2 = *(long *)(param_4 + 0x18)" (identifier "lVar2") (= "=") (pointer_expression "*(long *)(param_4 + 0x18)" (* "*") (cast_expression "(long *)(param_4 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (goto_statement "goto LAB_00225b30;" (goto "goto") (statement_identifier "LAB_00225b30") (; ";")) (} "}"))) (expression_statement "lVar2 = *(long *)(param_4 + 0x18);" (assignment_expression "lVar2 = *(long *)(param_4 + 0x18)" (identifier "lVar2") (= "=") (pointer_expression "*(long *)(param_4 + 0x18)" (* "*") (cast_expression "(long *)(param_4 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }" (if "if") (parenthesized_expression "(((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0))" (( "(") (binary_expression "((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||\n         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)" (parenthesized_expression "((*(byte *)(lVar2 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)(lVar2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(lVar2 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar2 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x3a)" (( "(") (binary_expression "lVar2 + 0x3a" (identifier "lVar2") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)" (( "(") (comma_expression "lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0" (assignment_expression "lVar3 = *(long *)(lVar2 + 0x10)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(lVar2 + 0x10)" (* "*") (cast_expression "(long *)(lVar2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x10)" (( "(") (binary_expression "lVar2 + 0x10" (identifier "lVar2") (+ "+") (number_literal "0x10")) () ")"))))) (, ",") (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" (* "*") (cast_expression "(byte *)(param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3a)" (( "(") (binary_expression "param_2 + 0x3a" (identifier "param_2") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                    \n        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");\n      }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_0016cdf0("../../gold/symtab.h",0xa1,"object")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/symtab.h",0xa1,"object")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xa1") (, ",") (string_literal ""object"" (" """) (string_content "object") (" """)) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;" (else "else") (if_statement "if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;" (if "if") (parenthesized_expression "(*(int *)(lVar2 + 0x18) == 0)" (( "(") (binary_expression "*(int *)(lVar2 + 0x18) == 0" (pointer_expression "*(int *)(lVar2 + 0x18)" (* "*") (cast_expression "(int *)(lVar2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x18)" (( "(") (binary_expression "lVar2 + 0x18" (identifier "lVar2") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00225b30;" (goto "goto") (statement_identifier "LAB_00225b30") (; ";"))))) (if_statement "if (*(long *)(param_2 + 0x10) != lVar3) {\n      return;\n    }" (if "if") (parenthesized_expression "(*(long *)(param_2 + 0x10) != lVar3)" (( "(") (binary_expression "*(long *)(param_2 + 0x10) != lVar3" (pointer_expression "*(long *)(param_2 + 0x10)" (* "*") (cast_expression "(long *)(param_2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (identifier "lVar3")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00225b30:\n  lVar2 = FUN_0021e500(lVar2);" (statement_identifier "LAB_00225b30") (: ":") (expression_statement "lVar2 = FUN_0021e500(lVar2);" (assignment_expression "lVar2 = FUN_0021e500(lVar2)" (identifier "lVar2") (= "=") (call_expression "FUN_0021e500(lVar2)" (identifier "FUN_0021e500") (argument_list "(lVar2)" (( "(") (identifier "lVar2") () ")")))) (; ";"))) (expression_statement "local_34 = *(undefined8 *)(lVar2 + 0x40);" (assignment_expression "local_34 = *(undefined8 *)(lVar2 + 0x40)" (identifier "local_34") (= "=") (pointer_expression "*(undefined8 *)(lVar2 + 0x40)" (* "*") (cast_expression "(undefined8 *)(lVar2 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x40)" (( "(") (binary_expression "lVar2 + 0x40" (identifier "lVar2") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "local_2c = *(undefined1 *)(lVar2 + 0x38);" (assignment_expression "local_2c = *(undefined1 *)(lVar2 + 0x38)" (identifier "local_2c") (= "=") (pointer_expression "*(undefined1 *)(lVar2 + 0x38)" (* "*") (cast_expression "(undefined1 *)(lVar2 + 0x38)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x38)" (( "(") (binary_expression "lVar2 + 0x38" (identifier "lVar2") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "local_2b = *(undefined1 *)(lVar2 + 0x39);" (assignment_expression "local_2b = *(undefined1 *)(lVar2 + 0x39)" (identifier "local_2b") (= "=") (pointer_expression "*(undefined1 *)(lVar2 + 0x39)" (* "*") (cast_expression "(undefined1 *)(lVar2 + 0x39)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x39)" (( "(") (binary_expression "lVar2 + 0x39" (identifier "lVar2") (+ "+") (number_literal "0x39")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {\n                    \n    FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");\n  }" (if "if") (parenthesized_expression "((*(byte *)(lVar2 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)(lVar2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(lVar2 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar2 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x3a)" (( "(") (binary_expression "lVar2 + 0x3a" (identifier "lVar2") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/symtab.h",0xaa,"shndx")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xaa") (, ",") (string_literal ""shndx"" (" """) (string_content "shndx") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "local_40 = local_38;" (assignment_expression "local_40 = local_38" (identifier "local_40") (= "=") (identifier "local_38")) (; ";")) (expression_statement "FUN_0025c820(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1);" (call_expression "FUN_0025c820(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1)" (identifier "FUN_0025c820") (argument_list "(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),\n               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),\n               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (pointer_expression "*(undefined4 *)(lVar2 + 0x18)" (* "*") (cast_expression "(undefined4 *)(lVar2 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x18)" (( "(") (binary_expression "lVar2 + 0x18" (identifier "lVar2") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (binary_expression "*(byte *)(lVar2 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)(lVar2 + 0x3b) >> 5" (pointer_expression "*(byte *)(lVar2 + 0x3b)" (* "*") (cast_expression "(byte *)(lVar2 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x3b)" (( "(") (binary_expression "lVar2 + 0x3b" (identifier "lVar2") (+ "+") (number_literal "0x3b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1")) (, ",") (pointer_expression "*(undefined4 *)(lVar2 + 0x18)" (* "*") (cast_expression "(undefined4 *)(lVar2 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x18)" (( "(") (binary_expression "lVar2 + 0x18" (identifier "lVar2") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(lVar2 + 0x10)" (* "*") (cast_expression "(undefined8 *)(lVar2 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x10)" (( "(") (binary_expression "lVar2 + 0x10" (identifier "lVar2") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(lVar2 + 8)" (* "*") (cast_expression "(undefined8 *)(lVar2 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 8)" (( "(") (binary_expression "lVar2 + 8" (identifier "lVar2") (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "1") () ")"))) (; ";")) (if_statement "if (*(char *)(lVar2 + 0x3a) < '\0') {\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;\n  }" (if "if") (parenthesized_expression "(*(char *)(lVar2 + 0x3a) < '\0')" (( "(") (binary_expression "*(char *)(lVar2 + 0x3a) < '\0'" (pointer_expression "*(char *)(lVar2 + 0x3a)" (* "*") (cast_expression "(char *)(lVar2 + 0x3a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x3a)" (( "(") (binary_expression "lVar2 + 0x3a" (identifier "lVar2") (+ "+") (number_literal "0x3a")) () ")")))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;\n  }" ({ "{") (expression_statement "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;" (assignment_expression "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80" (pointer_expression "*(byte *)(param_2 + 0x3a)" (* "*") (cast_expression "(byte *)(param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3a)" (( "(") (binary_expression "param_2 + 0x3a" (identifier "param_2") (+ "+") (number_literal "0x3a")) () ")")))) (= "=") (binary_expression "*(byte *)(param_2 + 0x3a) | 0x80" (pointer_expression "*(byte *)(param_2 + 0x3a)" (* "*") (cast_expression "(byte *)(param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3a)" (( "(") (binary_expression "param_2 + 0x3a" (identifier "param_2") (+ "+") (number_literal "0x3a")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)(lVar2 + 0x3b) & 1) != 0) {\n    *(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;\n  }" (if "if") (parenthesized_expression "((*(byte *)(lVar2 + 0x3b) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(lVar2 + 0x3b) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar2 + 0x3b) & 1)" (( "(") (binary_expression "*(byte *)(lVar2 + 0x3b) & 1" (pointer_expression "*(byte *)(lVar2 + 0x3b)" (* "*") (cast_expression "(byte *)(lVar2 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x3b)" (( "(") (binary_expression "lVar2 + 0x3b" (identifier "lVar2") (+ "+") (number_literal "0x3b")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;\n  }" ({ "{") (expression_statement "*(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;" (assignment_expression "*(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1" (pointer_expression "*(byte *)(param_2 + 0x3b)" (* "*") (cast_expression "(byte *)(param_2 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3b)" (( "(") (binary_expression "param_2 + 0x3b" (identifier "param_2") (+ "+") (number_literal "0x3b")) () ")")))) (= "=") (binary_expression "*(byte *)(param_2 + 0x3b) | 1" (pointer_expression "*(byte *)(param_2 + 0x3b)" (* "*") (cast_expression "(byte *)(param_2 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3b)" (( "(") (binary_expression "param_2 + 0x3b" (identifier "param_2") (+ "+") (number_literal "0x3b")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x10) != 0) {\n    if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }\n    FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x10) != 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003be6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003be6b0 + 0x10" (identifier "PTR_DAT_003be6b0") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }\n    FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);\n    *(long *)(param_4 + 0x18) = param_2;\n    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;\n    return;\n  }" ({ "{") (if_statement "if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {\n      FUN_0021f580(param_1,param_2);\n    }" (if "if") (parenthesized_expression "(((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0))))" (( "(") (binary_expression "((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&\n       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))" (parenthesized_expression "((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0))" (( "(") (binary_expression "(*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&\n        ((*(byte *)(param_2 + 0x3b) & 1) != 0)" (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809)" (( "(") (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003be6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003be6b0 + 0x10" (identifier "PTR_DAT_003be6b0") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x2809")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(param_2 + 0x3b) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x3b) & 1) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3b) & 1)" (( "(") (binary_expression "*(byte *)(param_2 + 0x3b) & 1" (pointer_expression "*(byte *)(param_2 + 0x3b)" (* "*") (cast_expression "(byte *)(param_2 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3b)" (( "(") (binary_expression "param_2 + 0x3b" (identifier "param_2") (+ "+") (number_literal "0x3b")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))" (( "(") (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0))" (( "(") (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) == 0 &&\n        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)" (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" (* "*") (cast_expression "(byte *)(param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3a)" (( "(") (binary_expression "param_2 + 0x3a" (identifier "param_2") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1" (pointer_expression "*(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" (* "*") (cast_expression "(byte *)(*(long *)(param_2 + 0x10) + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_2 + 0x10) + 0x3c)" (( "(") (binary_expression "*(long *)(param_2 + 0x10) + 0x3c" (pointer_expression "*(long *)(param_2 + 0x10)" (* "*") (cast_expression "(long *)(param_2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      FUN_0021f580(param_1,param_2);\n    }" ({ "{") (expression_statement "FUN_0021f580(param_1,param_2);" (call_expression "FUN_0021f580(param_1,param_2)" (identifier "FUN_0021f580") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);" (call_expression "FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2)" (identifier "FUN_00220810") (argument_list "(param_1,*(undefined8 *)(param_4 + 0x18),param_2)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(undefined8 *)(param_4 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_4 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "*(long *)(param_4 + 0x18) = param_2;" (assignment_expression "*(long *)(param_4 + 0x18) = param_2" (pointer_expression "*(long *)(param_4 + 0x18)" (* "*") (cast_expression "(long *)(param_4 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;" (assignment_expression "*(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8" (pointer_expression "*(byte *)(param_2 + 0x3a)" (* "*") (cast_expression "(byte *)(param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3a)" (( "(") (binary_expression "param_2 + 0x3a" (identifier "param_2") (+ "+") (number_literal "0x3a")) () ")")))) (= "=") (binary_expression "*(byte *)(param_2 + 0x3a) | 8" (pointer_expression "*(byte *)(param_2 + 0x3a)" (* "*") (cast_expression "(byte *)(param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3a)" (( "(") (binary_expression "param_2 + 0x3a" (identifier "param_2") (+ "+") (number_literal "0x3a")) () ")")))) (| "|") (number_literal "8"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0016cdf0("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: define_default_version<32, false>
   DWARF original prototype: void define_default_version<32,_false>(Symbol_table * this,
   Sized_symbol<32> * sym, bool default_is_new, iterator pdef) */

void __thiscall
var_5::type_2::define_default_version<32,_false>
          (type_2 *this,var_1<32> *sym,bool default_is_new,iterator pdef)

{
  undefined1 *puVar1;
  type_1 st_shndx;
  bool bVar2;
  type_2 *var_3;
  var_1<32> *pSVar3;
  type_3 *var_9;
  Sym<32,_false> local_40;
  type_4 buf [16];
  
  if (default_is_new) {
    *(var_1<32> **)
     ((long)pdef.
            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::type_10*>,_true>
            .var_2 + 0x18) = sym;
    puVar1 = &(sym->super_Symbol).field_0x3a;
    *puVar1 = *puVar1 | 8;
    return;
  }
  var_3 = *(type_2 **)
             ((long)pdef.
                    super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::type_10*>,_true>
                    .var_2 + 0x18);
  if (var_3 == (type_2 *)sym) {
    return;
  }
  if (*(char **)&var_3->first_global_index_ != (char *)0x0) {
    if (*(char **)&var_3->first_global_index_ != (sym->super_Symbol).version_) {
      return;
    }
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/symtab.cc",0x36d,"define_default_version");
  }
  pSVar3 = sym;
  if (((sym->super_Symbol).field_0x39 & 3) == 0) {
    if ((((var_3->table_)._M_h._M_bucket_count & 0x300) != 0) &&
       (((sym->super_Symbol).field_0x3a & 7) == 0)) goto LAB_00225c2a;
LAB_00225af2:
    if (((var_3->table_)._M_h._M_bucket_count & 0x70000) != 0) goto LAB_00225b30;
    var_9 = ((type_5 *)&var_3->offset_)->output_segment;
  }
  else {
    if (((var_3->table_)._M_h._M_bucket_count & 0x70000) != 0) {
      if ((((var_3->table_)._M_h._M_bucket_count & 0x300) == 0) ||
         (((sym->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00225b30;
LAB_00225c2a:
      if (((type_6)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].
                  super__Vector_base<var_5::Output_data*,var_6::allocator<var_5::Output_data*>var_7>.
                  _M_impl._M_finish & 0x100000000) != 0) {
        return;
      }
      goto LAB_00225af2;
    }
    var_9 = ((type_5 *)&var_3->offset_)->output_segment;
    if (((type_6)var_9->output_lists_[2].
                super__Vector_base<var_5::Output_data*,var_6::allocator<var_5::Output_data*>var_7>._M_impl.
                _M_finish & 0x100000000) != 0) {
      return;
    }
    if (((var_3->table_)._M_h._M_bucket_count & 0x300) == 0) goto LAB_00225b30;
    if (((sym->super_Symbol).field_0x3a & 7) == 0) goto LAB_00225c2a;
  }
  if (((((type_6)var_9->output_lists_[2].
                super__Vector_base<var_5::Output_data*,var_6::allocator<var_5::Output_data*>var_7>._M_impl.
                _M_finish & 0x100000000) != 0) && (((sym->super_Symbol).field_0x3a & 7) == 0)) &&
     (((type_6)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].
              super__Vector_base<var_5::Output_data*,var_6::allocator<var_5::Output_data*>var_7>._M_impl.
              _M_finish & 0x100000000) != 0)) {
    if (((var_3->table_)._M_h._M_bucket_count & 0x20000000) == 0) {
      bVar2 = type_10::var_8
                        (((type_7 *)&var_3->output_count_)->shndx);
      if (bVar2) {
        var_3 = *(type_2 **)
                   ((long)pdef.
                          super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::type_10*>,_true>
                          .var_2 + 0x18);
        goto LAB_00225b30;
      }
      var_3 = *(type_2 **)
                 ((long)pdef.
                        super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::type_10*>,_true>
                        .var_2 + 0x18);
      if ((((var_3->table_)._M_h._M_bucket_count & 0x70000) != 0) ||
         (var_9 = (type_3 *)((type_5 *)&var_3->offset_)->object,
         ((sym->super_Symbol).field_0x3a & 7) != 0)) {
                    /* WARNING: Subroutine does not return */
        var_4("../../gold/symtab.h",0xa1,"object");
      }
    }
    else if (((type_7 *)&var_3->output_count_)->shndx == 0)
    goto LAB_00225b30;
    if ((type_3 *)(sym->super_Symbol).u1_.object != var_9) {
      return;
    }
  }
LAB_00225b30:
  pSVar3 = var_10<32>(var_3,&pSVar3->super_Symbol);
  buf._4_8_ = *(type_8 *)&pSVar3->value_;
  buf[0xc] = (pSVar3->super_Symbol).field_0x38;
  buf[0xd] = (pSVar3->super_Symbol).field_0x39;
  if (((pSVar3->super_Symbol).field_0x3a & 7) != 0) {
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/symtab.h",0xaa,"shndx");
  }
  local_40.p_ = (var_11<32> *)buf;
  st_shndx = (pSVar3->super_Symbol).u2_.shndx;
  var_12<32,_false>(this,sym,&local_40,st_shndx,
                     (bool)((byte)(pSVar3->super_Symbol).field_0x3b >> 5 & 1),st_shndx,
                     (pSVar3->super_Symbol).u1_.object,(pSVar3->super_Symbol).version_,true);
  if ((char)(pSVar3->super_Symbol).field_0x3a < '\0') {
    puVar1 = &(sym->super_Symbol).field_0x3a;
    *puVar1 = *puVar1 | 0x80;
  }
  if (((pSVar3->super_Symbol).field_0x3b & 1) != 0) {
    puVar1 = &(sym->super_Symbol).field_0x3b;
    *puVar1 = *puVar1 | 1;
  }
  if (parameters->options_ != (type_9 *)0x0) {
    if ((((parameters->options_->gc_sections_).value != false) &&
        (((sym->super_Symbol).field_0x3b & 1) != 0)) &&
       ((((sym->super_Symbol).field_0x3a & 7) == 0 &&
        (((type_6)((sym->super_Symbol).u1_.output_segment)->output_lists_[2].
                 super__Vector_base<var_5::Output_data*,var_6::allocator<var_5::Output_data*>var_7>._M_impl
                 ._M_finish & 0x100000000) == 0)))) {
      var_13(this,&sym->super_Symbol);
    }
    var_14(this,*(type_10 **)
                         ((long)pdef.
                                super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::type_10*>,_true>
                                .var_2 + 0x18),&sym->super_Symbol);
    *(var_1<32> **)
     ((long)pdef.
            super__Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::type_10*>,_true>
            .var_2 + 0x18) = sym;
    puVar1 = &(sym->super_Symbol).field_0x3a;
    *puVar1 = *puVar1 | 8;
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_4("../../gold/parameters.h",0x5c,"options");
}


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

void MASKED(undefined8 param_1,long param_2,char param_3,long param_4)

{
  char cVar1;
  long lVar2;
  long lVar3;
  undefined1 *local_40;
  undefined1 local_38 [4];
  undefined8 local_34;
  undefined1 local_2c;
  undefined1 local_2b;
  
  if (param_3 != '\0') {
    *(long *)(param_4 + 0x18) = param_2;
    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;
    return;
  }
  lVar2 = *(long *)(param_4 + 0x18);
  if (lVar2 == param_2) {
    return;
  }
  if (*(long *)(lVar2 + 8) != 0) {
    if (*(long *)(lVar2 + 8) != *(long *)(param_2 + 8)) {
      return;
    }
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/symtab.cc",0x36d,"define_default_version");
  }
  if ((*(byte *)(param_2 + 0x39) & 3) == 0) {
    if (((*(byte *)(lVar2 + 0x39) & 3) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0))
    goto LAB_00225c2a;
LAB_00225af2:
    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) goto LAB_00225b30;
    lVar3 = *(long *)(lVar2 + 0x10);
  }
  else {
    if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {
      if (((*(byte *)(lVar2 + 0x39) & 3) == 0) || ((*(byte *)(param_2 + 0x3a) & 7) != 0))
      goto LAB_00225b30;
LAB_00225c2a:
      if ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0) {
        return;
      }
      goto LAB_00225af2;
    }
    lVar3 = *(long *)(lVar2 + 0x10);
    if ((*(byte *)(lVar3 + 0x3c) & 1) != 0) {
      return;
    }
    if ((*(byte *)(lVar2 + 0x39) & 3) == 0) goto LAB_00225b30;
    if ((*(byte *)(param_2 + 0x3a) & 7) == 0) goto LAB_00225c2a;
  }
  if ((((*(byte *)(lVar3 + 0x3c) & 1) != 0) && ((*(byte *)(param_2 + 0x3a) & 7) == 0)) &&
     ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) != 0)) {
    if ((*(byte *)(lVar2 + 0x3b) & 0x20) == 0) {
      cVar1 = FUN_0021e870();
      if (cVar1 != '\0') {
        lVar2 = *(long *)(param_4 + 0x18);
        goto LAB_00225b30;
      }
      lVar2 = *(long *)(param_4 + 0x18);
      if (((*(byte *)(lVar2 + 0x3a) & 7) != 0) ||
         (lVar3 = *(long *)(lVar2 + 0x10), (*(byte *)(param_2 + 0x3a) & 7) != 0)) {
                    /* WARNING: Subroutine does not return */
        FUN_0016cdf0("../../gold/symtab.h",0xa1,"object");
      }
    }
    else if (*(int *)(lVar2 + 0x18) == 0) goto LAB_00225b30;
    if (*(long *)(param_2 + 0x10) != lVar3) {
      return;
    }
  }
LAB_00225b30:
  lVar2 = FUN_0021e500(lVar2);
  local_34 = *(undefined8 *)(lVar2 + 0x40);
  local_2c = *(undefined1 *)(lVar2 + 0x38);
  local_2b = *(undefined1 *)(lVar2 + 0x39);
  if ((*(byte *)(lVar2 + 0x3a) & 7) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/symtab.h",0xaa,"shndx");
  }
  local_40 = local_38;
  FUN_0025c820(param_1,param_2,&local_40,*(undefined4 *)(lVar2 + 0x18),
               *(byte *)(lVar2 + 0x3b) >> 5 & 1,*(undefined4 *)(lVar2 + 0x18),
               *(undefined8 *)(lVar2 + 0x10),*(undefined8 *)(lVar2 + 8),1);
  if (*(char *)(lVar2 + 0x3a) < '\0') {
    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 0x80;
  }
  if ((*(byte *)(lVar2 + 0x3b) & 1) != 0) {
    *(byte *)(param_2 + 0x3b) = *(byte *)(param_2 + 0x3b) | 1;
  }
  if (*(long *)(PTR_DAT_003be6b0 + 0x10) != 0) {
    if (((*(char *)(*(long *)(PTR_DAT_003be6b0 + 0x10) + 0x2809) != '\0') &&
        ((*(byte *)(param_2 + 0x3b) & 1) != 0)) &&
       (((*(byte *)(param_2 + 0x3a) & 7) == 0 &&
        ((*(byte *)(*(long *)(param_2 + 0x10) + 0x3c) & 1) == 0)))) {
      FUN_0021f580(param_1,param_2);
    }
    FUN_00220810(param_1,*(undefined8 *)(param_4 + 0x18),param_2);
    *(long *)(param_4 + 0x18) = param_2;
    *(byte *)(param_2 + 0x3a) = *(byte *)(param_2 + 0x3a) | 8;
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0016cdf0("../../gold/parameters.h",0x5c,"options");
}

