
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x00163917) */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* WARNING: Enum "DT": Some values do not have unique names */

bool gold::Symbol_table::should_override
               (Symbol *to,uint frombits,STT fromtype,Defined defined,Object *object,
               bool *adjust_common_sizes,bool *adjust_dyndef,bool is_default_version)

{
  char cVar1;
  Input_file *this;
  byte bVar2;
  uint uVar3;
  int iVar4;
  char *pcVar5;
  bool bVar6;
  
  *adjust_common_sizes = false;
  *adjust_dyndef = false;
  bVar2 = to->field_0x2a & 7;
  if (bVar2 == 4) {
    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0,true);
  }
  else if (bVar2 == 0) {
    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),
                           (bool)(*(byte *)&((to->u1_).output_segment)->output_lists_[3].
                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                                            ._M_impl._M_end_of_storage & 1),(to->u2_).shndx,
                           (bool)((byte)to->field_0x2b >> 5 & 1));
  }
  else {
    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0xfff1,false);
  }
  if ((((to->field_0x28 & 0xf) == 6) != (fromtype == STT_TLS)) &&
     (((to->field_0x2a & 7) != 0 ||
      (iVar4 = (*((to->u1_).object)->_vptr_Object[5])((to->u1_).object), iVar4 == 0)))) {
    pcVar5 = (char *)gettext("symbol \'%s\' used as both __thread and non-__thread");
    report_resolve_problem(true,pcVar5,to,defined,object);
  }
  switch(frombits + uVar3 * 0x10) {
  case 0:
    if ((to->field_0x2a & 7) == 0) {
      this = ((to->u1_).object)->input_file_;
      if (this == (Input_file *)0x0) goto LAB_00163949;
      bVar6 = Input_file::just_symbols(this);
      if (bVar6) {
        return false;
      }
    }
    if (object != (Object *)0x0) {
      if (object->input_file_ == (Input_file *)0x0) {
LAB_00163949:
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");
      }
      bVar6 = Input_file::just_symbols(object->input_file_);
      if (bVar6) {
        return false;
      }
    }
    if (parameters->options_ == (General_options *)0x0) goto LAB_00163962;
    if ((parameters->options_->muldefs_).value == false) {
      pcVar5 = (char *)gettext("multiple definition of \'%s\'");
      report_resolve_problem(true,pcVar5,to,defined,object);
      return false;
    }
    break;
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:
  case 6:
  case 7:
  case 9:
  case 10:
  case 0xb:
  case 0x11:
  case 0x12:
  case 0x13:
  case 0x14:
  case 0x15:
  case 0x16:
  case 0x17:
  case 0x19:
  case 0x1a:
  case 0x1b:
  case 0x26:
  case 0x27:
  case 0x29:
  case 0x2a:
  case 0x2b:
  case 0x36:
  case 0x37:
  case 0x39:
  case 0x3a:
  case 0x3b:
  case 0x44:
  case 0x45:
  case 0x46:
  case 0x47:
  case 0x55:
  case 0x56:
  case 0x57:
  case 0x65:
  case 0x66:
  case 0x67:
  case 0x76:
  case 0x77:
  case 0x81:
  case 0x82:
  case 0x83:
  case 0x84:
  case 0x85:
  case 0x86:
  case 0x87:
  case 0x89:
  case 0x91:
  case 0x92:
  case 0x93:
  case 0x94:
  case 0x95:
  case 0x96:
  case 0x97:
  case 0x99:
  case 0xa4:
  case 0xa5:
  case 0xa6:
  case 0xa7:
  case 0xa9:
  case 0xb4:
  case 0xb5:
  case 0xb6:
  case 0xb7:
  case 0xb9:
    break;
  case 8:
    if (parameters->options_ != (General_options *)0x0) {
      if ((parameters->options_->warn_common_).value != false) {
        pcVar5 = (char *)gettext("common \'%s\' overridden by previous definition");
        report_resolve_problem(false,pcVar5,to,defined,object);
        return false;
      }
      return false;
    }
    goto LAB_00163962;
  default:
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/resolve.cc",0x379,"should_override");
  case 0x10:
  case 0x18:
  case 0x20:
  case 0x21:
  case 0x28:
  case 0x30:
  case 0x31:
  case 0x38:
  case 0x40:
  case 0x41:
  case 0x42:
  case 0x48:
  case 0x49:
  case 0x4a:
  case 0x4b:
  case 0x50:
  case 0x51:
  case 0x54:
  case 0x58:
  case 0x59:
  case 0x5a:
  case 0x5b:
  case 0x60:
  case 0x61:
  case 0x62:
  case 99:
  case 100:
  case 0x68:
  case 0x69:
  case 0x6a:
  case 0x6b:
  case 0x70:
  case 0x71:
  case 0x72:
  case 0x73:
  case 0x74:
  case 0x75:
  case 0x78:
  case 0x79:
  case 0x7a:
  case 0x7b:
  case 0x98:
    return true;
  case 0x22:
  case 0x32:
    if ((to->field_0x2a & 7) != 0) {
LAB_00163930:
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/symtab.h",0xa1,"object");
    }
    if (((Output_segment *)object == (to->u1_).output_segment) &&
       (bVar6 = to->version_ == (char *)0x0 && is_default_version, bVar6)) {
      return bVar6;
    }
    if (-1 < (char)to->field_0x2a) {
      return false;
    }
    if ((to->field_0x2c & 2) == 0) {
      return false;
    }
    bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].
                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                      _M_impl._M_end_of_storage;
    goto joined_r0x00163817;
  case 0x23:
  case 0x33:
  case 0xa2:
  case 0xa3:
  case 0xb2:
  case 0xb3:
    if (-1 < (char)to->field_0x2a) {
      return false;
    }
    if ((to->field_0x2c & 2) == 0) {
      return false;
    }
    if ((to->field_0x2a & 7) != 0) goto LAB_00163930;
    bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].
                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                      _M_impl._M_end_of_storage;
joined_r0x00163817:
    if ((bVar2 & 0x40) != 0) {
      return (bool)(bVar2 >> 1 & 1 ^ 1);
    }
    break;
  case 0x24:
  case 0x25:
  case 0x34:
  case 0x35:
    *adjust_dyndef = true;
    return false;
  case 0x43:
  case 0x52:
  case 0x53:
    *adjust_dyndef = true;
    return true;
  case 0x80:
  case 0x90:
  case 0xa0:
  case 0xb0:
    if (parameters->options_ != (General_options *)0x0) {
      cVar1 = (parameters->options_->warn_common_).value;
      if ((bool)cVar1 == false) {
        return true;
      }
      pcVar5 = "definition of \'%s\' overriding common";
LAB_001636fb:
      pcVar5 = (char *)gettext(pcVar5);
      report_resolve_problem(false,pcVar5,to,defined,object);
      return (bool)cVar1;
    }
    goto LAB_00163962;
  case 0x88:
  case 0x8a:
  case 0x8b:
  case 0x9a:
  case 0x9b:
  case 0xaa:
  case 0xab:
  case 0xba:
  case 0xbb:
    *adjust_common_sizes = true;
    break;
  case 0xa1:
  case 0xb1:
    if (parameters->options_ != (General_options *)0x0) {
      cVar1 = (parameters->options_->warn_common_).value;
      if ((bool)cVar1 == false) {
        return true;
      }
      pcVar5 = "definition of \'%s\' overriding dynamic common definition";
      goto LAB_001636fb;
    }
LAB_00163962:
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  case 0xa8:
  case 0xb8:
    *adjust_common_sizes = true;
    return true;
  }
  return false;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x00163917) */

uint FUN_00163520(int param_1,int param_2,int param_3,undefined4 param_4,int param_5,
                 undefined1 *param_6,undefined1 *param_7,byte param_8)

{
  byte bVar1;
  char cVar2;
  int iVar3;
  undefined4 uVar4;
  char *pcVar5;
  undefined3 uVar6;
  undefined3 extraout_var;
  undefined3 extraout_var_00;
  undefined8 uVar7;
  
  *param_6 = 0;
  *param_7 = 0;
  bVar1 = *(byte *)(param_1 + 0x2a) & 7;
  if (bVar1 == 4) {
    uVar7 = FUN_001630f0(1);
  }
  else if (bVar1 == 0) {
    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);
  }
  else {
    uVar7 = FUN_001630f0(0);
  }
  uVar6 = (undefined3)((ulonglong)uVar7 >> 0x28);
  if ((((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&
     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||
      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),
      uVar6 = extraout_var, iVar3 == 0)))) {
    uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");
    FUN_00163350(1,uVar4,param_1,param_4,param_5);
    uVar6 = extraout_var_00;
  }
  param_2 = param_2 + (int)uVar7 * 0x10;
  switch(param_2) {
  case 0:
    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {
      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);
      if (iVar3 == 0) goto code_r0x00163949;
      cVar2 = FUN_0005cf90(iVar3);
      if (cVar2 != '\0') {
        return 0;
      }
    }
    if (param_5 != 0) {
      iVar3 = *(int *)(param_5 + 0x1c);
      if (iVar3 == 0) {
code_r0x00163949:
                    /* WARNING: Subroutine does not return */
        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);
      }
      cVar2 = FUN_0005cf90(iVar3);
      if (cVar2 != '\0') {
        return 0;
      }
    }
    iVar3 = *(int *)(DAT_00302378 + 8);
    if (iVar3 == 0) goto code_r0x00163962;
    if (*(char *)(iVar3 + 0x525d) == '\0') {
      uVar4 = gettext("multiple definition of \'%s\'");
      FUN_00163350(1,uVar4,param_1,param_4,param_5);
      return 0;
    }
    break;
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:
  case 6:
  case 7:
  case 9:
  case 10:
  case 0xb:
  case 0x11:
  case 0x12:
  case 0x13:
  case 0x14:
  case 0x15:
  case 0x16:
  case 0x17:
  case 0x19:
  case 0x1a:
  case 0x1b:
  case 0x26:
  case 0x27:
  case 0x29:
  case 0x2a:
  case 0x2b:
  case 0x36:
  case 0x37:
  case 0x39:
  case 0x3a:
  case 0x3b:
  case 0x44:
  case 0x45:
  case 0x46:
  case 0x47:
  case 0x55:
  case 0x56:
  case 0x57:
  case 0x65:
  case 0x66:
  case 0x67:
  case 0x76:
  case 0x77:
  case 0x81:
  case 0x82:
  case 0x83:
  case 0x84:
  case 0x85:
  case 0x86:
  case 0x87:
  case 0x89:
  case 0x91:
  case 0x92:
  case 0x93:
  case 0x94:
  case 0x95:
  case 0x96:
  case 0x97:
  case 0x99:
  case 0xa4:
  case 0xa5:
  case 0xa6:
  case 0xa7:
  case 0xa9:
  case 0xb4:
  case 0xb5:
  case 0xb6:
  case 0xb7:
  case 0xb9:
    break;
  case 8:
    iVar3 = *(int *)(DAT_00302378 + 8);
    if (iVar3 != 0) {
      if (*(char *)(iVar3 + 0x43e5) != '\0') {
        uVar4 = gettext("common \'%s\' overridden by previous definition");
        FUN_00163350(0,uVar4,param_1,param_4,param_5);
        return 0;
      }
      return 0;
    }
    goto code_r0x00163962;
  default:
                    /* WARNING: Subroutine does not return */
    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);
  case 0x10:
  case 0x18:
  case 0x20:
  case 0x21:
  case 0x28:
  case 0x30:
  case 0x31:
  case 0x38:
  case 0x40:
  case 0x41:
  case 0x42:
  case 0x48:
  case 0x49:
  case 0x4a:
  case 0x4b:
  case 0x50:
  case 0x51:
  case 0x54:
  case 0x58:
  case 0x59:
  case 0x5a:
  case 0x5b:
  case 0x60:
  case 0x61:
  case 0x62:
  case 99:
  case 100:
  case 0x68:
  case 0x69:
  case 0x6a:
  case 0x6b:
  case 0x70:
  case 0x71:
  case 0x72:
  case 0x73:
  case 0x74:
  case 0x75:
  case 0x78:
  case 0x79:
  case 0x7a:
  case 0x7b:
  case 0x98:
    return 1;
  case 0x22:
  case 0x32:
    bVar1 = *(byte *)(param_1 + 0x2a);
    if ((bVar1 & 7) != 0) {
code_r0x00163930:
                    /* WARNING: Subroutine does not return */
      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);
    }
    if ((param_5 == *(int *)(param_1 + 8)) &&
       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {
      return CONCAT31(uVar6,param_8);
    }
    if (-1 < (char)bVar1) {
      return 0;
    }
    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {
      return 0;
    }
    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);
    goto joined_r0x00163817;
  case 0x23:
  case 0x33:
  case 0xa2:
  case 0xa3:
  case 0xb2:
  case 0xb3:
    bVar1 = *(byte *)(param_1 + 0x2a);
    if (-1 < (char)bVar1) {
      return 0;
    }
    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {
      return 0;
    }
    if ((bVar1 & 7) != 0) goto code_r0x00163930;
    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);
joined_r0x00163817:
    if ((bVar1 & 0x40) != 0) {
      return bVar1 >> 1 & 1 ^ 1;
    }
    break;
  case 0x24:
  case 0x25:
  case 0x34:
  case 0x35:
    *param_7 = 1;
    return 0;
  case 0x43:
  case 0x52:
  case 0x53:
    *param_7 = 1;
    return 1;
  case 0x80:
  case 0x90:
  case 0xa0:
  case 0xb0:
    iVar3 = *(int *)(DAT_00302378 + 8);
    if (iVar3 != 0) {
      bVar1 = *(byte *)(iVar3 + 0x43e5);
      if (bVar1 == 0) {
        return 1;
      }
      pcVar5 = "definition of \'%s\' overriding common";
code_r0x001636fb:
      uVar4 = gettext(pcVar5);
      FUN_00163350(0,uVar4,param_1,param_4,param_5);
      return (uint)bVar1;
    }
    goto code_r0x00163962;
  case 0x88:
  case 0x8a:
  case 0x8b:
  case 0x9a:
  case 0x9b:
  case 0xaa:
  case 0xab:
  case 0xba:
  case 0xbb:
    *param_6 = 1;
    break;
  case 0xa1:
  case 0xb1:
    iVar3 = *(int *)(DAT_00302378 + 8);
    if (iVar3 != 0) {
      bVar1 = *(byte *)(iVar3 + 0x43e5);
      if (bVar1 == 0) {
        return 1;
      }
      pcVar5 = "definition of \'%s\' overriding dynamic common definition";
      goto code_r0x001636fb;
    }
code_r0x00163962:
                    /* WARNING: Subroutine does not return */
    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);
  case 0xa8:
  case 0xb8:
    *param_6 = 1;
    return 1;
  }
  return 0;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00032730
ADD EBX,0x19ead7
SUB ESP,0x1c
MOV EAX,dword ptr [ESP + 0x44]
MOV EDI,dword ptr [ESP + 0x4c]
MOV ESI,dword ptr [ESP + 0x30]
MOV byte ptr [EAX],0x0
MOV EAX,dword ptr [ESP + 0x48]
MOV byte ptr [EAX],0x0
MOVZX EAX,byte ptr [ESI + 0x2a]
AND EAX,0x7
MOVZX EDX,AL
CMP EDX,0x4
JZ 0x00163668
TEST EDX,EDX
JNZ 0x00163640
TEST AL,AL
JNZ 0x00163917
MOV EAX,dword ptr [ESI + 0x8]
SUB ESP,0xc
MOV ECX,dword ptr [ESI + 0xc]
MOVZX EDX,byte ptr [EAX + 0x2c]
MOVZX EAX,byte ptr [ESI + 0x28]
SHR AL,0x4
AND EDX,0x1
MOVZX EAX,AL
MOV dword ptr [ESP + 0x18],EAX
MOVZX EAX,byte ptr [ESI + 0x2b]
SHR AL,0x5
MOV EBP,EAX
AND EBP,0x1
PUSH EBP
MOV EAX,dword ptr [ESP + 0x1c]
CALL 0x001630f0
ADD ESP,0x10
MOV EBP,EAX
MOVZX EAX,byte ptr [ESI + 0x28]
AND EAX,0xf
CMP AL,0x6
SETZ DL
CMP dword ptr [ESP + 0x38],0x6
SETZ AL
CMP DL,AL
JZ 0x001635d5
TEST byte ptr [ESI + 0x2a],0x7
JNZ 0x00163610
MOV EAX,dword ptr [ESI + 0x8]
SUB ESP,0xc
MOV EDX,dword ptr [EAX]
PUSH EAX
CALL dword ptr [EDX + 0x14]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00163610
MOV EAX,dword ptr [ESP + 0x34]
SHL EBP,0x4
ADD EAX,EBP
CMP EAX,0xbb
JA 0x001638e1
MOV ECX,dword ptr [EBX + EAX*0x4 + 0xfff350e8]
ADD ECX,EBX
JMP ECX
SUB ESP,0xc
LEA EAX,[EBX + 0xfff34fa0]
PUSH EAX
CALL 0x000263b0
POP EDX
PUSH dword ptr [ESP + 0x4c]
PUSH dword ptr [ESP + 0x4c]
PUSH ESI
PUSH EAX
PUSH 0x1
CALL 0x00163350
ADD ESP,0x20
JMP 0x001635d5
MOVZX EAX,byte ptr [ESI + 0x28]
SUB ESP,0xc
MOV ECX,0xfff1
XOR EDX,EDX
PUSH 0x0
SHR AL,0x4
MOVZX EAX,AL
CALL 0x001630f0
ADD ESP,0x10
MOV EBP,EAX
JMP 0x001635a4
MOVZX EAX,byte ptr [ESI + 0x28]
SUB ESP,0xc
XOR ECX,ECX
XOR EDX,EDX
PUSH 0x1
SHR AL,0x4
MOVZX EAX,AL
CALL 0x001630f0
ADD ESP,0x10
MOV EBP,EAX
JMP 0x001635a4
PUSH EAX
LEA EAX,[EBX + 0xfff3553c]
PUSH EAX
LEA EAX,[EBX + 0xfff35080]
PUSH 0x379
PUSH EAX
CALL 0x0005f0b0
LEA EAX,[EBX + 0xfff35534]
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xfff1e98d]
PUSH 0xaa
PUSH EAX
CALL 0x0005f0b0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Removing unreachable block (ram,0x00163917) */\n\nuint FUN_00163520(int param_1,int param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined1 *param_6,undefined1 *param_7,byte param_8)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  undefined3 uVar6;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  undefined8 uVar7;\n  \n  *param_6 = 0;\n  *param_7 = 0;\n  bVar1 = *(byte *)(param_1 + 0x2a) & 7;\n  if (bVar1 == 4) {\n    uVar7 = FUN_001630f0(1);\n  }\n  else if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }\n  uVar6 = (undefined3)((ulonglong)uVar7 >> 0x28);\n  if ((((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))) {\n    uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");\n    FUN_00163350(1,uVar4,param_1,param_4,param_5);\n    uVar6 = extraout_var_00;\n  }\n  param_2 = param_2 + (int)uVar7 * 0x10;\n  switch(param_2) {\n  case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return 1;\n  case 0x22:\n  case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *param_7 = 1;\n    return 0;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *param_7 = 1;\n    return 1;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *param_6 = 1;\n    break;\n  case 0xa1:\n  case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);\n  case 0xa8:\n  case 0xb8:\n    *param_6 = 1;\n    return 1;\n  }\n  return 0;\n}\n\n" comment comment (function_definition "uint FUN_00163520(int param_1,int param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined1 *param_6,undefined1 *param_7,byte param_8)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  undefined3 uVar6;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  undefined8 uVar7;\n  \n  *param_6 = 0;\n  *param_7 = 0;\n  bVar1 = *(byte *)(param_1 + 0x2a) & 7;\n  if (bVar1 == 4) {\n    uVar7 = FUN_001630f0(1);\n  }\n  else if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }\n  uVar6 = (undefined3)((ulonglong)uVar7 >> 0x28);\n  if ((((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))) {\n    uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");\n    FUN_00163350(1,uVar4,param_1,param_4,param_5);\n    uVar6 = extraout_var_00;\n  }\n  param_2 = param_2 + (int)uVar7 * 0x10;\n  switch(param_2) {\n  case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return 1;\n  case 0x22:\n  case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *param_7 = 1;\n    return 0;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *param_7 = 1;\n    return 1;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *param_6 = 1;\n    break;\n  case 0xa1:\n  case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);\n  case 0xa8:\n  case 0xb8:\n    *param_6 = 1;\n    return 1;\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_00163520(int param_1,int param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined1 *param_6,undefined1 *param_7,byte param_8)" identifier (parameter_list "(int param_1,int param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined1 *param_6,undefined1 *param_7,byte param_8)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined1 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "undefined1 *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "byte param_8" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  undefined3 uVar6;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  undefined8 uVar7;\n  \n  *param_6 = 0;\n  *param_7 = 0;\n  bVar1 = *(byte *)(param_1 + 0x2a) & 7;\n  if (bVar1 == 4) {\n    uVar7 = FUN_001630f0(1);\n  }\n  else if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }\n  uVar6 = (undefined3)((ulonglong)uVar7 >> 0x28);\n  if ((((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))) {\n    uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");\n    FUN_00163350(1,uVar4,param_1,param_4,param_5);\n    uVar6 = extraout_var_00;\n  }\n  param_2 = param_2 + (int)uVar7 * 0x10;\n  switch(param_2) {\n  case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return 1;\n  case 0x22:\n  case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *param_7 = 1;\n    return 0;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *param_7 = 1;\n    return 1;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *param_6 = 1;\n    break;\n  case 0xa1:\n  case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);\n  case 0xa8:\n  case 0xb8:\n    *param_6 = 1;\n    return 1;\n  }\n  return 0;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined3 uVar6;" type_identifier identifier ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "undefined3 extraout_var_00;" type_identifier identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) (expression_statement "*param_7 = 0;" (assignment_expression "*param_7 = 0" (pointer_expression "*param_7" * identifier) = number_literal) ;) (expression_statement "bVar1 = *(byte *)(param_1 + 0x2a) & 7;" (assignment_expression "bVar1 = *(byte *)(param_1 + 0x2a) & 7" identifier = (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (bVar1 == 4) {\n    uVar7 = FUN_001630f0(1);\n  }\n  else if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }" if (parenthesized_expression "(bVar1 == 4)" ( (binary_expression "bVar1 == 4" identifier == number_literal) )) (compound_statement "{\n    uVar7 = FUN_001630f0(1);\n  }" { (expression_statement "uVar7 = FUN_001630f0(1);" (assignment_expression "uVar7 = FUN_001630f0(1)" identifier = (call_expression "FUN_001630f0(1)" identifier (argument_list "(1)" ( number_literal )))) ;) }) (else_clause "else if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }" else (if_statement "if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }" { (expression_statement "uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);" (assignment_expression "uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1)" identifier = (call_expression "FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1)" identifier (argument_list "(*(byte *)(param_1 + 0x2b) >> 5 & 1)" ( (binary_expression "*(byte *)(param_1 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(param_1 + 0x2b) >> 5" (pointer_expression "*(byte *)(param_1 + 0x2b)" * (cast_expression "(byte *)(param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2b)" ( (binary_expression "param_1 + 0x2b" identifier + number_literal) )))) >> number_literal) & number_literal) )))) ;) }) (else_clause "else {\n    uVar7 = FUN_001630f0(0);\n  }" else (compound_statement "{\n    uVar7 = FUN_001630f0(0);\n  }" { (expression_statement "uVar7 = FUN_001630f0(0);" (assignment_expression "uVar7 = FUN_001630f0(0)" identifier = (call_expression "FUN_001630f0(0)" identifier (argument_list "(0)" ( number_literal )))) ;) }))))) (expression_statement "uVar6 = (undefined3)((ulonglong)uVar7 >> 0x28);" (assignment_expression "uVar6 = (undefined3)((ulonglong)uVar7 >> 0x28)" identifier = (call_expression "(undefined3)((ulonglong)uVar7 >> 0x28)" (parenthesized_expression "(undefined3)" ( identifier )) (argument_list "((ulonglong)uVar7 >> 0x28)" ( (binary_expression "(ulonglong)uVar7 >> 0x28" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))) {\n    uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");\n    FUN_00163350(1,uVar4,param_1,param_4,param_5);\n    uVar6 = extraout_var_00;\n  }" if (parenthesized_expression "((((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0))))" ( (binary_expression "(((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))" (parenthesized_expression "(((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6))" ( (binary_expression "((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)" (parenthesized_expression "((*(byte *)(param_1 + 0x28) & 0xf) == 6)" ( (binary_expression "(*(byte *)(param_1 + 0x28) & 0xf) == 6" (parenthesized_expression "(*(byte *)(param_1 + 0x28) & 0xf)" ( (binary_expression "*(byte *)(param_1 + 0x28) & 0xf" (pointer_expression "*(byte *)(param_1 + 0x28)" * (cast_expression "(byte *)(param_1 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) & number_literal) )) == number_literal) )) != (parenthesized_expression "(param_3 == 6)" ( (binary_expression "param_3 == 6" identifier == number_literal) ))) )) && (parenthesized_expression "(((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))" ( (parenthesized_expression "((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0))" ( (binary_expression "(*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)" (binary_expression "(*(byte *)(param_1 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2a) & 7)" ( (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "(iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)" ( (comma_expression "iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0" (assignment_expression "iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8))" identifier = (call_expression "(**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8))" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 8) + 0x14))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 8) + 0x14)" * (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 0x14)" * (cast_expression "(code **)(**(int **)(param_1 + 8) + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 8) + 0x14)" ( (binary_expression "**(int **)(param_1 + 8) + 0x14" (pointer_expression "**(int **)(param_1 + 8)" * (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 8))" ( (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )))) , (comma_expression "uVar6 = extraout_var, iVar3 == 0" (assignment_expression "uVar6 = extraout_var" identifier = identifier) , (binary_expression "iVar3 == 0" identifier == number_literal))) ))) )) ))) )) (compound_statement "{\n    uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");\n    FUN_00163350(1,uVar4,param_1,param_4,param_5);\n    uVar6 = extraout_var_00;\n  }" { (expression_statement "uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");" (assignment_expression "uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread")" identifier = (call_expression "gettext("symbol \'%s\' used as both __thread and non-__thread")" identifier (argument_list "("symbol \'%s\' used as both __thread and non-__thread")" ( (string_literal ""symbol \'%s\' used as both __thread and non-__thread"" " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_00163350(1,uVar4,param_1,param_4,param_5);" (call_expression "FUN_00163350(1,uVar4,param_1,param_4,param_5)" identifier (argument_list "(1,uVar4,param_1,param_4,param_5)" ( number_literal , identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar6 = extraout_var_00;" (assignment_expression "uVar6 = extraout_var_00" identifier = identifier) ;) })) (expression_statement "param_2 = param_2 + (int)uVar7 * 0x10;" (assignment_expression "param_2 = param_2 + (int)uVar7 * 0x10" identifier = (binary_expression "param_2 + (int)uVar7 * 0x10" identifier + (binary_expression "(int)uVar7 * 0x10" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (switch_statement "switch(param_2) {\n  case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return 1;\n  case 0x22:\n  case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *param_7 = 1;\n    return 0;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *param_7 = 1;\n    return 1;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *param_6 = 1;\n    break;\n  case 0xa1:\n  case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);\n  case 0xa8:\n  case 0xb8:\n    *param_6 = 1;\n    return 1;\n  }" switch (parenthesized_expression "(param_2)" ( identifier )) (compound_statement "{\n  case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return 1;\n  case 0x22:\n  case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *param_7 = 1;\n    return 0;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *param_7 = 1;\n    return 1;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *param_6 = 1;\n    break;\n  case 0xa1:\n  case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);\n  case 0xa8:\n  case 0xb8:\n    *param_6 = 1;\n    return 1;\n  }" { (case_statement "case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;" case number_literal : (if_statement "if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2a) & 7)" ( (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }" { (expression_statement "iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);" (assignment_expression "iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 8) + 0x1c)" * (cast_expression "(int *)(*(int *)(param_1 + 8) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 8) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 8) + 0x1c" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto code_r0x00163949;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00163949;" goto statement_identifier ;)) (expression_statement "cVar2 = FUN_0005cf90(iVar3);" (assignment_expression "cVar2 = FUN_0005cf90(iVar3)" identifier = (call_expression "FUN_0005cf90(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (cVar2 != '\0') {\n        return 0;\n      }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) (if_statement "if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }" { (expression_statement "iVar3 = *(int *)(param_5 + 0x1c);" (assignment_expression "iVar3 = *(int *)(param_5 + 0x1c)" identifier = (pointer_expression "*(int *)(param_5 + 0x1c)" * (cast_expression "(int *)(param_5 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x1c)" ( (binary_expression "param_5 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\ncode_r0x00163949:\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\ncode_r0x00163949:\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }" { (labeled_statement "code_r0x00163949:\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);" statement_identifier : comment (expression_statement "FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);" (call_expression "FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3)" identifier (argument_list "("../../gold/object.h",0x1ea,"input_file",iVar3)" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""input_file"" " string_content ") , identifier ))) ;)) })) (expression_statement "cVar2 = FUN_0005cf90(iVar3);" (assignment_expression "cVar2 = FUN_0005cf90(iVar3)" identifier = (call_expression "FUN_0005cf90(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (cVar2 != '\0') {\n        return 0;\n      }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "iVar3 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar3 = *(int *)(DAT_00302378 + 8)" identifier = (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto code_r0x00163962;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00163962;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }" if (parenthesized_expression "(*(char *)(iVar3 + 0x525d) == '\0')" ( (binary_expression "*(char *)(iVar3 + 0x525d) == '\0'" (pointer_expression "*(char *)(iVar3 + 0x525d)" * (cast_expression "(char *)(iVar3 + 0x525d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x525d)" ( (binary_expression "iVar3 + 0x525d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }" { (expression_statement "uVar4 = gettext("multiple definition of \'%s\'");" (assignment_expression "uVar4 = gettext("multiple definition of \'%s\'")" identifier = (call_expression "gettext("multiple definition of \'%s\'")" identifier (argument_list "("multiple definition of \'%s\'")" ( (string_literal ""multiple definition of \'%s\'"" " string_content escape_sequence string_content escape_sequence ") )))) ;) (expression_statement "FUN_00163350(1,uVar4,param_1,param_4,param_5);" (call_expression "FUN_00163350(1,uVar4,param_1,param_4,param_5)" identifier (argument_list "(1,uVar4,param_1,param_4,param_5)" ( number_literal , identifier , identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (break_statement "break;" break ;)) (case_statement "case 1:" case number_literal :) (case_statement "case 2:" case number_literal :) (case_statement "case 3:" case number_literal :) (case_statement "case 4:" case number_literal :) (case_statement "case 5:" case number_literal :) (case_statement "case 6:" case number_literal :) (case_statement "case 7:" case number_literal :) (case_statement "case 9:" case number_literal :) (case_statement "case 10:" case number_literal :) (case_statement "case 0xb:" case number_literal :) (case_statement "case 0x11:" case number_literal :) (case_statement "case 0x12:" case number_literal :) (case_statement "case 0x13:" case number_literal :) (case_statement "case 0x14:" case number_literal :) (case_statement "case 0x15:" case number_literal :) (case_statement "case 0x16:" case number_literal :) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x19:" case number_literal :) (case_statement "case 0x1a:" case number_literal :) (case_statement "case 0x1b:" case number_literal :) (case_statement "case 0x26:" case number_literal :) (case_statement "case 0x27:" case number_literal :) (case_statement "case 0x29:" case number_literal :) (case_statement "case 0x2a:" case number_literal :) (case_statement "case 0x2b:" case number_literal :) (case_statement "case 0x36:" case number_literal :) (case_statement "case 0x37:" case number_literal :) (case_statement "case 0x39:" case number_literal :) (case_statement "case 0x3a:" case number_literal :) (case_statement "case 0x3b:" case number_literal :) (case_statement "case 0x44:" case number_literal :) (case_statement "case 0x45:" case number_literal :) (case_statement "case 0x46:" case number_literal :) (case_statement "case 0x47:" case number_literal :) (case_statement "case 0x55:" case number_literal :) (case_statement "case 0x56:" case number_literal :) (case_statement "case 0x57:" case number_literal :) (case_statement "case 0x65:" case number_literal :) (case_statement "case 0x66:" case number_literal :) (case_statement "case 0x67:" case number_literal :) (case_statement "case 0x76:" case number_literal :) (case_statement "case 0x77:" case number_literal :) (case_statement "case 0x81:" case number_literal :) (case_statement "case 0x82:" case number_literal :) (case_statement "case 0x83:" case number_literal :) (case_statement "case 0x84:" case number_literal :) (case_statement "case 0x85:" case number_literal :) (case_statement "case 0x86:" case number_literal :) (case_statement "case 0x87:" case number_literal :) (case_statement "case 0x89:" case number_literal :) (case_statement "case 0x91:" case number_literal :) (case_statement "case 0x92:" case number_literal :) (case_statement "case 0x93:" case number_literal :) (case_statement "case 0x94:" case number_literal :) (case_statement "case 0x95:" case number_literal :) (case_statement "case 0x96:" case number_literal :) (case_statement "case 0x97:" case number_literal :) (case_statement "case 0x99:" case number_literal :) (case_statement "case 0xa4:" case number_literal :) (case_statement "case 0xa5:" case number_literal :) (case_statement "case 0xa6:" case number_literal :) (case_statement "case 0xa7:" case number_literal :) (case_statement "case 0xa9:" case number_literal :) (case_statement "case 0xb4:" case number_literal :) (case_statement "case 0xb5:" case number_literal :) (case_statement "case 0xb6:" case number_literal :) (case_statement "case 0xb7:" case number_literal :) (case_statement "case 0xb9:\n    break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;" case number_literal : (expression_statement "iVar3 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar3 = *(int *)(DAT_00302378 + 8)" identifier = (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }" { (if_statement "if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }" if (parenthesized_expression "(*(char *)(iVar3 + 0x43e5) != '\0')" ( (binary_expression "*(char *)(iVar3 + 0x43e5) != '\0'" (pointer_expression "*(char *)(iVar3 + 0x43e5)" * (cast_expression "(char *)(iVar3 + 0x43e5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43e5)" ( (binary_expression "iVar3 + 0x43e5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }" { (expression_statement "uVar4 = gettext("common \'%s\' overridden by previous definition");" (assignment_expression "uVar4 = gettext("common \'%s\' overridden by previous definition")" identifier = (call_expression "gettext("common \'%s\' overridden by previous definition")" identifier (argument_list "("common \'%s\' overridden by previous definition")" ( (string_literal ""common \'%s\' overridden by previous definition"" " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_00163350(0,uVar4,param_1,param_4,param_5);" (call_expression "FUN_00163350(0,uVar4,param_1,param_4,param_5)" identifier (argument_list "(0,uVar4,param_1,param_4,param_5)" ( number_literal , identifier , identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto code_r0x00163962;" goto statement_identifier ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);" default : comment (expression_statement "FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);" (call_expression "FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2)" identifier (argument_list "("../../gold/resolve.cc",0x379,"should_override",param_2)" ( (string_literal ""../../gold/resolve.cc"" " string_content ") , number_literal , (string_literal ""should_override"" " string_content ") , identifier ))) ;)) (case_statement "case 0x10:" case number_literal :) (case_statement "case 0x18:" case number_literal :) (case_statement "case 0x20:" case number_literal :) (case_statement "case 0x21:" case number_literal :) (case_statement "case 0x28:" case number_literal :) (case_statement "case 0x30:" case number_literal :) (case_statement "case 0x31:" case number_literal :) (case_statement "case 0x38:" case number_literal :) (case_statement "case 0x40:" case number_literal :) (case_statement "case 0x41:" case number_literal :) (case_statement "case 0x42:" case number_literal :) (case_statement "case 0x48:" case number_literal :) (case_statement "case 0x49:" case number_literal :) (case_statement "case 0x4a:" case number_literal :) (case_statement "case 0x4b:" case number_literal :) (case_statement "case 0x50:" case number_literal :) (case_statement "case 0x51:" case number_literal :) (case_statement "case 0x54:" case number_literal :) (case_statement "case 0x58:" case number_literal :) (case_statement "case 0x59:" case number_literal :) (case_statement "case 0x5a:" case number_literal :) (case_statement "case 0x5b:" case number_literal :) (case_statement "case 0x60:" case number_literal :) (case_statement "case 0x61:" case number_literal :) (case_statement "case 0x62:" case number_literal :) (case_statement "case 99:" case number_literal :) (case_statement "case 100:" case number_literal :) (case_statement "case 0x68:" case number_literal :) (case_statement "case 0x69:" case number_literal :) (case_statement "case 0x6a:" case number_literal :) (case_statement "case 0x6b:" case number_literal :) (case_statement "case 0x70:" case number_literal :) (case_statement "case 0x71:" case number_literal :) (case_statement "case 0x72:" case number_literal :) (case_statement "case 0x73:" case number_literal :) (case_statement "case 0x74:" case number_literal :) (case_statement "case 0x75:" case number_literal :) (case_statement "case 0x78:" case number_literal :) (case_statement "case 0x79:" case number_literal :) (case_statement "case 0x7a:" case number_literal :) (case_statement "case 0x7b:" case number_literal :) (case_statement "case 0x98:\n    return 1;" case number_literal : (return_statement "return 1;" return number_literal ;)) (case_statement "case 0x22:" case number_literal :) (case_statement "case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;" case number_literal : (expression_statement "bVar1 = *(byte *)(param_1 + 0x2a);" (assignment_expression "bVar1 = *(byte *)(param_1 + 0x2a)" identifier = (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }" if (parenthesized_expression "((bVar1 & 7) != 0)" ( (binary_expression "(bVar1 & 7) != 0" (parenthesized_expression "(bVar1 & 7)" ( (binary_expression "bVar1 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\ncode_r0x00163930:\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }" { (labeled_statement "code_r0x00163930:\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);" statement_identifier : comment (expression_statement "FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);" (call_expression "FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1)" identifier (argument_list "("../../gold/symtab.h",0xa1,"object",bVar1)" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") , identifier ))) ;)) })) (if_statement "if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }" if (parenthesized_expression "((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0))" ( (binary_expression "(param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)" (parenthesized_expression "(param_5 == *(int *)(param_1 + 8))" ( (binary_expression "param_5 == *(int *)(param_1 + 8)" identifier == (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) && (parenthesized_expression "(param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)" ( (comma_expression "param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0" (assignment_expression "param_8 = *(int *)(param_1 + 4) == 0 & param_8" identifier = (binary_expression "*(int *)(param_1 + 4) == 0 & param_8" (binary_expression "*(int *)(param_1 + 4) == 0" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) == number_literal) & identifier)) , (binary_expression "param_8 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      return CONCAT31(uVar6,param_8);\n    }" { (return_statement "return CONCAT31(uVar6,param_8);" return (call_expression "CONCAT31(uVar6,param_8)" identifier (argument_list "(uVar6,param_8)" ( identifier , identifier ))) ;) })) (if_statement "if (-1 < (char)bVar1) {\n      return 0;\n    }" if (parenthesized_expression "(-1 < (char)bVar1)" ( (binary_expression "-1 < (char)bVar1" number_literal < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 0x2c) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2c) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2c) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x2c) & 2" (pointer_expression "*(byte *)(param_1 + 0x2c)" * (cast_expression "(byte *)(param_1 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);" (assignment_expression "bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c)" identifier = (pointer_expression "*(byte *)(*(int *)(param_1 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(param_1 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 8) + 0x2c" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto joined_r0x00163817;" goto statement_identifier ;)) (case_statement "case 0x23:" case number_literal :) (case_statement "case 0x33:" case number_literal :) (case_statement "case 0xa2:" case number_literal :) (case_statement "case 0xa3:" case number_literal :) (case_statement "case 0xb2:" case number_literal :) (case_statement "case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;" case number_literal : (expression_statement "bVar1 = *(byte *)(param_1 + 0x2a);" (assignment_expression "bVar1 = *(byte *)(param_1 + 0x2a)" identifier = (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) ))))) ;) (if_statement "if (-1 < (char)bVar1) {\n      return 0;\n    }" if (parenthesized_expression "(-1 < (char)bVar1)" ( (binary_expression "-1 < (char)bVar1" number_literal < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 0x2c) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2c) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2c) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x2c) & 2" (pointer_expression "*(byte *)(param_1 + 0x2c)" * (cast_expression "(byte *)(param_1 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((bVar1 & 7) != 0) goto code_r0x00163930;" if (parenthesized_expression "((bVar1 & 7) != 0)" ( (binary_expression "(bVar1 & 7) != 0" (parenthesized_expression "(bVar1 & 7)" ( (binary_expression "bVar1 & 7" identifier & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x00163930;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);" (assignment_expression "bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c)" identifier = (pointer_expression "*(byte *)(*(int *)(param_1 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(param_1 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 8) + 0x2c" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (labeled_statement "joined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }" statement_identifier : (if_statement "if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }" if (parenthesized_expression "((bVar1 & 0x40) != 0)" ( (binary_expression "(bVar1 & 0x40) != 0" (parenthesized_expression "(bVar1 & 0x40)" ( (binary_expression "bVar1 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      return bVar1 >> 1 & 1 ^ 1;\n    }" { (return_statement "return bVar1 >> 1 & 1 ^ 1;" return (binary_expression "bVar1 >> 1 & 1 ^ 1" (binary_expression "bVar1 >> 1 & 1" (binary_expression "bVar1 >> 1" identifier >> number_literal) & number_literal) ^ number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x24:" case number_literal :) (case_statement "case 0x25:" case number_literal :) (case_statement "case 0x34:" case number_literal :) (case_statement "case 0x35:\n    *param_7 = 1;\n    return 0;" case number_literal : (expression_statement "*param_7 = 1;" (assignment_expression "*param_7 = 1" (pointer_expression "*param_7" * identifier) = number_literal) ;) (return_statement "return 0;" return number_literal ;)) (case_statement "case 0x43:" case number_literal :) (case_statement "case 0x52:" case number_literal :) (case_statement "case 0x53:\n    *param_7 = 1;\n    return 1;" case number_literal : (expression_statement "*param_7 = 1;" (assignment_expression "*param_7 = 1" (pointer_expression "*param_7" * identifier) = number_literal) ;) (return_statement "return 1;" return number_literal ;)) (case_statement "case 0x80:" case number_literal :) (case_statement "case 0x90:" case number_literal :) (case_statement "case 0xa0:" case number_literal :) (case_statement "case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;" case number_literal : (expression_statement "iVar3 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar3 = *(int *)(DAT_00302378 + 8)" identifier = (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }" { (expression_statement "bVar1 = *(byte *)(iVar3 + 0x43e5);" (assignment_expression "bVar1 = *(byte *)(iVar3 + 0x43e5)" identifier = (pointer_expression "*(byte *)(iVar3 + 0x43e5)" * (cast_expression "(byte *)(iVar3 + 0x43e5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43e5)" ( (binary_expression "iVar3 + 0x43e5" identifier + number_literal) ))))) ;) (if_statement "if (bVar1 == 0) {\n        return 1;\n      }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar5 = "definition of \'%s\' overriding common";" (assignment_expression "pcVar5 = "definition of \'%s\' overriding common"" identifier = (string_literal ""definition of \'%s\' overriding common"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (labeled_statement "code_r0x001636fb:\n      uVar4 = gettext(pcVar5);" statement_identifier : (expression_statement "uVar4 = gettext(pcVar5);" (assignment_expression "uVar4 = gettext(pcVar5)" identifier = (call_expression "gettext(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;)) (expression_statement "FUN_00163350(0,uVar4,param_1,param_4,param_5);" (call_expression "FUN_00163350(0,uVar4,param_1,param_4,param_5)" identifier (argument_list "(0,uVar4,param_1,param_4,param_5)" ( number_literal , identifier , identifier , identifier , identifier ))) ;) (return_statement "return (uint)bVar1;" return (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ;) })) (goto_statement "goto code_r0x00163962;" goto statement_identifier ;)) (case_statement "case 0x88:" case number_literal :) (case_statement "case 0x8a:" case number_literal :) (case_statement "case 0x8b:" case number_literal :) (case_statement "case 0x9a:" case number_literal :) (case_statement "case 0x9b:" case number_literal :) (case_statement "case 0xaa:" case number_literal :) (case_statement "case 0xab:" case number_literal :) (case_statement "case 0xba:" case number_literal :) (case_statement "case 0xbb:\n    *param_6 = 1;\n    break;" case number_literal : (expression_statement "*param_6 = 1;" (assignment_expression "*param_6 = 1" (pointer_expression "*param_6" * identifier) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xa1:" case number_literal :) (case_statement "case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);" case number_literal : (expression_statement "iVar3 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar3 = *(int *)(DAT_00302378 + 8)" identifier = (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }" { (expression_statement "bVar1 = *(byte *)(iVar3 + 0x43e5);" (assignment_expression "bVar1 = *(byte *)(iVar3 + 0x43e5)" identifier = (pointer_expression "*(byte *)(iVar3 + 0x43e5)" * (cast_expression "(byte *)(iVar3 + 0x43e5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43e5)" ( (binary_expression "iVar3 + 0x43e5" identifier + number_literal) ))))) ;) (if_statement "if (bVar1 == 0) {\n        return 1;\n      }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar5 = "definition of \'%s\' overriding dynamic common definition";" (assignment_expression "pcVar5 = "definition of \'%s\' overriding dynamic common definition"" identifier = (string_literal ""definition of \'%s\' overriding dynamic common definition"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (goto_statement "goto code_r0x001636fb;" goto statement_identifier ;) })) (labeled_statement "code_r0x00163962:\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);" statement_identifier : comment (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",iVar3)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;))) (case_statement "case 0xa8:" case number_literal :) (case_statement "case 0xb8:\n    *param_6 = 1;\n    return 1;" case number_literal : (expression_statement "*param_6 = 1;" (assignment_expression "*param_6 = 1" (pointer_expression "*param_6" * identifier) = number_literal) ;) (return_statement "return 1;" return number_literal ;)) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Removing unreachable block (ram,0x00163917) */\n/* WARNING: Enum "STT": Some values do not have unique names */\n/* WARNING: Enum "STB": Some values do not have unique names */\n/* WARNING: Enum "DT": Some values do not have unique names */\n\nbool gold::Symbol_table::should_override\n               (Symbol *to,uint frombits,STT fromtype,Defined defined,Object *object,\n               bool *adjust_common_sizes,bool *adjust_dyndef,bool is_default_version)\n\n{\n  char cVar1;\n  Input_file *this;\n  byte bVar2;\n  uint uVar3;\n  int iVar4;\n  char *pcVar5;\n  bool bVar6;\n  \n  *adjust_common_sizes = false;\n  *adjust_dyndef = false;\n  bVar2 = to->field_0x2a & 7;\n  if (bVar2 == 4) {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0,true);\n  }\n  else if (bVar2 == 0) {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),\n                           (bool)(*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                            ._M_impl._M_end_of_storage & 1),(to->u2_).shndx,\n                           (bool)((byte)to->field_0x2b >> 5 & 1));\n  }\n  else {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0xfff1,false);\n  }\n  if ((((to->field_0x28 & 0xf) == 6) != (fromtype == STT_TLS)) &&\n     (((to->field_0x2a & 7) != 0 ||\n      (iVar4 = (*((to->u1_).object)->_vptr_Object[5])((to->u1_).object), iVar4 == 0)))) {\n    pcVar5 = (char *)gettext("symbol \'%s\' used as both __thread and non-__thread");\n    report_resolve_problem(true,pcVar5,to,defined,object);\n  }\n  switch(frombits + uVar3 * 0x10) {\n  case 0:\n    if ((to->field_0x2a & 7) == 0) {\n      this = ((to->u1_).object)->input_file_;\n      if (this == (Input_file *)0x0) goto LAB_00163949;\n      bVar6 = Input_file::just_symbols(this);\n      if (bVar6) {\n        return false;\n      }\n    }\n    if (object != (Object *)0x0) {\n      if (object->input_file_ == (Input_file *)0x0) {\nLAB_00163949:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");\n      }\n      bVar6 = Input_file::just_symbols(object->input_file_);\n      if (bVar6) {\n        return false;\n      }\n    }\n    if (parameters->options_ == (General_options *)0x0) goto LAB_00163962;\n    if ((parameters->options_->muldefs_).value == false) {\n      pcVar5 = (char *)gettext("multiple definition of \'%s\'");\n      report_resolve_problem(true,pcVar5,to,defined,object);\n      return false;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    if (parameters->options_ != (General_options *)0x0) {\n      if ((parameters->options_->warn_common_).value != false) {\n        pcVar5 = (char *)gettext("common \'%s\' overridden by previous definition");\n        report_resolve_problem(false,pcVar5,to,defined,object);\n        return false;\n      }\n      return false;\n    }\n    goto LAB_00163962;\n  default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/resolve.cc",0x379,"should_override");\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return true;\n  case 0x22:\n  case 0x32:\n    if ((to->field_0x2a & 7) != 0) {\nLAB_00163930:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n    }\n    if (((Output_segment *)object == (to->u1_).output_segment) &&\n       (bVar6 = to->version_ == (char *)0x0 && is_default_version, bVar6)) {\n      return bVar6;\n    }\n    if (-1 < (char)to->field_0x2a) {\n      return false;\n    }\n    if ((to->field_0x2c & 2) == 0) {\n      return false;\n    }\n    bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_end_of_storage;\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    if (-1 < (char)to->field_0x2a) {\n      return false;\n    }\n    if ((to->field_0x2c & 2) == 0) {\n      return false;\n    }\n    if ((to->field_0x2a & 7) != 0) goto LAB_00163930;\n    bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_end_of_storage;\njoined_r0x00163817:\n    if ((bVar2 & 0x40) != 0) {\n      return (bool)(bVar2 >> 1 & 1 ^ 1);\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *adjust_dyndef = true;\n    return false;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *adjust_dyndef = true;\n    return true;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    if (parameters->options_ != (General_options *)0x0) {\n      cVar1 = (parameters->options_->warn_common_).value;\n      if ((bool)cVar1 == false) {\n        return true;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\nLAB_001636fb:\n      pcVar5 = (char *)gettext(pcVar5);\n      report_resolve_problem(false,pcVar5,to,defined,object);\n      return (bool)cVar1;\n    }\n    goto LAB_00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *adjust_common_sizes = true;\n    break;\n  case 0xa1:\n  case 0xb1:\n    if (parameters->options_ != (General_options *)0x0) {\n      cVar1 = (parameters->options_->warn_common_).value;\n      if ((bool)cVar1 == false) {\n        return true;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto LAB_001636fb;\n    }\nLAB_00163962:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  case 0xa8:\n  case 0xb8:\n    *adjust_common_sizes = true;\n    return true;\n  }\n  return false;\n}\n\n" comment comment comment comment comment (function_definition "bool gold::Symbol_table::should_override\n               (Symbol *to,uint frombits,STT fromtype,Defined defined,Object *object,\n               bool *adjust_common_sizes,bool *adjust_dyndef,bool is_default_version)\n\n{\n  char cVar1;\n  Input_file *this;\n  byte bVar2;\n  uint uVar3;\n  int iVar4;\n  char *pcVar5;\n  bool bVar6;\n  \n  *adjust_common_sizes = false;\n  *adjust_dyndef = false;\n  bVar2 = to->field_0x2a & 7;\n  if (bVar2 == 4) {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0,true);\n  }\n  else if (bVar2 == 0) {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),\n                           (bool)(*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                            ._M_impl._M_end_of_storage & 1),(to->u2_).shndx,\n                           (bool)((byte)to->field_0x2b >> 5 & 1));\n  }\n  else {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0xfff1,false);\n  }\n  if ((((to->field_0x28 & 0xf) == 6) != (fromtype == STT_TLS)) &&\n     (((to->field_0x2a & 7) != 0 ||\n      (iVar4 = (*((to->u1_).object)->_vptr_Object[5])((to->u1_).object), iVar4 == 0)))) {\n    pcVar5 = (char *)gettext("symbol \'%s\' used as both __thread and non-__thread");\n    report_resolve_problem(true,pcVar5,to,defined,object);\n  }\n  switch(frombits + uVar3 * 0x10) {\n  case 0:\n    if ((to->field_0x2a & 7) == 0) {\n      this = ((to->u1_).object)->input_file_;\n      if (this == (Input_file *)0x0) goto LAB_00163949;\n      bVar6 = Input_file::just_symbols(this);\n      if (bVar6) {\n        return false;\n      }\n    }\n    if (object != (Object *)0x0) {\n      if (object->input_file_ == (Input_file *)0x0) {\nLAB_00163949:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");\n      }\n      bVar6 = Input_file::just_symbols(object->input_file_);\n      if (bVar6) {\n        return false;\n      }\n    }\n    if (parameters->options_ == (General_options *)0x0) goto LAB_00163962;\n    if ((parameters->options_->muldefs_).value == false) {\n      pcVar5 = (char *)gettext("multiple definition of \'%s\'");\n      report_resolve_problem(true,pcVar5,to,defined,object);\n      return false;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    if (parameters->options_ != (General_options *)0x0) {\n      if ((parameters->options_->warn_common_).value != false) {\n        pcVar5 = (char *)gettext("common \'%s\' overridden by previous definition");\n        report_resolve_problem(false,pcVar5,to,defined,object);\n        return false;\n      }\n      return false;\n    }\n    goto LAB_00163962;\n  default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/resolve.cc",0x379,"should_override");\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return true;\n  case 0x22:\n  case 0x32:\n    if ((to->field_0x2a & 7) != 0) {\nLAB_00163930:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n    }\n    if (((Output_segment *)object == (to->u1_).output_segment) &&\n       (bVar6 = to->version_ == (char *)0x0 && is_default_version, bVar6)) {\n      return bVar6;\n    }\n    if (-1 < (char)to->field_0x2a) {\n      return false;\n    }\n    if ((to->field_0x2c & 2) == 0) {\n      return false;\n    }\n    bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_end_of_storage;\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    if (-1 < (char)to->field_0x2a) {\n      return false;\n    }\n    if ((to->field_0x2c & 2) == 0) {\n      return false;\n    }\n    if ((to->field_0x2a & 7) != 0) goto LAB_00163930;\n    bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_end_of_storage;\njoined_r0x00163817:\n    if ((bVar2 & 0x40) != 0) {\n      return (bool)(bVar2 >> 1 & 1 ^ 1);\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *adjust_dyndef = true;\n    return false;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *adjust_dyndef = true;\n    return true;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    if (parameters->options_ != (General_options *)0x0) {\n      cVar1 = (parameters->options_->warn_common_).value;\n      if ((bool)cVar1 == false) {\n        return true;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\nLAB_001636fb:\n      pcVar5 = (char *)gettext(pcVar5);\n      report_resolve_problem(false,pcVar5,to,defined,object);\n      return (bool)cVar1;\n    }\n    goto LAB_00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *adjust_common_sizes = true;\n    break;\n  case 0xa1:\n  case 0xb1:\n    if (parameters->options_ != (General_options *)0x0) {\n      cVar1 = (parameters->options_->warn_common_).value;\n      if ((bool)cVar1 == false) {\n        return true;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto LAB_001636fb;\n    }\nLAB_00163962:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  case 0xa8:\n  case 0xb8:\n    *adjust_common_sizes = true;\n    return true;\n  }\n  return false;\n}" primitive_type (ERROR "gold::Symbol_table::" identifier : : identifier : :) (function_declarator "should_override\n               (Symbol *to,uint frombits,STT fromtype,Defined defined,Object *object,\n               bool *adjust_common_sizes,bool *adjust_dyndef,bool is_default_version)" identifier (parameter_list "(Symbol *to,uint frombits,STT fromtype,Defined defined,Object *object,\n               bool *adjust_common_sizes,bool *adjust_dyndef,bool is_default_version)" ( (parameter_declaration "Symbol *to" type_identifier (pointer_declarator "*to" * identifier)) , (parameter_declaration "uint frombits" type_identifier identifier) , (parameter_declaration "STT fromtype" type_identifier identifier) , (parameter_declaration "Defined defined" type_identifier identifier) , (parameter_declaration "Object *object" type_identifier (pointer_declarator "*object" * identifier)) , (parameter_declaration "bool *adjust_common_sizes" primitive_type (pointer_declarator "*adjust_common_sizes" * identifier)) , (parameter_declaration "bool *adjust_dyndef" primitive_type (pointer_declarator "*adjust_dyndef" * identifier)) , (parameter_declaration "bool is_default_version" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  Input_file *this;\n  byte bVar2;\n  uint uVar3;\n  int iVar4;\n  char *pcVar5;\n  bool bVar6;\n  \n  *adjust_common_sizes = false;\n  *adjust_dyndef = false;\n  bVar2 = to->field_0x2a & 7;\n  if (bVar2 == 4) {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0,true);\n  }\n  else if (bVar2 == 0) {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),\n                           (bool)(*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                            ._M_impl._M_end_of_storage & 1),(to->u2_).shndx,\n                           (bool)((byte)to->field_0x2b >> 5 & 1));\n  }\n  else {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0xfff1,false);\n  }\n  if ((((to->field_0x28 & 0xf) == 6) != (fromtype == STT_TLS)) &&\n     (((to->field_0x2a & 7) != 0 ||\n      (iVar4 = (*((to->u1_).object)->_vptr_Object[5])((to->u1_).object), iVar4 == 0)))) {\n    pcVar5 = (char *)gettext("symbol \'%s\' used as both __thread and non-__thread");\n    report_resolve_problem(true,pcVar5,to,defined,object);\n  }\n  switch(frombits + uVar3 * 0x10) {\n  case 0:\n    if ((to->field_0x2a & 7) == 0) {\n      this = ((to->u1_).object)->input_file_;\n      if (this == (Input_file *)0x0) goto LAB_00163949;\n      bVar6 = Input_file::just_symbols(this);\n      if (bVar6) {\n        return false;\n      }\n    }\n    if (object != (Object *)0x0) {\n      if (object->input_file_ == (Input_file *)0x0) {\nLAB_00163949:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");\n      }\n      bVar6 = Input_file::just_symbols(object->input_file_);\n      if (bVar6) {\n        return false;\n      }\n    }\n    if (parameters->options_ == (General_options *)0x0) goto LAB_00163962;\n    if ((parameters->options_->muldefs_).value == false) {\n      pcVar5 = (char *)gettext("multiple definition of \'%s\'");\n      report_resolve_problem(true,pcVar5,to,defined,object);\n      return false;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    if (parameters->options_ != (General_options *)0x0) {\n      if ((parameters->options_->warn_common_).value != false) {\n        pcVar5 = (char *)gettext("common \'%s\' overridden by previous definition");\n        report_resolve_problem(false,pcVar5,to,defined,object);\n        return false;\n      }\n      return false;\n    }\n    goto LAB_00163962;\n  default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/resolve.cc",0x379,"should_override");\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return true;\n  case 0x22:\n  case 0x32:\n    if ((to->field_0x2a & 7) != 0) {\nLAB_00163930:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n    }\n    if (((Output_segment *)object == (to->u1_).output_segment) &&\n       (bVar6 = to->version_ == (char *)0x0 && is_default_version, bVar6)) {\n      return bVar6;\n    }\n    if (-1 < (char)to->field_0x2a) {\n      return false;\n    }\n    if ((to->field_0x2c & 2) == 0) {\n      return false;\n    }\n    bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_end_of_storage;\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    if (-1 < (char)to->field_0x2a) {\n      return false;\n    }\n    if ((to->field_0x2c & 2) == 0) {\n      return false;\n    }\n    if ((to->field_0x2a & 7) != 0) goto LAB_00163930;\n    bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_end_of_storage;\njoined_r0x00163817:\n    if ((bVar2 & 0x40) != 0) {\n      return (bool)(bVar2 >> 1 & 1 ^ 1);\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *adjust_dyndef = true;\n    return false;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *adjust_dyndef = true;\n    return true;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    if (parameters->options_ != (General_options *)0x0) {\n      cVar1 = (parameters->options_->warn_common_).value;\n      if ((bool)cVar1 == false) {\n        return true;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\nLAB_001636fb:\n      pcVar5 = (char *)gettext(pcVar5);\n      report_resolve_problem(false,pcVar5,to,defined,object);\n      return (bool)cVar1;\n    }\n    goto LAB_00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *adjust_common_sizes = true;\n    break;\n  case 0xa1:\n  case 0xb1:\n    if (parameters->options_ != (General_options *)0x0) {\n      cVar1 = (parameters->options_->warn_common_).value;\n      if ((bool)cVar1 == false) {\n        return true;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto LAB_001636fb;\n    }\nLAB_00163962:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  case 0xa8:\n  case 0xb8:\n    *adjust_common_sizes = true;\n    return true;\n  }\n  return false;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "Input_file *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "bool bVar6;" primitive_type identifier ;) (expression_statement "*adjust_common_sizes = false;" (assignment_expression "*adjust_common_sizes = false" (pointer_expression "*adjust_common_sizes" * identifier) = false) ;) (expression_statement "*adjust_dyndef = false;" (assignment_expression "*adjust_dyndef = false" (pointer_expression "*adjust_dyndef" * identifier) = false) ;) (expression_statement "bVar2 = to->field_0x2a & 7;" (assignment_expression "bVar2 = to->field_0x2a & 7" identifier = (binary_expression "to->field_0x2a & 7" (field_expression "to->field_0x2a" identifier -> field_identifier) & number_literal)) ;) (if_statement "if (bVar2 == 4) {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0,true);\n  }\n  else if (bVar2 == 0) {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),\n                           (bool)(*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                            ._M_impl._M_end_of_storage & 1),(to->u2_).shndx,\n                           (bool)((byte)to->field_0x2b >> 5 & 1));\n  }\n  else {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0xfff1,false);\n  }" if (parenthesized_expression "(bVar2 == 4)" ( (binary_expression "bVar2 == 4" identifier == number_literal) )) (compound_statement "{\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0,true);\n  }" { (expression_statement "uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0,true);" (assignment_expression "uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0,true)" identifier = (call_expression "symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0,true)" identifier (argument_list "((uint)((byte)to->field_0x28 >> 4),false,0,true)" ( (call_expression "(uint)((byte)to->field_0x28 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((byte)to->field_0x28 >> 4)" ( (binary_expression "(byte)to->field_0x28 >> 4" (cast_expression "(byte)to->field_0x28" ( (type_descriptor "byte" type_identifier) ) (field_expression "to->field_0x28" identifier -> field_identifier)) >> number_literal) ))) , false , number_literal , true )))) ;) }) (else_clause "else if (bVar2 == 0) {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),\n                           (bool)(*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                            ._M_impl._M_end_of_storage & 1),(to->u2_).shndx,\n                           (bool)((byte)to->field_0x2b >> 5 & 1));\n  }\n  else {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0xfff1,false);\n  }" else (if_statement "if (bVar2 == 0) {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),\n                           (bool)(*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                            ._M_impl._M_end_of_storage & 1),(to->u2_).shndx,\n                           (bool)((byte)to->field_0x2b >> 5 & 1));\n  }\n  else {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0xfff1,false);\n  }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),\n                           (bool)(*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                            ._M_impl._M_end_of_storage & 1),(to->u2_).shndx,\n                           (bool)((byte)to->field_0x2b >> 5 & 1));\n  }" { (expression_statement "uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),\n                           (bool)(*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                            ._M_impl._M_end_of_storage & 1),(to->u2_).shndx,\n                           (bool)((byte)to->field_0x2b >> 5 & 1));" (assignment_expression "uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),\n                           (bool)(*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                            ._M_impl._M_end_of_storage & 1),(to->u2_).shndx,\n                           (bool)((byte)to->field_0x2b >> 5 & 1))" identifier = (call_expression "symbol_to_bits((uint)((byte)to->field_0x28 >> 4),\n                           (bool)(*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                            ._M_impl._M_end_of_storage & 1),(to->u2_).shndx,\n                           (bool)((byte)to->field_0x2b >> 5 & 1))" identifier (argument_list "((uint)((byte)to->field_0x28 >> 4),\n                           (bool)(*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                            ._M_impl._M_end_of_storage & 1),(to->u2_).shndx,\n                           (bool)((byte)to->field_0x2b >> 5 & 1))" ( (call_expression "(uint)((byte)to->field_0x28 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((byte)to->field_0x28 >> 4)" ( (binary_expression "(byte)to->field_0x28 >> 4" (cast_expression "(byte)to->field_0x28" ( (type_descriptor "byte" type_identifier) ) (field_expression "to->field_0x28" identifier -> field_identifier)) >> number_literal) ))) , (cast_expression "(bool)(*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                            ._M_impl._M_end_of_storage & 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                            ._M_impl._M_end_of_storage & 1)" ( (binary_expression "*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                            ._M_impl._M_end_of_storage & 1" (field_expression "*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                            ._M_impl._M_end_of_storage" (field_expression "*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                            ._M_impl" (binary_expression "*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold::Output_data*,_std" (binary_expression "*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base<gold" (pointer_expression "*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base" * (cast_expression "(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base" & (field_expression "((to->u1_).output_segment)->output_lists_[3].\n                                            super__Vector_base" (subscript_expression "((to->u1_).output_segment)->output_lists_[3]" (field_expression "((to->u1_).output_segment)->output_lists_" (parenthesized_expression "((to->u1_).output_segment)" ( (field_expression "(to->u1_).output_segment" (parenthesized_expression "(to->u1_)" ( (field_expression "to->u1_" 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) ))) , (field_expression "(to->u2_).shndx" (parenthesized_expression "(to->u2_)" ( (field_expression "to->u2_" identifier -> field_identifier) )) . field_identifier) , (cast_expression "(bool)((byte)to->field_0x2b >> 5 & 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "((byte)to->field_0x2b >> 5 & 1)" ( (binary_expression "(byte)to->field_0x2b >> 5 & 1" (binary_expression "(byte)to->field_0x2b >> 5" (cast_expression "(byte)to->field_0x2b" ( (type_descriptor "byte" type_identifier) ) (field_expression "to->field_0x2b" identifier -> field_identifier)) >> number_literal) & number_literal) ))) )))) ;) }) (else_clause "else {\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0xfff1,false);\n  }" else (compound_statement "{\n    uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0xfff1,false);\n  }" { (expression_statement "uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0xfff1,false);" (assignment_expression "uVar3 = symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0xfff1,false)" identifier = (call_expression "symbol_to_bits((uint)((byte)to->field_0x28 >> 4),false,0xfff1,false)" identifier (argument_list "((uint)((byte)to->field_0x28 >> 4),false,0xfff1,false)" ( (call_expression "(uint)((byte)to->field_0x28 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((byte)to->field_0x28 >> 4)" ( (binary_expression "(byte)to->field_0x28 >> 4" (cast_expression "(byte)to->field_0x28" ( (type_descriptor "byte" type_identifier) ) (field_expression "to->field_0x28" identifier -> field_identifier)) >> number_literal) ))) , false , number_literal , false )))) ;) }))))) (if_statement "if ((((to->field_0x28 & 0xf) == 6) != (fromtype == STT_TLS)) &&\n     (((to->field_0x2a & 7) != 0 ||\n      (iVar4 = (*((to->u1_).object)->_vptr_Object[5])((to->u1_).object), iVar4 == 0)))) {\n    pcVar5 = (char *)gettext("symbol \'%s\' used as both __thread and non-__thread");\n    report_resolve_problem(true,pcVar5,to,defined,object);\n  }" if (parenthesized_expression "((((to->field_0x28 & 0xf) == 6) != (fromtype == STT_TLS)) &&\n     (((to->field_0x2a & 7) != 0 ||\n      (iVar4 = (*((to->u1_).object)->_vptr_Object[5])((to->u1_).object), iVar4 == 0))))" ( (binary_expression "(((to->field_0x28 & 0xf) == 6) != (fromtype == STT_TLS)) &&\n     (((to->field_0x2a & 7) != 0 ||\n      (iVar4 = (*((to->u1_).object)->_vptr_Object[5])((to->u1_).object), iVar4 == 0)))" (parenthesized_expression "(((to->field_0x28 & 0xf) == 6) != (fromtype == STT_TLS))" ( (binary_expression "((to->field_0x28 & 0xf) == 6) != (fromtype == STT_TLS)" (parenthesized_expression "((to->field_0x28 & 0xf) == 6)" ( (binary_expression "(to->field_0x28 & 0xf) == 6" (parenthesized_expression "(to->field_0x28 & 0xf)" ( (binary_expression "to->field_0x28 & 0xf" (field_expression "to->field_0x28" identifier -> field_identifier) & number_literal) )) == number_literal) )) != (parenthesized_expression "(fromtype == STT_TLS)" ( (binary_expression "fromtype == STT_TLS" identifier == identifier) ))) )) && (parenthesized_expression "(((to->field_0x2a & 7) != 0 ||\n      (iVar4 = (*((to->u1_).object)->_vptr_Object[5])((to->u1_).object), iVar4 == 0)))" ( (parenthesized_expression "((to->field_0x2a & 7) != 0 ||\n      (iVar4 = (*((to->u1_).object)->_vptr_Object[5])((to->u1_).object), iVar4 == 0))" ( (binary_expression "(to->field_0x2a & 7) != 0 ||\n      (iVar4 = (*((to->u1_).object)->_vptr_Object[5])((to->u1_).object), iVar4 == 0)" (binary_expression "(to->field_0x2a & 7) != 0" (parenthesized_expression "(to->field_0x2a & 7)" ( (binary_expression "to->field_0x2a & 7" (field_expression "to->field_0x2a" identifier -> field_identifier) & number_literal) )) != number_literal) || (parenthesized_expression "(iVar4 = (*((to->u1_).object)->_vptr_Object[5])((to->u1_).object), iVar4 == 0)" ( (comma_expression "iVar4 = (*((to->u1_).object)->_vptr_Object[5])((to->u1_).object), iVar4 == 0" (assignment_expression "iVar4 = (*((to->u1_).object)->_vptr_Object[5])((to->u1_).object)" identifier = (call_expression "(*((to->u1_).object)->_vptr_Object[5])((to->u1_).object)" (parenthesized_expression "(*((to->u1_).object)->_vptr_Object[5])" ( (pointer_expression "*((to->u1_).object)->_vptr_Object[5]" * (subscript_expression "((to->u1_).object)->_vptr_Object[5]" (field_expression "((to->u1_).object)->_vptr_Object" (parenthesized_expression "((to->u1_).object)" ( (field_expression "(to->u1_).object" (parenthesized_expression "(to->u1_)" ( (field_expression "to->u1_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "((to->u1_).object)" ( (field_expression "(to->u1_).object" (parenthesized_expression "(to->u1_)" ( (field_expression "to->u1_" identifier -> field_identifier) )) . field_identifier) )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n    pcVar5 = (char *)gettext("symbol \'%s\' used as both __thread and non-__thread");\n    report_resolve_problem(true,pcVar5,to,defined,object);\n  }" { (expression_statement "pcVar5 = (char *)gettext("symbol \'%s\' used as both __thread and non-__thread");" (assignment_expression "pcVar5 = (char *)gettext("symbol \'%s\' used as both __thread and non-__thread")" identifier = (cast_expression "(char *)gettext("symbol \'%s\' used as both __thread and non-__thread")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("symbol \'%s\' used as both __thread and non-__thread")" identifier (argument_list "("symbol \'%s\' used as both __thread and non-__thread")" ( (string_literal ""symbol \'%s\' used as both __thread and non-__thread"" " string_content escape_sequence string_content escape_sequence string_content ") ))))) ;) (expression_statement "report_resolve_problem(true,pcVar5,to,defined,object);" (call_expression "report_resolve_problem(true,pcVar5,to,defined,object)" identifier (argument_list "(true,pcVar5,to,defined,object)" ( true , identifier , identifier , identifier , identifier ))) ;) })) (switch_statement "switch(frombits + uVar3 * 0x10) {\n  case 0:\n    if ((to->field_0x2a & 7) == 0) {\n      this = ((to->u1_).object)->input_file_;\n      if (this == (Input_file *)0x0) goto LAB_00163949;\n      bVar6 = Input_file::just_symbols(this);\n      if (bVar6) {\n        return false;\n      }\n    }\n    if (object != (Object *)0x0) {\n      if (object->input_file_ == (Input_file *)0x0) {\nLAB_00163949:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");\n      }\n      bVar6 = Input_file::just_symbols(object->input_file_);\n      if (bVar6) {\n        return false;\n      }\n    }\n    if (parameters->options_ == (General_options *)0x0) goto LAB_00163962;\n    if ((parameters->options_->muldefs_).value == false) {\n      pcVar5 = (char *)gettext("multiple definition of \'%s\'");\n      report_resolve_problem(true,pcVar5,to,defined,object);\n      return false;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    if (parameters->options_ != (General_options *)0x0) {\n      if ((parameters->options_->warn_common_).value != false) {\n        pcVar5 = (char *)gettext("common \'%s\' overridden by previous definition");\n        report_resolve_problem(false,pcVar5,to,defined,object);\n        return false;\n      }\n      return false;\n    }\n    goto LAB_00163962;\n  default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/resolve.cc",0x379,"should_override");\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return true;\n  case 0x22:\n  case 0x32:\n    if ((to->field_0x2a & 7) != 0) {\nLAB_00163930:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n    }\n    if (((Output_segment *)object == (to->u1_).output_segment) &&\n       (bVar6 = to->version_ == (char *)0x0 && is_default_version, bVar6)) {\n      return bVar6;\n    }\n    if (-1 < (char)to->field_0x2a) {\n      return false;\n    }\n    if ((to->field_0x2c & 2) == 0) {\n      return false;\n    }\n    bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_end_of_storage;\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    if (-1 < (char)to->field_0x2a) {\n      return false;\n    }\n    if ((to->field_0x2c & 2) == 0) {\n      return false;\n    }\n    if ((to->field_0x2a & 7) != 0) goto LAB_00163930;\n    bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_end_of_storage;\njoined_r0x00163817:\n    if ((bVar2 & 0x40) != 0) {\n      return (bool)(bVar2 >> 1 & 1 ^ 1);\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *adjust_dyndef = true;\n    return false;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *adjust_dyndef = true;\n    return true;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    if (parameters->options_ != (General_options *)0x0) {\n      cVar1 = (parameters->options_->warn_common_).value;\n      if ((bool)cVar1 == false) {\n        return true;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\nLAB_001636fb:\n      pcVar5 = (char *)gettext(pcVar5);\n      report_resolve_problem(false,pcVar5,to,defined,object);\n      return (bool)cVar1;\n    }\n    goto LAB_00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *adjust_common_sizes = true;\n    break;\n  case 0xa1:\n  case 0xb1:\n    if (parameters->options_ != (General_options *)0x0) {\n      cVar1 = (parameters->options_->warn_common_).value;\n      if ((bool)cVar1 == false) {\n        return true;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto LAB_001636fb;\n    }\nLAB_00163962:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  case 0xa8:\n  case 0xb8:\n    *adjust_common_sizes = true;\n    return true;\n  }" switch (parenthesized_expression "(frombits + uVar3 * 0x10)" ( (binary_expression "frombits + uVar3 * 0x10" identifier + (binary_expression "uVar3 * 0x10" identifier * number_literal)) )) (compound_statement "{\n  case 0:\n    if ((to->field_0x2a & 7) == 0) {\n      this = ((to->u1_).object)->input_file_;\n      if (this == (Input_file *)0x0) goto LAB_00163949;\n      bVar6 = Input_file::just_symbols(this);\n      if (bVar6) {\n        return false;\n      }\n    }\n    if (object != (Object *)0x0) {\n      if (object->input_file_ == (Input_file *)0x0) {\nLAB_00163949:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");\n      }\n      bVar6 = Input_file::just_symbols(object->input_file_);\n      if (bVar6) {\n        return false;\n      }\n    }\n    if (parameters->options_ == (General_options *)0x0) goto LAB_00163962;\n    if ((parameters->options_->muldefs_).value == false) {\n      pcVar5 = (char *)gettext("multiple definition of \'%s\'");\n      report_resolve_problem(true,pcVar5,to,defined,object);\n      return false;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    if (parameters->options_ != (General_options *)0x0) {\n      if ((parameters->options_->warn_common_).value != false) {\n        pcVar5 = (char *)gettext("common \'%s\' overridden by previous definition");\n        report_resolve_problem(false,pcVar5,to,defined,object);\n        return false;\n      }\n      return false;\n    }\n    goto LAB_00163962;\n  default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/resolve.cc",0x379,"should_override");\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return true;\n  case 0x22:\n  case 0x32:\n    if ((to->field_0x2a & 7) != 0) {\nLAB_00163930:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n    }\n    if (((Output_segment *)object == (to->u1_).output_segment) &&\n       (bVar6 = to->version_ == (char *)0x0 && is_default_version, bVar6)) {\n      return bVar6;\n    }\n    if (-1 < (char)to->field_0x2a) {\n      return false;\n    }\n    if ((to->field_0x2c & 2) == 0) {\n      return false;\n    }\n    bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_end_of_storage;\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    if (-1 < (char)to->field_0x2a) {\n      return false;\n    }\n    if ((to->field_0x2c & 2) == 0) {\n      return false;\n    }\n    if ((to->field_0x2a & 7) != 0) goto LAB_00163930;\n    bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_end_of_storage;\njoined_r0x00163817:\n    if ((bVar2 & 0x40) != 0) {\n      return (bool)(bVar2 >> 1 & 1 ^ 1);\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *adjust_dyndef = true;\n    return false;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *adjust_dyndef = true;\n    return true;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    if (parameters->options_ != (General_options *)0x0) {\n      cVar1 = (parameters->options_->warn_common_).value;\n      if ((bool)cVar1 == false) {\n        return true;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\nLAB_001636fb:\n      pcVar5 = (char *)gettext(pcVar5);\n      report_resolve_problem(false,pcVar5,to,defined,object);\n      return (bool)cVar1;\n    }\n    goto LAB_00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *adjust_common_sizes = true;\n    break;\n  case 0xa1:\n  case 0xb1:\n    if (parameters->options_ != (General_options *)0x0) {\n      cVar1 = (parameters->options_->warn_common_).value;\n      if ((bool)cVar1 == false) {\n        return true;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto LAB_001636fb;\n    }\nLAB_00163962:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  case 0xa8:\n  case 0xb8:\n    *adjust_common_sizes = true;\n    return true;\n  }" { (case_statement "case 0:\n    if ((to->field_0x2a & 7) == 0) {\n      this = ((to->u1_).object)->input_file_;\n      if (this == (Input_file *)0x0) goto LAB_00163949;\n      bVar6 = Input_file::just_symbols(this);\n      if (bVar6) {\n        return false;\n      }\n    }\n    if (object != (Object *)0x0) {\n      if (object->input_file_ == (Input_file *)0x0) {\nLAB_00163949:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");\n      }\n      bVar6 = Input_file::just_symbols(object->input_file_);\n      if (bVar6) {\n        return false;\n      }\n    }\n    if (parameters->options_ == (General_options *)0x0) goto LAB_00163962;\n    if ((parameters->options_->muldefs_).value == false) {\n      pcVar5 = (char *)gettext("multiple definition of \'%s\'");\n      report_resolve_problem(true,pcVar5,to,defined,object);\n      return false;\n    }\n    break;" case number_literal : (if_statement "if ((to->field_0x2a & 7) == 0) {\n      this = ((to->u1_).object)->input_file_;\n      if (this == (Input_file *)0x0) goto LAB_00163949;\n      bVar6 = Input_file::just_symbols(this);\n      if (bVar6) {\n        return false;\n      }\n    }" if (parenthesized_expression "((to->field_0x2a & 7) == 0)" ( (binary_expression "(to->field_0x2a & 7) == 0" (parenthesized_expression "(to->field_0x2a & 7)" ( (binary_expression "to->field_0x2a & 7" (field_expression "to->field_0x2a" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      this = ((to->u1_).object)->input_file_;\n      if (this == (Input_file *)0x0) goto LAB_00163949;\n      bVar6 = Input_file::just_symbols(this);\n      if (bVar6) {\n        return false;\n      }\n    }" { (expression_statement "this = ((to->u1_).object)->input_file_;" (assignment_expression "this = ((to->u1_).object)->input_file_" identifier = (field_expression "((to->u1_).object)->input_file_" (parenthesized_expression "((to->u1_).object)" ( (field_expression "(to->u1_).object" (parenthesized_expression "(to->u1_)" ( (field_expression "to->u1_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (if_statement "if (this == (Input_file *)0x0) goto LAB_00163949;" if (parenthesized_expression "(this == (Input_file *)0x0)" ( (binary_expression "this == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00163949;" goto statement_identifier ;)) (ERROR "bVar6 = Input_file::" (assignment_expression "bVar6 = Input_file" identifier = identifier) : :) (expression_statement "just_symbols(this);" (call_expression "just_symbols(this)" identifier (argument_list "(this)" ( identifier ))) ;) (if_statement "if (bVar6) {\n        return false;\n      }" if (parenthesized_expression "(bVar6)" ( identifier )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) })) (if_statement "if (object != (Object *)0x0) {\n      if (object->input_file_ == (Input_file *)0x0) {\nLAB_00163949:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");\n      }\n      bVar6 = Input_file::just_symbols(object->input_file_);\n      if (bVar6) {\n        return false;\n      }\n    }" if (parenthesized_expression "(object != (Object *)0x0)" ( (binary_expression "object != (Object *)0x0" identifier != (cast_expression "(Object *)0x0" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (object->input_file_ == (Input_file *)0x0) {\nLAB_00163949:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");\n      }\n      bVar6 = Input_file::just_symbols(object->input_file_);\n      if (bVar6) {\n        return false;\n      }\n    }" { (if_statement "if (object->input_file_ == (Input_file *)0x0) {\nLAB_00163949:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");\n      }" if (parenthesized_expression "(object->input_file_ == (Input_file *)0x0)" ( (binary_expression "object->input_file_ == (Input_file *)0x0" (field_expression "object->input_file_" identifier -> field_identifier) == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00163949:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");\n      }" { (labeled_statement "LAB_00163949:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");" (call_expression "do_gold_unreachable("../../gold/object.h",0x1ea,"input_file")" identifier (argument_list "("../../gold/object.h",0x1ea,"input_file")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""input_file"" " string_content ") ))) ;)) })) (ERROR "bVar6 = Input_file::" (assignment_expression "bVar6 = Input_file" identifier = identifier) : :) (expression_statement "just_symbols(object->input_file_);" (call_expression "just_symbols(object->input_file_)" identifier (argument_list "(object->input_file_)" ( (field_expression "object->input_file_" identifier -> field_identifier) ))) ;) (if_statement "if (bVar6) {\n        return false;\n      }" if (parenthesized_expression "(bVar6)" ( identifier )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) })) (if_statement "if (parameters->options_ == (General_options *)0x0) goto LAB_00163962;" 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)) )) (goto_statement "goto LAB_00163962;" goto statement_identifier ;)) (if_statement "if ((parameters->options_->muldefs_).value == false) {\n      pcVar5 = (char *)gettext("multiple definition of \'%s\'");\n      report_resolve_problem(true,pcVar5,to,defined,object);\n      return false;\n    }" if (parenthesized_expression "((parameters->options_->muldefs_).value == false)" ( (binary_expression "(parameters->options_->muldefs_).value == false" (field_expression "(parameters->options_->muldefs_).value" (parenthesized_expression "(parameters->options_->muldefs_)" ( (field_expression "parameters->options_->muldefs_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n      pcVar5 = (char *)gettext("multiple definition of \'%s\'");\n      report_resolve_problem(true,pcVar5,to,defined,object);\n      return false;\n    }" { (expression_statement "pcVar5 = (char *)gettext("multiple definition of \'%s\'");" (assignment_expression "pcVar5 = (char *)gettext("multiple definition of \'%s\'")" identifier = (cast_expression "(char *)gettext("multiple definition of \'%s\'")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("multiple definition of \'%s\'")" identifier (argument_list "("multiple definition of \'%s\'")" ( (string_literal ""multiple definition of \'%s\'"" " string_content escape_sequence string_content escape_sequence ") ))))) ;) (expression_statement "report_resolve_problem(true,pcVar5,to,defined,object);" (call_expression "report_resolve_problem(true,pcVar5,to,defined,object)" identifier (argument_list "(true,pcVar5,to,defined,object)" ( true , identifier , identifier , identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (break_statement "break;" break ;)) (case_statement "case 1:" case number_literal :) (case_statement "case 2:" case number_literal :) (case_statement "case 3:" case number_literal :) (case_statement "case 4:" case number_literal :) (case_statement "case 5:" case number_literal :) (case_statement "case 6:" case number_literal :) (case_statement "case 7:" case number_literal :) (case_statement "case 9:" case number_literal :) (case_statement "case 10:" case number_literal :) (case_statement "case 0xb:" case number_literal :) (case_statement "case 0x11:" case number_literal :) (case_statement "case 0x12:" case number_literal :) (case_statement "case 0x13:" case number_literal :) (case_statement "case 0x14:" case number_literal :) (case_statement "case 0x15:" case number_literal :) (case_statement "case 0x16:" case number_literal :) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x19:" case number_literal :) (case_statement "case 0x1a:" case number_literal :) (case_statement "case 0x1b:" case number_literal :) (case_statement "case 0x26:" case number_literal :) (case_statement "case 0x27:" case number_literal :) (case_statement "case 0x29:" case number_literal :) (case_statement "case 0x2a:" case number_literal :) (case_statement "case 0x2b:" case number_literal :) (case_statement "case 0x36:" case number_literal :) (case_statement "case 0x37:" case number_literal :) (case_statement "case 0x39:" case number_literal :) (case_statement "case 0x3a:" case number_literal :) (case_statement "case 0x3b:" case number_literal :) (case_statement "case 0x44:" case number_literal :) (case_statement "case 0x45:" case number_literal :) (case_statement "case 0x46:" case number_literal :) (case_statement "case 0x47:" case number_literal :) (case_statement "case 0x55:" case number_literal :) (case_statement "case 0x56:" case number_literal :) (case_statement "case 0x57:" case number_literal :) (case_statement "case 0x65:" case number_literal :) (case_statement "case 0x66:" case number_literal :) (case_statement "case 0x67:" case number_literal :) (case_statement "case 0x76:" case number_literal :) (case_statement "case 0x77:" case number_literal :) (case_statement "case 0x81:" case number_literal :) (case_statement "case 0x82:" case number_literal :) (case_statement "case 0x83:" case number_literal :) (case_statement "case 0x84:" case number_literal :) (case_statement "case 0x85:" case number_literal :) (case_statement "case 0x86:" case number_literal :) (case_statement "case 0x87:" case number_literal :) (case_statement "case 0x89:" case number_literal :) (case_statement "case 0x91:" case number_literal :) (case_statement "case 0x92:" case number_literal :) (case_statement "case 0x93:" case number_literal :) (case_statement "case 0x94:" case number_literal :) (case_statement "case 0x95:" case number_literal :) (case_statement "case 0x96:" case number_literal :) (case_statement "case 0x97:" case number_literal :) (case_statement "case 0x99:" case number_literal :) (case_statement "case 0xa4:" case number_literal :) (case_statement "case 0xa5:" case number_literal :) (case_statement "case 0xa6:" case number_literal :) (case_statement "case 0xa7:" case number_literal :) (case_statement "case 0xa9:" case number_literal :) (case_statement "case 0xb4:" case number_literal :) (case_statement "case 0xb5:" case number_literal :) (case_statement "case 0xb6:" case number_literal :) (case_statement "case 0xb7:" case number_literal :) (case_statement "case 0xb9:\n    break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 8:\n    if (parameters->options_ != (General_options *)0x0) {\n      if ((parameters->options_->warn_common_).value != false) {\n        pcVar5 = (char *)gettext("common \'%s\' overridden by previous definition");\n        report_resolve_problem(false,pcVar5,to,defined,object);\n        return false;\n      }\n      return false;\n    }\n    goto LAB_00163962;" case number_literal : (if_statement "if (parameters->options_ != (General_options *)0x0) {\n      if ((parameters->options_->warn_common_).value != false) {\n        pcVar5 = (char *)gettext("common \'%s\' overridden by previous definition");\n        report_resolve_problem(false,pcVar5,to,defined,object);\n        return false;\n      }\n      return false;\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_->warn_common_).value != false) {\n        pcVar5 = (char *)gettext("common \'%s\' overridden by previous definition");\n        report_resolve_problem(false,pcVar5,to,defined,object);\n        return false;\n      }\n      return false;\n    }" { (if_statement "if ((parameters->options_->warn_common_).value != false) {\n        pcVar5 = (char *)gettext("common \'%s\' overridden by previous definition");\n        report_resolve_problem(false,pcVar5,to,defined,object);\n        return false;\n      }" if (parenthesized_expression "((parameters->options_->warn_common_).value != false)" ( (binary_expression "(parameters->options_->warn_common_).value != false" (field_expression "(parameters->options_->warn_common_).value" (parenthesized_expression "(parameters->options_->warn_common_)" ( (field_expression "parameters->options_->warn_common_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n        pcVar5 = (char *)gettext("common \'%s\' overridden by previous definition");\n        report_resolve_problem(false,pcVar5,to,defined,object);\n        return false;\n      }" { (expression_statement "pcVar5 = (char *)gettext("common \'%s\' overridden by previous definition");" (assignment_expression "pcVar5 = (char *)gettext("common \'%s\' overridden by previous definition")" identifier = (cast_expression "(char *)gettext("common \'%s\' overridden by previous definition")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("common \'%s\' overridden by previous definition")" identifier (argument_list "("common \'%s\' overridden by previous definition")" ( (string_literal ""common \'%s\' overridden by previous definition"" " string_content escape_sequence string_content escape_sequence string_content ") ))))) ;) (expression_statement "report_resolve_problem(false,pcVar5,to,defined,object);" (call_expression "report_resolve_problem(false,pcVar5,to,defined,object)" identifier (argument_list "(false,pcVar5,to,defined,object)" ( false , identifier , identifier , identifier , identifier ))) ;) (return_statement "return false;" return false ;) })) (return_statement "return false;" return false ;) })) (goto_statement "goto LAB_00163962;" goto statement_identifier ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/resolve.cc",0x379,"should_override");" default : comment (expression_statement "do_gold_unreachable("../../gold/resolve.cc",0x379,"should_override");" (call_expression "do_gold_unreachable("../../gold/resolve.cc",0x379,"should_override")" identifier (argument_list "("../../gold/resolve.cc",0x379,"should_override")" ( (string_literal ""../../gold/resolve.cc"" " string_content ") , number_literal , (string_literal ""should_override"" " string_content ") ))) ;)) (case_statement "case 0x10:" case number_literal :) (case_statement "case 0x18:" case number_literal :) (case_statement "case 0x20:" case number_literal :) (case_statement "case 0x21:" case number_literal :) (case_statement "case 0x28:" case number_literal :) (case_statement "case 0x30:" case number_literal :) (case_statement "case 0x31:" case number_literal :) (case_statement "case 0x38:" case number_literal :) (case_statement "case 0x40:" case number_literal :) (case_statement "case 0x41:" case number_literal :) (case_statement "case 0x42:" case number_literal :) (case_statement "case 0x48:" case number_literal :) (case_statement "case 0x49:" case number_literal :) (case_statement "case 0x4a:" case number_literal :) (case_statement "case 0x4b:" case number_literal :) (case_statement "case 0x50:" case number_literal :) (case_statement "case 0x51:" case number_literal :) (case_statement "case 0x54:" case number_literal :) (case_statement "case 0x58:" case number_literal :) (case_statement "case 0x59:" case number_literal :) (case_statement "case 0x5a:" case number_literal :) (case_statement "case 0x5b:" case number_literal :) (case_statement "case 0x60:" case number_literal :) (case_statement "case 0x61:" case number_literal :) (case_statement "case 0x62:" case number_literal :) (case_statement "case 99:" case number_literal :) (case_statement "case 100:" case number_literal :) (case_statement "case 0x68:" case number_literal :) (case_statement "case 0x69:" case number_literal :) (case_statement "case 0x6a:" case number_literal :) (case_statement "case 0x6b:" case number_literal :) (case_statement "case 0x70:" case number_literal :) (case_statement "case 0x71:" case number_literal :) (case_statement "case 0x72:" case number_literal :) (case_statement "case 0x73:" case number_literal :) (case_statement "case 0x74:" case number_literal :) (case_statement "case 0x75:" case number_literal :) (case_statement "case 0x78:" case number_literal :) (case_statement "case 0x79:" case number_literal :) (case_statement "case 0x7a:" case number_literal :) (case_statement "case 0x7b:" case number_literal :) (case_statement "case 0x98:\n    return true;" case number_literal : (return_statement "return true;" return true ;)) (case_statement "case 0x22:" case number_literal :) (case_statement "case 0x32:\n    if ((to->field_0x2a & 7) != 0) {\nLAB_00163930:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n    }\n    if (((Output_segment *)object == (to->u1_).output_segment) &&\n       (bVar6 = to->version_ == (char *)0x0 && is_default_version, bVar6)) {\n      return bVar6;\n    }\n    if (-1 < (char)to->field_0x2a) {\n      return false;\n    }\n    if ((to->field_0x2c & 2) == 0) {\n      return false;\n    }\n    bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_end_of_storage;\n    goto joined_r0x00163817;" case number_literal : (if_statement "if ((to->field_0x2a & 7) != 0) {\nLAB_00163930:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n    }" if (parenthesized_expression "((to->field_0x2a & 7) != 0)" ( (binary_expression "(to->field_0x2a & 7) != 0" (parenthesized_expression "(to->field_0x2a & 7)" ( (binary_expression "to->field_0x2a & 7" (field_expression "to->field_0x2a" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00163930:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n    }" { (labeled_statement "LAB_00163930:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xa1,"object");" statement_identifier : 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 ") ))) ;)) })) (if_statement "if (((Output_segment *)object == (to->u1_).output_segment) &&\n       (bVar6 = to->version_ == (char *)0x0 && is_default_version, bVar6)) {\n      return bVar6;\n    }" if (parenthesized_expression "(((Output_segment *)object == (to->u1_).output_segment) &&\n       (bVar6 = to->version_ == (char *)0x0 && is_default_version, bVar6))" ( (binary_expression "((Output_segment *)object == (to->u1_).output_segment) &&\n       (bVar6 = to->version_ == (char *)0x0 && is_default_version, bVar6)" (parenthesized_expression "((Output_segment *)object == (to->u1_).output_segment)" ( (binary_expression "(Output_segment *)object == (to->u1_).output_segment" (cast_expression "(Output_segment *)object" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (field_expression "(to->u1_).output_segment" (parenthesized_expression "(to->u1_)" ( (field_expression "to->u1_" identifier -> field_identifier) )) . field_identifier)) )) && (parenthesized_expression "(bVar6 = to->version_ == (char *)0x0 && is_default_version, bVar6)" ( (comma_expression "bVar6 = to->version_ == (char *)0x0 && is_default_version, bVar6" (assignment_expression "bVar6 = to->version_ == (char *)0x0 && is_default_version" identifier = (binary_expression "to->version_ == (char *)0x0 && is_default_version" (binary_expression "to->version_ == (char *)0x0" (field_expression "to->version_" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && identifier)) , identifier) ))) )) (compound_statement "{\n      return bVar6;\n    }" { (return_statement "return bVar6;" return identifier ;) })) (if_statement "if (-1 < (char)to->field_0x2a) {\n      return false;\n    }" if (parenthesized_expression "(-1 < (char)to->field_0x2a)" ( (binary_expression "-1 < (char)to->field_0x2a" number_literal < (cast_expression "(char)to->field_0x2a" ( (type_descriptor "char" primitive_type) ) (field_expression "to->field_0x2a" identifier -> field_identifier))) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if ((to->field_0x2c & 2) == 0) {\n      return false;\n    }" if (parenthesized_expression "((to->field_0x2c & 2) == 0)" ( (binary_expression "(to->field_0x2c & 2) == 0" (parenthesized_expression "(to->field_0x2c & 2)" ( (binary_expression "to->field_0x2c & 2" (field_expression "to->field_0x2c" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (expression_statement "bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_end_of_storage;" (field_expression "bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_end_of_storage" (field_expression "bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl" (binary_expression "bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std" (assignment_expression "bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold" identifier = (binary_expression "*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold" (pointer_expression "*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base" * (cast_expression "(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base" & (field_expression "((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base" (subscript_expression "((to->u1_).output_segment)->output_lists_[3]" (field_expression "((to->u1_).output_segment)->output_lists_" (parenthesized_expression "((to->u1_).output_segment)" ( (field_expression "(to->u1_).output_segment" (parenthesized_expression "(to->u1_)" ( (field_expression "to->u1_" 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) ;) (goto_statement "goto joined_r0x00163817;" goto statement_identifier ;)) (case_statement "case 0x23:" case number_literal :) (case_statement "case 0x33:" case number_literal :) (case_statement "case 0xa2:" case number_literal :) (case_statement "case 0xa3:" case number_literal :) (case_statement "case 0xb2:" case number_literal :) (case_statement "case 0xb3:\n    if (-1 < (char)to->field_0x2a) {\n      return false;\n    }\n    if ((to->field_0x2c & 2) == 0) {\n      return false;\n    }\n    if ((to->field_0x2a & 7) != 0) goto LAB_00163930;\n    bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_end_of_storage;\njoined_r0x00163817:\n    if ((bVar2 & 0x40) != 0) {\n      return (bool)(bVar2 >> 1 & 1 ^ 1);\n    }\n    break;" case number_literal : (if_statement "if (-1 < (char)to->field_0x2a) {\n      return false;\n    }" if (parenthesized_expression "(-1 < (char)to->field_0x2a)" ( (binary_expression "-1 < (char)to->field_0x2a" number_literal < (cast_expression "(char)to->field_0x2a" ( (type_descriptor "char" primitive_type) ) (field_expression "to->field_0x2a" identifier -> field_identifier))) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if ((to->field_0x2c & 2) == 0) {\n      return false;\n    }" if (parenthesized_expression "((to->field_0x2c & 2) == 0)" ( (binary_expression "(to->field_0x2c & 2) == 0" (parenthesized_expression "(to->field_0x2c & 2)" ( (binary_expression "to->field_0x2c & 2" (field_expression "to->field_0x2c" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if ((to->field_0x2a & 7) != 0) goto LAB_00163930;" if (parenthesized_expression "((to->field_0x2a & 7) != 0)" ( (binary_expression "(to->field_0x2a & 7) != 0" (parenthesized_expression "(to->field_0x2a & 7)" ( (binary_expression "to->field_0x2a & 7" (field_expression "to->field_0x2a" identifier -> field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00163930;" goto statement_identifier ;)) (expression_statement "bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_end_of_storage;" (field_expression "bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_end_of_storage" (field_expression "bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl" (binary_expression "bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold::Output_data*,_std" (assignment_expression "bVar2 = *(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold" identifier = (binary_expression "*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base<gold" (pointer_expression "*(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base" * (cast_expression "(byte *)&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base" & (field_expression "((to->u1_).output_segment)->output_lists_[3].\n                      super__Vector_base" (subscript_expression "((to->u1_).output_segment)->output_lists_[3]" (field_expression "((to->u1_).output_segment)->output_lists_" (parenthesized_expression "((to->u1_).output_segment)" ( (field_expression "(to->u1_).output_segment" (parenthesized_expression "(to->u1_)" ( (field_expression "to->u1_" 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) ;) (labeled_statement "joined_r0x00163817:\n    if ((bVar2 & 0x40) != 0) {\n      return (bool)(bVar2 >> 1 & 1 ^ 1);\n    }" statement_identifier : (if_statement "if ((bVar2 & 0x40) != 0) {\n      return (bool)(bVar2 >> 1 & 1 ^ 1);\n    }" if (parenthesized_expression "((bVar2 & 0x40) != 0)" ( (binary_expression "(bVar2 & 0x40) != 0" (parenthesized_expression "(bVar2 & 0x40)" ( (binary_expression "bVar2 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      return (bool)(bVar2 >> 1 & 1 ^ 1);\n    }" { (return_statement "return (bool)(bVar2 >> 1 & 1 ^ 1);" return (cast_expression "(bool)(bVar2 >> 1 & 1 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar2 >> 1 & 1 ^ 1)" ( (binary_expression "bVar2 >> 1 & 1 ^ 1" (binary_expression "bVar2 >> 1 & 1" (binary_expression "bVar2 >> 1" identifier >> number_literal) & number_literal) ^ number_literal) ))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x24:" case number_literal :) (case_statement "case 0x25:" case number_literal :) (case_statement "case 0x34:" case number_literal :) (case_statement "case 0x35:\n    *adjust_dyndef = true;\n    return false;" case number_literal : (expression_statement "*adjust_dyndef = true;" (assignment_expression "*adjust_dyndef = true" (pointer_expression "*adjust_dyndef" * identifier) = true) ;) (return_statement "return false;" return false ;)) (case_statement "case 0x43:" case number_literal :) (case_statement "case 0x52:" case number_literal :) (case_statement "case 0x53:\n    *adjust_dyndef = true;\n    return true;" case number_literal : (expression_statement "*adjust_dyndef = true;" (assignment_expression "*adjust_dyndef = true" (pointer_expression "*adjust_dyndef" * identifier) = true) ;) (return_statement "return true;" return true ;)) (case_statement "case 0x80:" case number_literal :) (case_statement "case 0x90:" case number_literal :) (case_statement "case 0xa0:" case number_literal :) (case_statement "case 0xb0:\n    if (parameters->options_ != (General_options *)0x0) {\n      cVar1 = (parameters->options_->warn_common_).value;\n      if ((bool)cVar1 == false) {\n        return true;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\nLAB_001636fb:\n      pcVar5 = (char *)gettext(pcVar5);\n      report_resolve_problem(false,pcVar5,to,defined,object);\n      return (bool)cVar1;\n    }\n    goto LAB_00163962;" case number_literal : (if_statement "if (parameters->options_ != (General_options *)0x0) {\n      cVar1 = (parameters->options_->warn_common_).value;\n      if ((bool)cVar1 == false) {\n        return true;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\nLAB_001636fb:\n      pcVar5 = (char *)gettext(pcVar5);\n      report_resolve_problem(false,pcVar5,to,defined,object);\n      return (bool)cVar1;\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      cVar1 = (parameters->options_->warn_common_).value;\n      if ((bool)cVar1 == false) {\n        return true;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\nLAB_001636fb:\n      pcVar5 = (char *)gettext(pcVar5);\n      report_resolve_problem(false,pcVar5,to,defined,object);\n      return (bool)cVar1;\n    }" { (expression_statement "cVar1 = (parameters->options_->warn_common_).value;" (assignment_expression "cVar1 = (parameters->options_->warn_common_).value" identifier = (field_expression "(parameters->options_->warn_common_).value" (parenthesized_expression "(parameters->options_->warn_common_)" ( (field_expression "parameters->options_->warn_common_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bool)cVar1 == false) {\n        return true;\n      }" if (parenthesized_expression "((bool)cVar1 == false)" ( (binary_expression "(bool)cVar1 == false" (cast_expression "(bool)cVar1" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) (expression_statement "pcVar5 = "definition of \'%s\' overriding common";" (assignment_expression "pcVar5 = "definition of \'%s\' overriding common"" identifier = (string_literal ""definition of \'%s\' overriding common"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (labeled_statement "LAB_001636fb:\n      pcVar5 = (char *)gettext(pcVar5);" statement_identifier : (expression_statement "pcVar5 = (char *)gettext(pcVar5);" (assignment_expression "pcVar5 = (char *)gettext(pcVar5)" identifier = (cast_expression "(char *)gettext(pcVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))))) ;)) (expression_statement "report_resolve_problem(false,pcVar5,to,defined,object);" (call_expression "report_resolve_problem(false,pcVar5,to,defined,object)" identifier (argument_list "(false,pcVar5,to,defined,object)" ( false , identifier , identifier , identifier , identifier ))) ;) (return_statement "return (bool)cVar1;" return (cast_expression "(bool)cVar1" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })) (goto_statement "goto LAB_00163962;" goto statement_identifier ;)) (case_statement "case 0x88:" case number_literal :) (case_statement "case 0x8a:" case number_literal :) (case_statement "case 0x8b:" case number_literal :) (case_statement "case 0x9a:" case number_literal :) (case_statement "case 0x9b:" case number_literal :) (case_statement "case 0xaa:" case number_literal :) (case_statement "case 0xab:" case number_literal :) (case_statement "case 0xba:" case number_literal :) (case_statement "case 0xbb:\n    *adjust_common_sizes = true;\n    break;" case number_literal : (expression_statement "*adjust_common_sizes = true;" (assignment_expression "*adjust_common_sizes = true" (pointer_expression "*adjust_common_sizes" * identifier) = true) ;) (break_statement "break;" break ;)) (case_statement "case 0xa1:" case number_literal :) (case_statement "case 0xb1:\n    if (parameters->options_ != (General_options *)0x0) {\n      cVar1 = (parameters->options_->warn_common_).value;\n      if ((bool)cVar1 == false) {\n        return true;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto LAB_001636fb;\n    }\nLAB_00163962:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" case number_literal : (if_statement "if (parameters->options_ != (General_options *)0x0) {\n      cVar1 = (parameters->options_->warn_common_).value;\n      if ((bool)cVar1 == false) {\n        return true;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto LAB_001636fb;\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      cVar1 = (parameters->options_->warn_common_).value;\n      if ((bool)cVar1 == false) {\n        return true;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto LAB_001636fb;\n    }" { (expression_statement "cVar1 = (parameters->options_->warn_common_).value;" (assignment_expression "cVar1 = (parameters->options_->warn_common_).value" identifier = (field_expression "(parameters->options_->warn_common_).value" (parenthesized_expression "(parameters->options_->warn_common_)" ( (field_expression "parameters->options_->warn_common_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bool)cVar1 == false) {\n        return true;\n      }" if (parenthesized_expression "((bool)cVar1 == false)" ( (binary_expression "(bool)cVar1 == false" (cast_expression "(bool)cVar1" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) (expression_statement "pcVar5 = "definition of \'%s\' overriding dynamic common definition";" (assignment_expression "pcVar5 = "definition of \'%s\' overriding dynamic common definition"" identifier = (string_literal ""definition of \'%s\' overriding dynamic common definition"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (goto_statement "goto LAB_001636fb;" goto statement_identifier ;) })) (labeled_statement "LAB_00163962:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : 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 ") ))) ;))) (case_statement "case 0xa8:" case number_literal :) (case_statement "case 0xb8:\n    *adjust_common_sizes = true;\n    return true;" case number_literal : (expression_statement "*adjust_common_sizes = true;" (assignment_expression "*adjust_common_sizes = true" (pointer_expression "*adjust_common_sizes" * identifier) = true) ;) (return_statement "return true;" return true ;)) })) (return_statement "return false;" return false ;) })))
(translation_unit "uint FUN_00163520(int param_1,int param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined1 *param_6,undefined1 *param_7,byte param_8)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  undefined3 uVar6;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  undefined8 uVar7;\n  \n  *param_6 = 0;\n  *param_7 = 0;\n  bVar1 = *(byte *)(param_1 + 0x2a) & 7;\n  if (bVar1 == 4) {\n    uVar7 = FUN_001630f0(1);\n  }\n  else if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }\n  uVar6 = (undefined3)((ulonglong)uVar7 >> 0x28);\n  if ((((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))) {\n    uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");\n    FUN_00163350(1,uVar4,param_1,param_4,param_5);\n    uVar6 = extraout_var_00;\n  }\n  param_2 = param_2 + (int)uVar7 * 0x10;\n  switch(param_2) {\n  case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;\n  default:\n                    \n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return 1;\n  case 0x22:\n  case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *param_7 = 1;\n    return 0;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *param_7 = 1;\n    return 1;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *param_6 = 1;\n    break;\n  case 0xa1:\n  case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);\n  case 0xa8:\n  case 0xb8:\n    *param_6 = 1;\n    return 1;\n  }\n  return 0;\n}\n\n" (function_definition "uint FUN_00163520(int param_1,int param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined1 *param_6,undefined1 *param_7,byte param_8)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  undefined3 uVar6;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  undefined8 uVar7;\n  \n  *param_6 = 0;\n  *param_7 = 0;\n  bVar1 = *(byte *)(param_1 + 0x2a) & 7;\n  if (bVar1 == 4) {\n    uVar7 = FUN_001630f0(1);\n  }\n  else if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }\n  uVar6 = (undefined3)((ulonglong)uVar7 >> 0x28);\n  if ((((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))) {\n    uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");\n    FUN_00163350(1,uVar4,param_1,param_4,param_5);\n    uVar6 = extraout_var_00;\n  }\n  param_2 = param_2 + (int)uVar7 * 0x10;\n  switch(param_2) {\n  case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;\n  default:\n                    \n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return 1;\n  case 0x22:\n  case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *param_7 = 1;\n    return 0;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *param_7 = 1;\n    return 1;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *param_6 = 1;\n    break;\n  case 0xa1:\n  case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);\n  case 0xa8:\n  case 0xb8:\n    *param_6 = 1;\n    return 1;\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_00163520(int param_1,int param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined1 *param_6,undefined1 *param_7,byte param_8)" identifier (parameter_list "(int param_1,int param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined1 *param_6,undefined1 *param_7,byte param_8)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined1 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "undefined1 *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "byte param_8" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  undefined3 uVar6;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  undefined8 uVar7;\n  \n  *param_6 = 0;\n  *param_7 = 0;\n  bVar1 = *(byte *)(param_1 + 0x2a) & 7;\n  if (bVar1 == 4) {\n    uVar7 = FUN_001630f0(1);\n  }\n  else if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }\n  uVar6 = (undefined3)((ulonglong)uVar7 >> 0x28);\n  if ((((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))) {\n    uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");\n    FUN_00163350(1,uVar4,param_1,param_4,param_5);\n    uVar6 = extraout_var_00;\n  }\n  param_2 = param_2 + (int)uVar7 * 0x10;\n  switch(param_2) {\n  case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;\n  default:\n                    \n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return 1;\n  case 0x22:\n  case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *param_7 = 1;\n    return 0;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *param_7 = 1;\n    return 1;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *param_6 = 1;\n    break;\n  case 0xa1:\n  case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);\n  case 0xa8:\n  case 0xb8:\n    *param_6 = 1;\n    return 1;\n  }\n  return 0;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined3 uVar6;" type_identifier identifier ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "undefined3 extraout_var_00;" type_identifier identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) (expression_statement "*param_7 = 0;" (assignment_expression "*param_7 = 0" (pointer_expression "*param_7" * identifier) = number_literal) ;) (expression_statement "bVar1 = *(byte *)(param_1 + 0x2a) & 7;" (assignment_expression "bVar1 = *(byte *)(param_1 + 0x2a) & 7" identifier = (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (bVar1 == 4) {\n    uVar7 = FUN_001630f0(1);\n  }\n  else if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }" if (parenthesized_expression "(bVar1 == 4)" ( (binary_expression "bVar1 == 4" identifier == number_literal) )) (compound_statement "{\n    uVar7 = FUN_001630f0(1);\n  }" { (expression_statement "uVar7 = FUN_001630f0(1);" (assignment_expression "uVar7 = FUN_001630f0(1)" identifier = (call_expression "FUN_001630f0(1)" identifier (argument_list "(1)" ( number_literal )))) ;) }) (else_clause "else if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }" else (if_statement "if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }" { (expression_statement "uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);" (assignment_expression "uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1)" identifier = (call_expression "FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1)" identifier (argument_list "(*(byte *)(param_1 + 0x2b) >> 5 & 1)" ( (binary_expression "*(byte *)(param_1 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(param_1 + 0x2b) >> 5" (pointer_expression "*(byte *)(param_1 + 0x2b)" * (cast_expression "(byte *)(param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2b)" ( (binary_expression "param_1 + 0x2b" identifier + number_literal) )))) >> number_literal) & number_literal) )))) ;) }) (else_clause "else {\n    uVar7 = FUN_001630f0(0);\n  }" else (compound_statement "{\n    uVar7 = FUN_001630f0(0);\n  }" { (expression_statement "uVar7 = FUN_001630f0(0);" (assignment_expression "uVar7 = FUN_001630f0(0)" identifier = (call_expression "FUN_001630f0(0)" identifier (argument_list "(0)" ( number_literal )))) ;) }))))) (expression_statement "uVar6 = (undefined3)((ulonglong)uVar7 >> 0x28);" (assignment_expression "uVar6 = (undefined3)((ulonglong)uVar7 >> 0x28)" identifier = (call_expression "(undefined3)((ulonglong)uVar7 >> 0x28)" (parenthesized_expression "(undefined3)" ( identifier )) (argument_list "((ulonglong)uVar7 >> 0x28)" ( (binary_expression "(ulonglong)uVar7 >> 0x28" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))) {\n    uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");\n    FUN_00163350(1,uVar4,param_1,param_4,param_5);\n    uVar6 = extraout_var_00;\n  }" if (parenthesized_expression "((((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0))))" ( (binary_expression "(((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))" (parenthesized_expression "(((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6))" ( (binary_expression "((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)" (parenthesized_expression "((*(byte *)(param_1 + 0x28) & 0xf) == 6)" ( (binary_expression "(*(byte *)(param_1 + 0x28) & 0xf) == 6" (parenthesized_expression "(*(byte *)(param_1 + 0x28) & 0xf)" ( (binary_expression "*(byte *)(param_1 + 0x28) & 0xf" (pointer_expression "*(byte *)(param_1 + 0x28)" * (cast_expression "(byte *)(param_1 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) & number_literal) )) == number_literal) )) != (parenthesized_expression "(param_3 == 6)" ( (binary_expression "param_3 == 6" identifier == number_literal) ))) )) && (parenthesized_expression "(((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))" ( (parenthesized_expression "((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0))" ( (binary_expression "(*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)" (binary_expression "(*(byte *)(param_1 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2a) & 7)" ( (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "(iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)" ( (comma_expression "iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0" (assignment_expression "iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8))" identifier = (call_expression "(**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8))" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 8) + 0x14))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 8) + 0x14)" * (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 0x14)" * (cast_expression "(code **)(**(int **)(param_1 + 8) + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 8) + 0x14)" ( (binary_expression "**(int **)(param_1 + 8) + 0x14" (pointer_expression "**(int **)(param_1 + 8)" * (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 8))" ( (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )))) , (comma_expression "uVar6 = extraout_var, iVar3 == 0" (assignment_expression "uVar6 = extraout_var" identifier = identifier) , (binary_expression "iVar3 == 0" identifier == number_literal))) ))) )) ))) )) (compound_statement "{\n    uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");\n    FUN_00163350(1,uVar4,param_1,param_4,param_5);\n    uVar6 = extraout_var_00;\n  }" { (expression_statement "uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");" (assignment_expression "uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread")" identifier = (call_expression "gettext("symbol \'%s\' used as both __thread and non-__thread")" identifier (argument_list "("symbol \'%s\' used as both __thread and non-__thread")" ( (string_literal ""symbol \'%s\' used as both __thread and non-__thread"" " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_00163350(1,uVar4,param_1,param_4,param_5);" (call_expression "FUN_00163350(1,uVar4,param_1,param_4,param_5)" identifier (argument_list "(1,uVar4,param_1,param_4,param_5)" ( number_literal , identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar6 = extraout_var_00;" (assignment_expression "uVar6 = extraout_var_00" identifier = identifier) ;) })) (expression_statement "param_2 = param_2 + (int)uVar7 * 0x10;" (assignment_expression "param_2 = param_2 + (int)uVar7 * 0x10" identifier = (binary_expression "param_2 + (int)uVar7 * 0x10" identifier + (binary_expression "(int)uVar7 * 0x10" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (switch_statement "switch(param_2) {\n  case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;\n  default:\n                    \n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return 1;\n  case 0x22:\n  case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *param_7 = 1;\n    return 0;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *param_7 = 1;\n    return 1;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *param_6 = 1;\n    break;\n  case 0xa1:\n  case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);\n  case 0xa8:\n  case 0xb8:\n    *param_6 = 1;\n    return 1;\n  }" switch (parenthesized_expression "(param_2)" ( identifier )) (compound_statement "{\n  case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;\n  default:\n                    \n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return 1;\n  case 0x22:\n  case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *param_7 = 1;\n    return 0;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *param_7 = 1;\n    return 1;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *param_6 = 1;\n    break;\n  case 0xa1:\n  case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);\n  case 0xa8:\n  case 0xb8:\n    *param_6 = 1;\n    return 1;\n  }" { (case_statement "case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;" case number_literal : (if_statement "if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2a) & 7)" ( (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }" { (expression_statement "iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);" (assignment_expression "iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 8) + 0x1c)" * (cast_expression "(int *)(*(int *)(param_1 + 8) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 8) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 8) + 0x1c" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto code_r0x00163949;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00163949;" goto statement_identifier ;)) (expression_statement "cVar2 = FUN_0005cf90(iVar3);" (assignment_expression "cVar2 = FUN_0005cf90(iVar3)" identifier = (call_expression "FUN_0005cf90(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (cVar2 != '\0') {\n        return 0;\n      }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) (if_statement "if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }" { (expression_statement "iVar3 = *(int *)(param_5 + 0x1c);" (assignment_expression "iVar3 = *(int *)(param_5 + 0x1c)" identifier = (pointer_expression "*(int *)(param_5 + 0x1c)" * (cast_expression "(int *)(param_5 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x1c)" ( (binary_expression "param_5 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }" { (labeled_statement "code_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);" statement_identifier : (expression_statement "FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);" (call_expression "FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3)" identifier (argument_list "("../../gold/object.h",0x1ea,"input_file",iVar3)" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""input_file"" " string_content ") , identifier ))) ;)) })) (expression_statement "cVar2 = FUN_0005cf90(iVar3);" (assignment_expression "cVar2 = FUN_0005cf90(iVar3)" identifier = (call_expression "FUN_0005cf90(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (cVar2 != '\0') {\n        return 0;\n      }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "iVar3 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar3 = *(int *)(DAT_00302378 + 8)" identifier = (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto code_r0x00163962;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00163962;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }" if (parenthesized_expression "(*(char *)(iVar3 + 0x525d) == '\0')" ( (binary_expression "*(char *)(iVar3 + 0x525d) == '\0'" (pointer_expression "*(char *)(iVar3 + 0x525d)" * (cast_expression "(char *)(iVar3 + 0x525d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x525d)" ( (binary_expression "iVar3 + 0x525d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }" { (expression_statement "uVar4 = gettext("multiple definition of \'%s\'");" (assignment_expression "uVar4 = gettext("multiple definition of \'%s\'")" identifier = (call_expression "gettext("multiple definition of \'%s\'")" identifier (argument_list "("multiple definition of \'%s\'")" ( (string_literal ""multiple definition of \'%s\'"" " string_content escape_sequence string_content escape_sequence ") )))) ;) (expression_statement "FUN_00163350(1,uVar4,param_1,param_4,param_5);" (call_expression "FUN_00163350(1,uVar4,param_1,param_4,param_5)" identifier (argument_list "(1,uVar4,param_1,param_4,param_5)" ( number_literal , identifier , identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (break_statement "break;" break ;)) (case_statement "case 1:" case number_literal :) (case_statement "case 2:" case number_literal :) (case_statement "case 3:" case number_literal :) (case_statement "case 4:" case number_literal :) (case_statement "case 5:" case number_literal :) (case_statement "case 6:" case number_literal :) (case_statement "case 7:" case number_literal :) (case_statement "case 9:" case number_literal :) (case_statement "case 10:" case number_literal :) (case_statement "case 0xb:" case number_literal :) (case_statement "case 0x11:" case number_literal :) (case_statement "case 0x12:" case number_literal :) (case_statement "case 0x13:" case number_literal :) (case_statement "case 0x14:" case number_literal :) (case_statement "case 0x15:" case number_literal :) (case_statement "case 0x16:" case number_literal :) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x19:" case number_literal :) (case_statement "case 0x1a:" case number_literal :) (case_statement "case 0x1b:" case number_literal :) (case_statement "case 0x26:" case number_literal :) (case_statement "case 0x27:" case number_literal :) (case_statement "case 0x29:" case number_literal :) (case_statement "case 0x2a:" case number_literal :) (case_statement "case 0x2b:" case number_literal :) (case_statement "case 0x36:" case number_literal :) (case_statement "case 0x37:" case number_literal :) (case_statement "case 0x39:" case number_literal :) (case_statement "case 0x3a:" case number_literal :) (case_statement "case 0x3b:" case number_literal :) (case_statement "case 0x44:" case number_literal :) (case_statement "case 0x45:" case number_literal :) (case_statement "case 0x46:" case number_literal :) (case_statement "case 0x47:" case number_literal :) (case_statement "case 0x55:" case number_literal :) (case_statement "case 0x56:" case number_literal :) (case_statement "case 0x57:" case number_literal :) (case_statement "case 0x65:" case number_literal :) (case_statement "case 0x66:" case number_literal :) (case_statement "case 0x67:" case number_literal :) (case_statement "case 0x76:" case number_literal :) (case_statement "case 0x77:" case number_literal :) (case_statement "case 0x81:" case number_literal :) (case_statement "case 0x82:" case number_literal :) (case_statement "case 0x83:" case number_literal :) (case_statement "case 0x84:" case number_literal :) (case_statement "case 0x85:" case number_literal :) (case_statement "case 0x86:" case number_literal :) (case_statement "case 0x87:" case number_literal :) (case_statement "case 0x89:" case number_literal :) (case_statement "case 0x91:" case number_literal :) (case_statement "case 0x92:" case number_literal :) (case_statement "case 0x93:" case number_literal :) (case_statement "case 0x94:" case number_literal :) (case_statement "case 0x95:" case number_literal :) (case_statement "case 0x96:" case number_literal :) (case_statement "case 0x97:" case number_literal :) (case_statement "case 0x99:" case number_literal :) (case_statement "case 0xa4:" case number_literal :) (case_statement "case 0xa5:" case number_literal :) (case_statement "case 0xa6:" case number_literal :) (case_statement "case 0xa7:" case number_literal :) (case_statement "case 0xa9:" case number_literal :) (case_statement "case 0xb4:" case number_literal :) (case_statement "case 0xb5:" case number_literal :) (case_statement "case 0xb6:" case number_literal :) (case_statement "case 0xb7:" case number_literal :) (case_statement "case 0xb9:\n    break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;" case number_literal : (expression_statement "iVar3 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar3 = *(int *)(DAT_00302378 + 8)" identifier = (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }" { (if_statement "if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }" if (parenthesized_expression "(*(char *)(iVar3 + 0x43e5) != '\0')" ( (binary_expression "*(char *)(iVar3 + 0x43e5) != '\0'" (pointer_expression "*(char *)(iVar3 + 0x43e5)" * (cast_expression "(char *)(iVar3 + 0x43e5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43e5)" ( (binary_expression "iVar3 + 0x43e5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }" { (expression_statement "uVar4 = gettext("common \'%s\' overridden by previous definition");" (assignment_expression "uVar4 = gettext("common \'%s\' overridden by previous definition")" identifier = (call_expression "gettext("common \'%s\' overridden by previous definition")" identifier (argument_list "("common \'%s\' overridden by previous definition")" ( (string_literal ""common \'%s\' overridden by previous definition"" " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_00163350(0,uVar4,param_1,param_4,param_5);" (call_expression "FUN_00163350(0,uVar4,param_1,param_4,param_5)" identifier (argument_list "(0,uVar4,param_1,param_4,param_5)" ( number_literal , identifier , identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto code_r0x00163962;" goto statement_identifier ;)) (case_statement "default:\n                    \n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);" default : (expression_statement "FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);" (call_expression "FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2)" identifier (argument_list "("../../gold/resolve.cc",0x379,"should_override",param_2)" ( (string_literal ""../../gold/resolve.cc"" " string_content ") , number_literal , (string_literal ""should_override"" " string_content ") , identifier ))) ;)) (case_statement "case 0x10:" case number_literal :) (case_statement "case 0x18:" case number_literal :) (case_statement "case 0x20:" case number_literal :) (case_statement "case 0x21:" case number_literal :) (case_statement "case 0x28:" case number_literal :) (case_statement "case 0x30:" case number_literal :) (case_statement "case 0x31:" case number_literal :) (case_statement "case 0x38:" case number_literal :) (case_statement "case 0x40:" case number_literal :) (case_statement "case 0x41:" case number_literal :) (case_statement "case 0x42:" case number_literal :) (case_statement "case 0x48:" case number_literal :) (case_statement "case 0x49:" case number_literal :) (case_statement "case 0x4a:" case number_literal :) (case_statement "case 0x4b:" case number_literal :) (case_statement "case 0x50:" case number_literal :) (case_statement "case 0x51:" case number_literal :) (case_statement "case 0x54:" case number_literal :) (case_statement "case 0x58:" case number_literal :) (case_statement "case 0x59:" case number_literal :) (case_statement "case 0x5a:" case number_literal :) (case_statement "case 0x5b:" case number_literal :) (case_statement "case 0x60:" case number_literal :) (case_statement "case 0x61:" case number_literal :) (case_statement "case 0x62:" case number_literal :) (case_statement "case 99:" case number_literal :) (case_statement "case 100:" case number_literal :) (case_statement "case 0x68:" case number_literal :) (case_statement "case 0x69:" case number_literal :) (case_statement "case 0x6a:" case number_literal :) (case_statement "case 0x6b:" case number_literal :) (case_statement "case 0x70:" case number_literal :) (case_statement "case 0x71:" case number_literal :) (case_statement "case 0x72:" case number_literal :) (case_statement "case 0x73:" case number_literal :) (case_statement "case 0x74:" case number_literal :) (case_statement "case 0x75:" case number_literal :) (case_statement "case 0x78:" case number_literal :) (case_statement "case 0x79:" case number_literal :) (case_statement "case 0x7a:" case number_literal :) (case_statement "case 0x7b:" case number_literal :) (case_statement "case 0x98:\n    return 1;" case number_literal : (return_statement "return 1;" return number_literal ;)) (case_statement "case 0x22:" case number_literal :) (case_statement "case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;" case number_literal : (expression_statement "bVar1 = *(byte *)(param_1 + 0x2a);" (assignment_expression "bVar1 = *(byte *)(param_1 + 0x2a)" identifier = (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }" if (parenthesized_expression "((bVar1 & 7) != 0)" ( (binary_expression "(bVar1 & 7) != 0" (parenthesized_expression "(bVar1 & 7)" ( (binary_expression "bVar1 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\ncode_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }" { (labeled_statement "code_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);" statement_identifier : (expression_statement "FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);" (call_expression "FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1)" identifier (argument_list "("../../gold/symtab.h",0xa1,"object",bVar1)" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") , identifier ))) ;)) })) (if_statement "if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }" if (parenthesized_expression "((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0))" ( (binary_expression "(param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)" (parenthesized_expression "(param_5 == *(int *)(param_1 + 8))" ( (binary_expression "param_5 == *(int *)(param_1 + 8)" identifier == (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) && (parenthesized_expression "(param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)" ( (comma_expression "param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0" (assignment_expression "param_8 = *(int *)(param_1 + 4) == 0 & param_8" identifier = (binary_expression "*(int *)(param_1 + 4) == 0 & param_8" (binary_expression "*(int *)(param_1 + 4) == 0" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) == number_literal) & identifier)) , (binary_expression "param_8 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      return CONCAT31(uVar6,param_8);\n    }" { (return_statement "return CONCAT31(uVar6,param_8);" return (call_expression "CONCAT31(uVar6,param_8)" identifier (argument_list "(uVar6,param_8)" ( identifier , identifier ))) ;) })) (if_statement "if (-1 < (char)bVar1) {\n      return 0;\n    }" if (parenthesized_expression "(-1 < (char)bVar1)" ( (binary_expression "-1 < (char)bVar1" number_literal < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 0x2c) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2c) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2c) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x2c) & 2" (pointer_expression "*(byte *)(param_1 + 0x2c)" * (cast_expression "(byte *)(param_1 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);" (assignment_expression "bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c)" identifier = (pointer_expression "*(byte *)(*(int *)(param_1 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(param_1 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 8) + 0x2c" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto joined_r0x00163817;" goto statement_identifier ;)) (case_statement "case 0x23:" case number_literal :) (case_statement "case 0x33:" case number_literal :) (case_statement "case 0xa2:" case number_literal :) (case_statement "case 0xa3:" case number_literal :) (case_statement "case 0xb2:" case number_literal :) (case_statement "case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;" case number_literal : (expression_statement "bVar1 = *(byte *)(param_1 + 0x2a);" (assignment_expression "bVar1 = *(byte *)(param_1 + 0x2a)" identifier = (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) ))))) ;) (if_statement "if (-1 < (char)bVar1) {\n      return 0;\n    }" if (parenthesized_expression "(-1 < (char)bVar1)" ( (binary_expression "-1 < (char)bVar1" number_literal < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 0x2c) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2c) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2c) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x2c) & 2" (pointer_expression "*(byte *)(param_1 + 0x2c)" * (cast_expression "(byte *)(param_1 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((bVar1 & 7) != 0) goto code_r0x00163930;" if (parenthesized_expression "((bVar1 & 7) != 0)" ( (binary_expression "(bVar1 & 7) != 0" (parenthesized_expression "(bVar1 & 7)" ( (binary_expression "bVar1 & 7" identifier & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x00163930;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);" (assignment_expression "bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c)" identifier = (pointer_expression "*(byte *)(*(int *)(param_1 + 8) + 0x2c)" * (cast_expression "(byte *)(*(int *)(param_1 + 8) + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 8) + 0x2c" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (labeled_statement "joined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }" statement_identifier : (if_statement "if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }" if (parenthesized_expression "((bVar1 & 0x40) != 0)" ( (binary_expression "(bVar1 & 0x40) != 0" (parenthesized_expression "(bVar1 & 0x40)" ( (binary_expression "bVar1 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      return bVar1 >> 1 & 1 ^ 1;\n    }" { (return_statement "return bVar1 >> 1 & 1 ^ 1;" return (binary_expression "bVar1 >> 1 & 1 ^ 1" (binary_expression "bVar1 >> 1 & 1" (binary_expression "bVar1 >> 1" identifier >> number_literal) & number_literal) ^ number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x24:" case number_literal :) (case_statement "case 0x25:" case number_literal :) (case_statement "case 0x34:" case number_literal :) (case_statement "case 0x35:\n    *param_7 = 1;\n    return 0;" case number_literal : (expression_statement "*param_7 = 1;" (assignment_expression "*param_7 = 1" (pointer_expression "*param_7" * identifier) = number_literal) ;) (return_statement "return 0;" return number_literal ;)) (case_statement "case 0x43:" case number_literal :) (case_statement "case 0x52:" case number_literal :) (case_statement "case 0x53:\n    *param_7 = 1;\n    return 1;" case number_literal : (expression_statement "*param_7 = 1;" (assignment_expression "*param_7 = 1" (pointer_expression "*param_7" * identifier) = number_literal) ;) (return_statement "return 1;" return number_literal ;)) (case_statement "case 0x80:" case number_literal :) (case_statement "case 0x90:" case number_literal :) (case_statement "case 0xa0:" case number_literal :) (case_statement "case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;" case number_literal : (expression_statement "iVar3 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar3 = *(int *)(DAT_00302378 + 8)" identifier = (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }" { (expression_statement "bVar1 = *(byte *)(iVar3 + 0x43e5);" (assignment_expression "bVar1 = *(byte *)(iVar3 + 0x43e5)" identifier = (pointer_expression "*(byte *)(iVar3 + 0x43e5)" * (cast_expression "(byte *)(iVar3 + 0x43e5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43e5)" ( (binary_expression "iVar3 + 0x43e5" identifier + number_literal) ))))) ;) (if_statement "if (bVar1 == 0) {\n        return 1;\n      }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar5 = "definition of \'%s\' overriding common";" (assignment_expression "pcVar5 = "definition of \'%s\' overriding common"" identifier = (string_literal ""definition of \'%s\' overriding common"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (labeled_statement "code_r0x001636fb:\n      uVar4 = gettext(pcVar5);" statement_identifier : (expression_statement "uVar4 = gettext(pcVar5);" (assignment_expression "uVar4 = gettext(pcVar5)" identifier = (call_expression "gettext(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;)) (expression_statement "FUN_00163350(0,uVar4,param_1,param_4,param_5);" (call_expression "FUN_00163350(0,uVar4,param_1,param_4,param_5)" identifier (argument_list "(0,uVar4,param_1,param_4,param_5)" ( number_literal , identifier , identifier , identifier , identifier ))) ;) (return_statement "return (uint)bVar1;" return (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ;) })) (goto_statement "goto code_r0x00163962;" goto statement_identifier ;)) (case_statement "case 0x88:" case number_literal :) (case_statement "case 0x8a:" case number_literal :) (case_statement "case 0x8b:" case number_literal :) (case_statement "case 0x9a:" case number_literal :) (case_statement "case 0x9b:" case number_literal :) (case_statement "case 0xaa:" case number_literal :) (case_statement "case 0xab:" case number_literal :) (case_statement "case 0xba:" case number_literal :) (case_statement "case 0xbb:\n    *param_6 = 1;\n    break;" case number_literal : (expression_statement "*param_6 = 1;" (assignment_expression "*param_6 = 1" (pointer_expression "*param_6" * identifier) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xa1:" case number_literal :) (case_statement "case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);" case number_literal : (expression_statement "iVar3 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar3 = *(int *)(DAT_00302378 + 8)" identifier = (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }" { (expression_statement "bVar1 = *(byte *)(iVar3 + 0x43e5);" (assignment_expression "bVar1 = *(byte *)(iVar3 + 0x43e5)" identifier = (pointer_expression "*(byte *)(iVar3 + 0x43e5)" * (cast_expression "(byte *)(iVar3 + 0x43e5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43e5)" ( (binary_expression "iVar3 + 0x43e5" identifier + number_literal) ))))) ;) (if_statement "if (bVar1 == 0) {\n        return 1;\n      }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar5 = "definition of \'%s\' overriding dynamic common definition";" (assignment_expression "pcVar5 = "definition of \'%s\' overriding dynamic common definition"" identifier = (string_literal ""definition of \'%s\' overriding dynamic common definition"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (goto_statement "goto code_r0x001636fb;" goto statement_identifier ;) })) (labeled_statement "code_r0x00163962:\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);" statement_identifier : (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",iVar3)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;))) (case_statement "case 0xa8:" case number_literal :) (case_statement "case 0xb8:\n    *param_6 = 1;\n    return 1;" case number_literal : (expression_statement "*param_6 = 1;" (assignment_expression "*param_6 = 1" (pointer_expression "*param_6" * identifier) = number_literal) ;) (return_statement "return 1;" return number_literal ;)) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) }))))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (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 IDENT == 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 ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case 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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return LIT ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return 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 IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (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 IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (break_statement break ;)) (case_statement case 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 IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (return_statement return LIT ;)) (case_statement case LIT :) (case_statement case 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 IDENT & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) & IDENT)) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (return_statement return (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (return_statement return 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 LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case 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 LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (return_statement return 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 LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (return_statement return (binary_expression (binary_expression (binary_expression IDENT >> LIT) & LIT) ^ LIT) ;) }))) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return LIT ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return LIT ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case 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 IDENT != LIT) )) (compound_statement { (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 IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return (cast_expression ( (type_descriptor TYPE) ) IDENT) ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case 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 IDENT != LIT) )) (compound_statement { (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 IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content ")) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;))) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return LIT ;)) })) (return_statement return LIT ;) })))
(function_definition "uint FUN_00163520(int param_1,int param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined1 *param_6,undefined1 *param_7,byte param_8)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  undefined3 uVar6;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  undefined8 uVar7;\n  \n  *param_6 = 0;\n  *param_7 = 0;\n  bVar1 = *(byte *)(param_1 + 0x2a) & 7;\n  if (bVar1 == 4) {\n    uVar7 = FUN_001630f0(1);\n  }\n  else if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }\n  uVar6 = (undefined3)((ulonglong)uVar7 >> 0x28);\n  if ((((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))) {\n    uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");\n    FUN_00163350(1,uVar4,param_1,param_4,param_5);\n    uVar6 = extraout_var_00;\n  }\n  param_2 = param_2 + (int)uVar7 * 0x10;\n  switch(param_2) {\n  case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;\n  default:\n                    \n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return 1;\n  case 0x22:\n  case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *param_7 = 1;\n    return 0;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *param_7 = 1;\n    return 1;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *param_6 = 1;\n    break;\n  case 0xa1:\n  case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);\n  case 0xa8:\n  case 0xb8:\n    *param_6 = 1;\n    return 1;\n  }\n  return 0;\n}" (type_identifier "uint") (function_declarator "FUN_00163520(int param_1,int param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined1 *param_6,undefined1 *param_7,byte param_8)" (identifier "FUN_00163520") (parameter_list "(int param_1,int param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined1 *param_6,undefined1 *param_7,byte param_8)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "undefined1 *param_6" (type_identifier "undefined1") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "undefined1 *param_7" (type_identifier "undefined1") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "byte param_8" (type_identifier "byte") (identifier "param_8")) () ")"))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  undefined3 uVar6;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  undefined8 uVar7;\n  \n  *param_6 = 0;\n  *param_7 = 0;\n  bVar1 = *(byte *)(param_1 + 0x2a) & 7;\n  if (bVar1 == 4) {\n    uVar7 = FUN_001630f0(1);\n  }\n  else if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }\n  uVar6 = (undefined3)((ulonglong)uVar7 >> 0x28);\n  if ((((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))) {\n    uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");\n    FUN_00163350(1,uVar4,param_1,param_4,param_5);\n    uVar6 = extraout_var_00;\n  }\n  param_2 = param_2 + (int)uVar7 * 0x10;\n  switch(param_2) {\n  case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;\n  default:\n                    \n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return 1;\n  case 0x22:\n  case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *param_7 = 1;\n    return 0;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *param_7 = 1;\n    return 1;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *param_6 = 1;\n    break;\n  case 0xa1:\n  case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);\n  case 0xa8:\n  case 0xb8:\n    *param_6 = 1;\n    return 1;\n  }\n  return 0;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "undefined3 uVar6;" (type_identifier "undefined3") (identifier "uVar6") (; ";")) (declaration "undefined3 extraout_var;" (type_identifier "undefined3") (identifier "extraout_var") (; ";")) (declaration "undefined3 extraout_var_00;" (type_identifier "undefined3") (identifier "extraout_var_00") (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_7 = 0;" (assignment_expression "*param_7 = 0" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar1 = *(byte *)(param_1 + 0x2a) & 7;" (assignment_expression "bVar1 = *(byte *)(param_1 + 0x2a) & 7" (identifier "bVar1") (= "=") (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" (* "*") (cast_expression "(byte *)(param_1 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a)" (( "(") (binary_expression "param_1 + 0x2a" (identifier "param_1") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (if_statement "if (bVar1 == 4) {\n    uVar7 = FUN_001630f0(1);\n  }\n  else if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }" (if "if") (parenthesized_expression "(bVar1 == 4)" (( "(") (binary_expression "bVar1 == 4" (identifier "bVar1") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n    uVar7 = FUN_001630f0(1);\n  }" ({ "{") (expression_statement "uVar7 = FUN_001630f0(1);" (assignment_expression "uVar7 = FUN_001630f0(1)" (identifier "uVar7") (= "=") (call_expression "FUN_001630f0(1)" (identifier "FUN_001630f0") (argument_list "(1)" (( "(") (number_literal "1") () ")")))) (; ";")) (} "}")) (else_clause "else if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }" (else "else") (if_statement "if (bVar1 == 0) {\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }\n  else {\n    uVar7 = FUN_001630f0(0);\n  }" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);\n  }" ({ "{") (expression_statement "uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);" (assignment_expression "uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1)" (identifier "uVar7") (= "=") (call_expression "FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1)" (identifier "FUN_001630f0") (argument_list "(*(byte *)(param_1 + 0x2b) >> 5 & 1)" (( "(") (binary_expression "*(byte *)(param_1 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)(param_1 + 0x2b) >> 5" (pointer_expression "*(byte *)(param_1 + 0x2b)" (* "*") (cast_expression "(byte *)(param_1 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2b)" (( "(") (binary_expression "param_1 + 0x2b" (identifier "param_1") (+ "+") (number_literal "0x2b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    uVar7 = FUN_001630f0(0);\n  }" (else "else") (compound_statement "{\n    uVar7 = FUN_001630f0(0);\n  }" ({ "{") (expression_statement "uVar7 = FUN_001630f0(0);" (assignment_expression "uVar7 = FUN_001630f0(0)" (identifier "uVar7") (= "=") (call_expression "FUN_001630f0(0)" (identifier "FUN_001630f0") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (} "}")))))) (expression_statement "uVar6 = (undefined3)((ulonglong)uVar7 >> 0x28);" (assignment_expression "uVar6 = (undefined3)((ulonglong)uVar7 >> 0x28)" (identifier "uVar6") (= "=") (call_expression "(undefined3)((ulonglong)uVar7 >> 0x28)" (parenthesized_expression "(undefined3)" (( "(") (identifier "undefined3") () ")")) (argument_list "((ulonglong)uVar7 >> 0x28)" (( "(") (binary_expression "(ulonglong)uVar7 >> 0x28" (cast_expression "(ulonglong)uVar7" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar7")) (>> ">>") (number_literal "0x28")) () ")")))) (; ";")) (if_statement "if ((((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))) {\n    uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");\n    FUN_00163350(1,uVar4,param_1,param_4,param_5);\n    uVar6 = extraout_var_00;\n  }" (if "if") (parenthesized_expression "((((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0))))" (( "(") (binary_expression "(((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&\n     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))" (parenthesized_expression "(((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6))" (( "(") (binary_expression "((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)" (parenthesized_expression "((*(byte *)(param_1 + 0x28) & 0xf) == 6)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x28) & 0xf) == 6" (parenthesized_expression "(*(byte *)(param_1 + 0x28) & 0xf)" (( "(") (binary_expression "*(byte *)(param_1 + 0x28) & 0xf" (pointer_expression "*(byte *)(param_1 + 0x28)" (* "*") (cast_expression "(byte *)(param_1 + 0x28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "6")) () ")")) (!= "!=") (parenthesized_expression "(param_3 == 6)" (( "(") (binary_expression "param_3 == 6" (identifier "param_3") (== "==") (number_literal "6")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)))" (( "(") (parenthesized_expression "((*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0))" (( "(") (binary_expression "(*(byte *)(param_1 + 0x2a) & 7) != 0 ||\n      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)" (binary_expression "(*(byte *)(param_1 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" (* "*") (cast_expression "(byte *)(param_1 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a)" (( "(") (binary_expression "param_1 + 0x2a" (identifier "param_1") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0)" (( "(") (comma_expression "iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),\n      uVar6 = extraout_var, iVar3 == 0" (assignment_expression "iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8))" (identifier "iVar3") (= "=") (call_expression "(**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8))" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 8) + 0x14))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 8) + 0x14)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 8) + 0x14)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 8) + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 8) + 0x14)" (( "(") (binary_expression "**(int **)(param_1 + 8) + 0x14" (pointer_expression "**(int **)(param_1 + 8)" (* "*") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(*(int **)(param_1 + 8))" (( "(") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")")))) (, ",") (comma_expression "uVar6 = extraout_var, iVar3 == 0" (assignment_expression "uVar6 = extraout_var" (identifier "uVar6") (= "=") (identifier "extraout_var")) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");\n    FUN_00163350(1,uVar4,param_1,param_4,param_5);\n    uVar6 = extraout_var_00;\n  }" ({ "{") (expression_statement "uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");" (assignment_expression "uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread")" (identifier "uVar4") (= "=") (call_expression "gettext("symbol \'%s\' used as both __thread and non-__thread")" (identifier "gettext") (argument_list "("symbol \'%s\' used as both __thread and non-__thread")" (( "(") (string_literal ""symbol \'%s\' used as both __thread and non-__thread"" (" """) (string_content "symbol ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " used as both __thread and non-__thread") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00163350(1,uVar4,param_1,param_4,param_5);" (call_expression "FUN_00163350(1,uVar4,param_1,param_4,param_5)" (identifier "FUN_00163350") (argument_list "(1,uVar4,param_1,param_4,param_5)" (( "(") (number_literal "1") (, ",") (identifier "uVar4") (, ",") (identifier "param_1") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "uVar6 = extraout_var_00;" (assignment_expression "uVar6 = extraout_var_00" (identifier "uVar6") (= "=") (identifier "extraout_var_00")) (; ";")) (} "}"))) (expression_statement "param_2 = param_2 + (int)uVar7 * 0x10;" (assignment_expression "param_2 = param_2 + (int)uVar7 * 0x10" (identifier "param_2") (= "=") (binary_expression "param_2 + (int)uVar7 * 0x10" (identifier "param_2") (+ "+") (binary_expression "(int)uVar7 * 0x10" (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7")) (* "*") (number_literal "0x10")))) (; ";")) (switch_statement "switch(param_2) {\n  case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;\n  default:\n                    \n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return 1;\n  case 0x22:\n  case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *param_7 = 1;\n    return 0;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *param_7 = 1;\n    return 1;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *param_6 = 1;\n    break;\n  case 0xa1:\n  case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);\n  case 0xa8:\n  case 0xb8:\n    *param_6 = 1;\n    return 1;\n  }" (switch "switch") (parenthesized_expression "(param_2)" (( "(") (identifier "param_2") () ")")) (compound_statement "{\n  case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;\n  case 1:\n  case 2:\n  case 3:\n  case 4:\n  case 5:\n  case 6:\n  case 7:\n  case 9:\n  case 10:\n  case 0xb:\n  case 0x11:\n  case 0x12:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x16:\n  case 0x17:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x26:\n  case 0x27:\n  case 0x29:\n  case 0x2a:\n  case 0x2b:\n  case 0x36:\n  case 0x37:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n  case 0x55:\n  case 0x56:\n  case 0x57:\n  case 0x65:\n  case 0x66:\n  case 0x67:\n  case 0x76:\n  case 0x77:\n  case 0x81:\n  case 0x82:\n  case 0x83:\n  case 0x84:\n  case 0x85:\n  case 0x86:\n  case 0x87:\n  case 0x89:\n  case 0x91:\n  case 0x92:\n  case 0x93:\n  case 0x94:\n  case 0x95:\n  case 0x96:\n  case 0x97:\n  case 0x99:\n  case 0xa4:\n  case 0xa5:\n  case 0xa6:\n  case 0xa7:\n  case 0xa9:\n  case 0xb4:\n  case 0xb5:\n  case 0xb6:\n  case 0xb7:\n  case 0xb9:\n    break;\n  case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;\n  default:\n                    \n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);\n  case 0x10:\n  case 0x18:\n  case 0x20:\n  case 0x21:\n  case 0x28:\n  case 0x30:\n  case 0x31:\n  case 0x38:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n  case 0x48:\n  case 0x49:\n  case 0x4a:\n  case 0x4b:\n  case 0x50:\n  case 0x51:\n  case 0x54:\n  case 0x58:\n  case 0x59:\n  case 0x5a:\n  case 0x5b:\n  case 0x60:\n  case 0x61:\n  case 0x62:\n  case 99:\n  case 100:\n  case 0x68:\n  case 0x69:\n  case 0x6a:\n  case 0x6b:\n  case 0x70:\n  case 0x71:\n  case 0x72:\n  case 0x73:\n  case 0x74:\n  case 0x75:\n  case 0x78:\n  case 0x79:\n  case 0x7a:\n  case 0x7b:\n  case 0x98:\n    return 1;\n  case 0x22:\n  case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;\n  case 0x23:\n  case 0x33:\n  case 0xa2:\n  case 0xa3:\n  case 0xb2:\n  case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;\n  case 0x24:\n  case 0x25:\n  case 0x34:\n  case 0x35:\n    *param_7 = 1;\n    return 0;\n  case 0x43:\n  case 0x52:\n  case 0x53:\n    *param_7 = 1;\n    return 1;\n  case 0x80:\n  case 0x90:\n  case 0xa0:\n  case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;\n  case 0x88:\n  case 0x8a:\n  case 0x8b:\n  case 0x9a:\n  case 0x9b:\n  case 0xaa:\n  case 0xab:\n  case 0xba:\n  case 0xbb:\n    *param_6 = 1;\n    break;\n  case 0xa1:\n  case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);\n  case 0xa8:\n  case 0xb8:\n    *param_6 = 1;\n    return 1;\n  }" ({ "{") (case_statement "case 0:\n    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 == 0) goto code_r0x00163962;\n    if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }\n    break;" (case "case") (number_literal "0") (: ":") (if_statement "if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(param_1 + 0x2a) & 7" (pointer_expression "*(byte *)(param_1 + 0x2a)" (* "*") (cast_expression "(byte *)(param_1 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a)" (( "(") (binary_expression "param_1 + 0x2a" (identifier "param_1") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);\n      if (iVar3 == 0) goto code_r0x00163949;\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }" ({ "{") (expression_statement "iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);" (assignment_expression "iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(*(int *)(param_1 + 8) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 8) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 8) + 0x1c)" (( "(") (binary_expression "*(int *)(param_1 + 8) + 0x1c" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) goto code_r0x00163949;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00163949;" (goto "goto") (statement_identifier "code_r0x00163949") (; ";"))) (expression_statement "cVar2 = FUN_0005cf90(iVar3);" (assignment_expression "cVar2 = FUN_0005cf90(iVar3)" (identifier "cVar2") (= "=") (call_expression "FUN_0005cf90(iVar3)" (identifier "FUN_0005cf90") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (cVar2 != '\0') {\n        return 0;\n      }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (if_statement "if (param_5 != 0) {\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }" (if "if") (parenthesized_expression "(param_5 != 0)" (( "(") (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = *(int *)(param_5 + 0x1c);\n      if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }\n      cVar2 = FUN_0005cf90(iVar3);\n      if (cVar2 != '\0') {\n        return 0;\n      }\n    }" ({ "{") (expression_statement "iVar3 = *(int *)(param_5 + 0x1c);" (assignment_expression "iVar3 = *(int *)(param_5 + 0x1c)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_5 + 0x1c)" (* "*") (cast_expression "(int *)(param_5 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x1c)" (( "(") (binary_expression "param_5 + 0x1c" (identifier "param_5") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) {\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);\n      }" ({ "{") (labeled_statement "code_r0x00163949:\n                    \n        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);" (statement_identifier "code_r0x00163949") (: ":") (expression_statement "FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);" (call_expression "FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3)" (identifier "FUN_0005f0b0") (argument_list "("../../gold/object.h",0x1ea,"input_file",iVar3)" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x1ea") (, ",") (string_literal ""input_file"" (" """) (string_content "input_file") (" """)) (, ",") (identifier "iVar3") () ")"))) (; ";"))) (} "}"))) (expression_statement "cVar2 = FUN_0005cf90(iVar3);" (assignment_expression "cVar2 = FUN_0005cf90(iVar3)" (identifier "cVar2") (= "=") (call_expression "FUN_0005cf90(iVar3)" (identifier "FUN_0005cf90") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (cVar2 != '\0') {\n        return 0;\n      }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar3 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar3 = *(int *)(DAT_00302378 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(DAT_00302378 + 8)" (* "*") (cast_expression "(int *)(DAT_00302378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 8)" (( "(") (binary_expression "DAT_00302378 + 8" (identifier "DAT_00302378") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) goto code_r0x00163962;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00163962;" (goto "goto") (statement_identifier "code_r0x00163962") (; ";"))) (if_statement "if (*(char *)(iVar3 + 0x525d) == '\0') {\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar3 + 0x525d) == '\0')" (( "(") (binary_expression "*(char *)(iVar3 + 0x525d) == '\0'" (pointer_expression "*(char *)(iVar3 + 0x525d)" (* "*") (cast_expression "(char *)(iVar3 + 0x525d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x525d)" (( "(") (binary_expression "iVar3 + 0x525d" (identifier "iVar3") (+ "+") (number_literal "0x525d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar4 = gettext("multiple definition of \'%s\'");\n      FUN_00163350(1,uVar4,param_1,param_4,param_5);\n      return 0;\n    }" ({ "{") (expression_statement "uVar4 = gettext("multiple definition of \'%s\'");" (assignment_expression "uVar4 = gettext("multiple definition of \'%s\'")" (identifier "uVar4") (= "=") (call_expression "gettext("multiple definition of \'%s\'")" (identifier "gettext") (argument_list "("multiple definition of \'%s\'")" (( "(") (string_literal ""multiple definition of \'%s\'"" (" """) (string_content "multiple definition of ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00163350(1,uVar4,param_1,param_4,param_5);" (call_expression "FUN_00163350(1,uVar4,param_1,param_4,param_5)" (identifier "FUN_00163350") (argument_list "(1,uVar4,param_1,param_4,param_5)" (( "(") (number_literal "1") (, ",") (identifier "uVar4") (, ",") (identifier "param_1") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:" (case "case") (number_literal "1") (: ":")) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:" (case "case") (number_literal "3") (: ":")) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:" (case "case") (number_literal "5") (: ":")) (case_statement "case 6:" (case "case") (number_literal "6") (: ":")) (case_statement "case 7:" (case "case") (number_literal "7") (: ":")) (case_statement "case 9:" (case "case") (number_literal "9") (: ":")) (case_statement "case 10:" (case "case") (number_literal "10") (: ":")) (case_statement "case 0xb:" (case "case") (number_literal "0xb") (: ":")) (case_statement "case 0x11:" (case "case") (number_literal "0x11") (: ":")) (case_statement "case 0x12:" (case "case") (number_literal "0x12") (: ":")) (case_statement "case 0x13:" (case "case") (number_literal "0x13") (: ":")) (case_statement "case 0x14:" (case "case") (number_literal "0x14") (: ":")) (case_statement "case 0x15:" (case "case") (number_literal "0x15") (: ":")) (case_statement "case 0x16:" (case "case") (number_literal "0x16") (: ":")) (case_statement "case 0x17:" (case "case") (number_literal "0x17") (: ":")) (case_statement "case 0x19:" (case "case") (number_literal "0x19") (: ":")) (case_statement "case 0x1a:" (case "case") (number_literal "0x1a") (: ":")) (case_statement "case 0x1b:" (case "case") (number_literal "0x1b") (: ":")) (case_statement "case 0x26:" (case "case") (number_literal "0x26") (: ":")) (case_statement "case 0x27:" (case "case") (number_literal "0x27") (: ":")) (case_statement "case 0x29:" (case "case") (number_literal "0x29") (: ":")) (case_statement "case 0x2a:" (case "case") (number_literal "0x2a") (: ":")) (case_statement "case 0x2b:" (case "case") (number_literal "0x2b") (: ":")) (case_statement "case 0x36:" (case "case") (number_literal "0x36") (: ":")) (case_statement "case 0x37:" (case "case") (number_literal "0x37") (: ":")) (case_statement "case 0x39:" (case "case") (number_literal "0x39") (: ":")) (case_statement "case 0x3a:" (case "case") (number_literal "0x3a") (: ":")) (case_statement "case 0x3b:" (case "case") (number_literal "0x3b") (: ":")) (case_statement "case 0x44:" (case "case") (number_literal "0x44") (: ":")) (case_statement "case 0x45:" (case "case") (number_literal "0x45") (: ":")) (case_statement "case 0x46:" (case "case") (number_literal "0x46") (: ":")) (case_statement "case 0x47:" (case "case") (number_literal "0x47") (: ":")) (case_statement "case 0x55:" (case "case") (number_literal "0x55") (: ":")) (case_statement "case 0x56:" (case "case") (number_literal "0x56") (: ":")) (case_statement "case 0x57:" (case "case") (number_literal "0x57") (: ":")) (case_statement "case 0x65:" (case "case") (number_literal "0x65") (: ":")) (case_statement "case 0x66:" (case "case") (number_literal "0x66") (: ":")) (case_statement "case 0x67:" (case "case") (number_literal "0x67") (: ":")) (case_statement "case 0x76:" (case "case") (number_literal "0x76") (: ":")) (case_statement "case 0x77:" (case "case") (number_literal "0x77") (: ":")) (case_statement "case 0x81:" (case "case") (number_literal "0x81") (: ":")) (case_statement "case 0x82:" (case "case") (number_literal "0x82") (: ":")) (case_statement "case 0x83:" (case "case") (number_literal "0x83") (: ":")) (case_statement "case 0x84:" (case "case") (number_literal "0x84") (: ":")) (case_statement "case 0x85:" (case "case") (number_literal "0x85") (: ":")) (case_statement "case 0x86:" (case "case") (number_literal "0x86") (: ":")) (case_statement "case 0x87:" (case "case") (number_literal "0x87") (: ":")) (case_statement "case 0x89:" (case "case") (number_literal "0x89") (: ":")) (case_statement "case 0x91:" (case "case") (number_literal "0x91") (: ":")) (case_statement "case 0x92:" (case "case") (number_literal "0x92") (: ":")) (case_statement "case 0x93:" (case "case") (number_literal "0x93") (: ":")) (case_statement "case 0x94:" (case "case") (number_literal "0x94") (: ":")) (case_statement "case 0x95:" (case "case") (number_literal "0x95") (: ":")) (case_statement "case 0x96:" (case "case") (number_literal "0x96") (: ":")) (case_statement "case 0x97:" (case "case") (number_literal "0x97") (: ":")) (case_statement "case 0x99:" (case "case") (number_literal "0x99") (: ":")) (case_statement "case 0xa4:" (case "case") (number_literal "0xa4") (: ":")) (case_statement "case 0xa5:" (case "case") (number_literal "0xa5") (: ":")) (case_statement "case 0xa6:" (case "case") (number_literal "0xa6") (: ":")) (case_statement "case 0xa7:" (case "case") (number_literal "0xa7") (: ":")) (case_statement "case 0xa9:" (case "case") (number_literal "0xa9") (: ":")) (case_statement "case 0xb4:" (case "case") (number_literal "0xb4") (: ":")) (case_statement "case 0xb5:" (case "case") (number_literal "0xb5") (: ":")) (case_statement "case 0xb6:" (case "case") (number_literal "0xb6") (: ":")) (case_statement "case 0xb7:" (case "case") (number_literal "0xb7") (: ":")) (case_statement "case 0xb9:\n    break;" (case "case") (number_literal "0xb9") (: ":") (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }\n    goto code_r0x00163962;" (case "case") (number_literal "8") (: ":") (expression_statement "iVar3 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar3 = *(int *)(DAT_00302378 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(DAT_00302378 + 8)" (* "*") (cast_expression "(int *)(DAT_00302378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 8)" (( "(") (binary_expression "DAT_00302378 + 8" (identifier "DAT_00302378") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar3 != 0) {\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }\n      return 0;\n    }" ({ "{") (if_statement "if (*(char *)(iVar3 + 0x43e5) != '\0') {\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar3 + 0x43e5) != '\0')" (( "(") (binary_expression "*(char *)(iVar3 + 0x43e5) != '\0'" (pointer_expression "*(char *)(iVar3 + 0x43e5)" (* "*") (cast_expression "(char *)(iVar3 + 0x43e5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x43e5)" (( "(") (binary_expression "iVar3 + 0x43e5" (identifier "iVar3") (+ "+") (number_literal "0x43e5")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar4 = gettext("common \'%s\' overridden by previous definition");\n        FUN_00163350(0,uVar4,param_1,param_4,param_5);\n        return 0;\n      }" ({ "{") (expression_statement "uVar4 = gettext("common \'%s\' overridden by previous definition");" (assignment_expression "uVar4 = gettext("common \'%s\' overridden by previous definition")" (identifier "uVar4") (= "=") (call_expression "gettext("common \'%s\' overridden by previous definition")" (identifier "gettext") (argument_list "("common \'%s\' overridden by previous definition")" (( "(") (string_literal ""common \'%s\' overridden by previous definition"" (" """) (string_content "common ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " overridden by previous definition") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00163350(0,uVar4,param_1,param_4,param_5);" (call_expression "FUN_00163350(0,uVar4,param_1,param_4,param_5)" (identifier "FUN_00163350") (argument_list "(0,uVar4,param_1,param_4,param_5)" (( "(") (number_literal "0") (, ",") (identifier "uVar4") (, ",") (identifier "param_1") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (goto_statement "goto code_r0x00163962;" (goto "goto") (statement_identifier "code_r0x00163962") (; ";"))) (case_statement "default:\n                    \n    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);" (default "default") (: ":") (expression_statement "FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);" (call_expression "FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2)" (identifier "FUN_0005f0b0") (argument_list "("../../gold/resolve.cc",0x379,"should_override",param_2)" (( "(") (string_literal ""../../gold/resolve.cc"" (" """) (string_content "../../gold/resolve.cc") (" """)) (, ",") (number_literal "0x379") (, ",") (string_literal ""should_override"" (" """) (string_content "should_override") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";"))) (case_statement "case 0x10:" (case "case") (number_literal "0x10") (: ":")) (case_statement "case 0x18:" (case "case") (number_literal "0x18") (: ":")) (case_statement "case 0x20:" (case "case") (number_literal "0x20") (: ":")) (case_statement "case 0x21:" (case "case") (number_literal "0x21") (: ":")) (case_statement "case 0x28:" (case "case") (number_literal "0x28") (: ":")) (case_statement "case 0x30:" (case "case") (number_literal "0x30") (: ":")) (case_statement "case 0x31:" (case "case") (number_literal "0x31") (: ":")) (case_statement "case 0x38:" (case "case") (number_literal "0x38") (: ":")) (case_statement "case 0x40:" (case "case") (number_literal "0x40") (: ":")) (case_statement "case 0x41:" (case "case") (number_literal "0x41") (: ":")) (case_statement "case 0x42:" (case "case") (number_literal "0x42") (: ":")) (case_statement "case 0x48:" (case "case") (number_literal "0x48") (: ":")) (case_statement "case 0x49:" (case "case") (number_literal "0x49") (: ":")) (case_statement "case 0x4a:" (case "case") (number_literal "0x4a") (: ":")) (case_statement "case 0x4b:" (case "case") (number_literal "0x4b") (: ":")) (case_statement "case 0x50:" (case "case") (number_literal "0x50") (: ":")) (case_statement "case 0x51:" (case "case") (number_literal "0x51") (: ":")) (case_statement "case 0x54:" (case "case") (number_literal "0x54") (: ":")) (case_statement "case 0x58:" (case "case") (number_literal "0x58") (: ":")) (case_statement "case 0x59:" (case "case") (number_literal "0x59") (: ":")) (case_statement "case 0x5a:" (case "case") (number_literal "0x5a") (: ":")) (case_statement "case 0x5b:" (case "case") (number_literal "0x5b") (: ":")) (case_statement "case 0x60:" (case "case") (number_literal "0x60") (: ":")) (case_statement "case 0x61:" (case "case") (number_literal "0x61") (: ":")) (case_statement "case 0x62:" (case "case") (number_literal "0x62") (: ":")) (case_statement "case 99:" (case "case") (number_literal "99") (: ":")) (case_statement "case 100:" (case "case") (number_literal "100") (: ":")) (case_statement "case 0x68:" (case "case") (number_literal "0x68") (: ":")) (case_statement "case 0x69:" (case "case") (number_literal "0x69") (: ":")) (case_statement "case 0x6a:" (case "case") (number_literal "0x6a") (: ":")) (case_statement "case 0x6b:" (case "case") (number_literal "0x6b") (: ":")) (case_statement "case 0x70:" (case "case") (number_literal "0x70") (: ":")) (case_statement "case 0x71:" (case "case") (number_literal "0x71") (: ":")) (case_statement "case 0x72:" (case "case") (number_literal "0x72") (: ":")) (case_statement "case 0x73:" (case "case") (number_literal "0x73") (: ":")) (case_statement "case 0x74:" (case "case") (number_literal "0x74") (: ":")) (case_statement "case 0x75:" (case "case") (number_literal "0x75") (: ":")) (case_statement "case 0x78:" (case "case") (number_literal "0x78") (: ":")) (case_statement "case 0x79:" (case "case") (number_literal "0x79") (: ":")) (case_statement "case 0x7a:" (case "case") (number_literal "0x7a") (: ":")) (case_statement "case 0x7b:" (case "case") (number_literal "0x7b") (: ":")) (case_statement "case 0x98:\n    return 1;" (case "case") (number_literal "0x98") (: ":") (return_statement "return 1;" (return "return") (number_literal "1") (; ";"))) (case_statement "case 0x22:" (case "case") (number_literal "0x22") (: ":")) (case_statement "case 0x32:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }\n    if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\n    goto joined_r0x00163817;" (case "case") (number_literal "0x32") (: ":") (expression_statement "bVar1 = *(byte *)(param_1 + 0x2a);" (assignment_expression "bVar1 = *(byte *)(param_1 + 0x2a)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(param_1 + 0x2a)" (* "*") (cast_expression "(byte *)(param_1 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a)" (( "(") (binary_expression "param_1 + 0x2a" (identifier "param_1") (+ "+") (number_literal "0x2a")) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 7) != 0) {\ncode_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }" (if "if") (parenthesized_expression "((bVar1 & 7) != 0)" (( "(") (binary_expression "(bVar1 & 7) != 0" (parenthesized_expression "(bVar1 & 7)" (( "(") (binary_expression "bVar1 & 7" (identifier "bVar1") (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);\n    }" ({ "{") (labeled_statement "code_r0x00163930:\n                    \n      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);" (statement_identifier "code_r0x00163930") (: ":") (expression_statement "FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);" (call_expression "FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1)" (identifier "FUN_0005f0b0") (argument_list "("../../gold/symtab.h",0xa1,"object",bVar1)" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xa1") (, ",") (string_literal ""object"" (" """) (string_content "object") (" """)) (, ",") (identifier "bVar1") () ")"))) (; ";"))) (} "}"))) (if_statement "if ((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {\n      return CONCAT31(uVar6,param_8);\n    }" (if "if") (parenthesized_expression "((param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0))" (( "(") (binary_expression "(param_5 == *(int *)(param_1 + 8)) &&\n       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)" (parenthesized_expression "(param_5 == *(int *)(param_1 + 8))" (( "(") (binary_expression "param_5 == *(int *)(param_1 + 8)" (identifier "param_5") (== "==") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)" (( "(") (comma_expression "param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0" (assignment_expression "param_8 = *(int *)(param_1 + 4) == 0 & param_8" (identifier "param_8") (= "=") (binary_expression "*(int *)(param_1 + 4) == 0 & param_8" (binary_expression "*(int *)(param_1 + 4) == 0" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) (& "&") (identifier "param_8"))) (, ",") (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      return CONCAT31(uVar6,param_8);\n    }" ({ "{") (return_statement "return CONCAT31(uVar6,param_8);" (return "return") (call_expression "CONCAT31(uVar6,param_8)" (identifier "CONCAT31") (argument_list "(uVar6,param_8)" (( "(") (identifier "uVar6") (, ",") (identifier "param_8") () ")"))) (; ";")) (} "}"))) (if_statement "if (-1 < (char)bVar1) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(-1 < (char)bVar1)" (( "(") (binary_expression "-1 < (char)bVar1" (number_literal "-1") (< "<") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1"))) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x2c) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x2c) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2c) & 2)" (( "(") (binary_expression "*(byte *)(param_1 + 0x2c) & 2" (pointer_expression "*(byte *)(param_1 + 0x2c)" (* "*") (cast_expression "(byte *)(param_1 + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);" (assignment_expression "bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(*(int *)(param_1 + 8) + 0x2c)" (* "*") (cast_expression "(byte *)(*(int *)(param_1 + 8) + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 8) + 0x2c)" (( "(") (binary_expression "*(int *)(param_1 + 8) + 0x2c" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (goto_statement "goto joined_r0x00163817;" (goto "goto") (statement_identifier "joined_r0x00163817") (; ";"))) (case_statement "case 0x23:" (case "case") (number_literal "0x23") (: ":")) (case_statement "case 0x33:" (case "case") (number_literal "0x33") (: ":")) (case_statement "case 0xa2:" (case "case") (number_literal "0xa2") (: ":")) (case_statement "case 0xa3:" (case "case") (number_literal "0xa3") (: ":")) (case_statement "case 0xb2:" (case "case") (number_literal "0xb2") (: ":")) (case_statement "case 0xb3:\n    bVar1 = *(byte *)(param_1 + 0x2a);\n    if (-1 < (char)bVar1) {\n      return 0;\n    }\n    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }\n    if ((bVar1 & 7) != 0) goto code_r0x00163930;\n    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);\njoined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }\n    break;" (case "case") (number_literal "0xb3") (: ":") (expression_statement "bVar1 = *(byte *)(param_1 + 0x2a);" (assignment_expression "bVar1 = *(byte *)(param_1 + 0x2a)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(param_1 + 0x2a)" (* "*") (cast_expression "(byte *)(param_1 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a)" (( "(") (binary_expression "param_1 + 0x2a" (identifier "param_1") (+ "+") (number_literal "0x2a")) () ")"))))) (; ";")) (if_statement "if (-1 < (char)bVar1) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(-1 < (char)bVar1)" (( "(") (binary_expression "-1 < (char)bVar1" (number_literal "-1") (< "<") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1"))) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x2c) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x2c) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2c) & 2)" (( "(") (binary_expression "*(byte *)(param_1 + 0x2c) & 2" (pointer_expression "*(byte *)(param_1 + 0x2c)" (* "*") (cast_expression "(byte *)(param_1 + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((bVar1 & 7) != 0) goto code_r0x00163930;" (if "if") (parenthesized_expression "((bVar1 & 7) != 0)" (( "(") (binary_expression "(bVar1 & 7) != 0" (parenthesized_expression "(bVar1 & 7)" (( "(") (binary_expression "bVar1 & 7" (identifier "bVar1") (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00163930;" (goto "goto") (statement_identifier "code_r0x00163930") (; ";"))) (expression_statement "bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);" (assignment_expression "bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(*(int *)(param_1 + 8) + 0x2c)" (* "*") (cast_expression "(byte *)(*(int *)(param_1 + 8) + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 8) + 0x2c)" (( "(") (binary_expression "*(int *)(param_1 + 8) + 0x2c" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (labeled_statement "joined_r0x00163817:\n    if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }" (statement_identifier "joined_r0x00163817") (: ":") (if_statement "if ((bVar1 & 0x40) != 0) {\n      return bVar1 >> 1 & 1 ^ 1;\n    }" (if "if") (parenthesized_expression "((bVar1 & 0x40) != 0)" (( "(") (binary_expression "(bVar1 & 0x40) != 0" (parenthesized_expression "(bVar1 & 0x40)" (( "(") (binary_expression "bVar1 & 0x40" (identifier "bVar1") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return bVar1 >> 1 & 1 ^ 1;\n    }" ({ "{") (return_statement "return bVar1 >> 1 & 1 ^ 1;" (return "return") (binary_expression "bVar1 >> 1 & 1 ^ 1" (binary_expression "bVar1 >> 1 & 1" (binary_expression "bVar1 >> 1" (identifier "bVar1") (>> ">>") (number_literal "1")) (& "&") (number_literal "1")) (^ "^") (number_literal "1")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x24:" (case "case") (number_literal "0x24") (: ":")) (case_statement "case 0x25:" (case "case") (number_literal "0x25") (: ":")) (case_statement "case 0x34:" (case "case") (number_literal "0x34") (: ":")) (case_statement "case 0x35:\n    *param_7 = 1;\n    return 0;" (case "case") (number_literal "0x35") (: ":") (expression_statement "*param_7 = 1;" (assignment_expression "*param_7 = 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (number_literal "1")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";"))) (case_statement "case 0x43:" (case "case") (number_literal "0x43") (: ":")) (case_statement "case 0x52:" (case "case") (number_literal "0x52") (: ":")) (case_statement "case 0x53:\n    *param_7 = 1;\n    return 1;" (case "case") (number_literal "0x53") (: ":") (expression_statement "*param_7 = 1;" (assignment_expression "*param_7 = 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (number_literal "1")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";"))) (case_statement "case 0x80:" (case "case") (number_literal "0x80") (: ":")) (case_statement "case 0x90:" (case "case") (number_literal "0x90") (: ":")) (case_statement "case 0xa0:" (case "case") (number_literal "0xa0") (: ":")) (case_statement "case 0xb0:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }\n    goto code_r0x00163962;" (case "case") (number_literal "0xb0") (: ":") (expression_statement "iVar3 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar3 = *(int *)(DAT_00302378 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(DAT_00302378 + 8)" (* "*") (cast_expression "(int *)(DAT_00302378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 8)" (( "(") (binary_expression "DAT_00302378 + 8" (identifier "DAT_00302378") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding common";\ncode_r0x001636fb:\n      uVar4 = gettext(pcVar5);\n      FUN_00163350(0,uVar4,param_1,param_4,param_5);\n      return (uint)bVar1;\n    }" ({ "{") (expression_statement "bVar1 = *(byte *)(iVar3 + 0x43e5);" (assignment_expression "bVar1 = *(byte *)(iVar3 + 0x43e5)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar3 + 0x43e5)" (* "*") (cast_expression "(byte *)(iVar3 + 0x43e5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x43e5)" (( "(") (binary_expression "iVar3 + 0x43e5" (identifier "iVar3") (+ "+") (number_literal "0x43e5")) () ")"))))) (; ";")) (if_statement "if (bVar1 == 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "pcVar5 = "definition of \'%s\' overriding common";" (assignment_expression "pcVar5 = "definition of \'%s\' overriding common"" (identifier "pcVar5") (= "=") (string_literal ""definition of \'%s\' overriding common"" (" """) (string_content "definition of ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " overriding common") (" """))) (; ";")) (labeled_statement "code_r0x001636fb:\n      uVar4 = gettext(pcVar5);" (statement_identifier "code_r0x001636fb") (: ":") (expression_statement "uVar4 = gettext(pcVar5);" (assignment_expression "uVar4 = gettext(pcVar5)" (identifier "uVar4") (= "=") (call_expression "gettext(pcVar5)" (identifier "gettext") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")")))) (; ";"))) (expression_statement "FUN_00163350(0,uVar4,param_1,param_4,param_5);" (call_expression "FUN_00163350(0,uVar4,param_1,param_4,param_5)" (identifier "FUN_00163350") (argument_list "(0,uVar4,param_1,param_4,param_5)" (( "(") (number_literal "0") (, ",") (identifier "uVar4") (, ",") (identifier "param_1") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (return_statement "return (uint)bVar1;" (return "return") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (; ";")) (} "}"))) (goto_statement "goto code_r0x00163962;" (goto "goto") (statement_identifier "code_r0x00163962") (; ";"))) (case_statement "case 0x88:" (case "case") (number_literal "0x88") (: ":")) (case_statement "case 0x8a:" (case "case") (number_literal "0x8a") (: ":")) (case_statement "case 0x8b:" (case "case") (number_literal "0x8b") (: ":")) (case_statement "case 0x9a:" (case "case") (number_literal "0x9a") (: ":")) (case_statement "case 0x9b:" (case "case") (number_literal "0x9b") (: ":")) (case_statement "case 0xaa:" (case "case") (number_literal "0xaa") (: ":")) (case_statement "case 0xab:" (case "case") (number_literal "0xab") (: ":")) (case_statement "case 0xba:" (case "case") (number_literal "0xba") (: ":")) (case_statement "case 0xbb:\n    *param_6 = 1;\n    break;" (case "case") (number_literal "0xbb") (: ":") (expression_statement "*param_6 = 1;" (assignment_expression "*param_6 = 1" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xa1:" (case "case") (number_literal "0xa1") (: ":")) (case_statement "case 0xb1:\n    iVar3 = *(int *)(DAT_00302378 + 8);\n    if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }\ncode_r0x00163962:\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);" (case "case") (number_literal "0xb1") (: ":") (expression_statement "iVar3 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar3 = *(int *)(DAT_00302378 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(DAT_00302378 + 8)" (* "*") (cast_expression "(int *)(DAT_00302378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 8)" (( "(") (binary_expression "DAT_00302378 + 8" (identifier "DAT_00302378") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar3 != 0) {\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      bVar1 = *(byte *)(iVar3 + 0x43e5);\n      if (bVar1 == 0) {\n        return 1;\n      }\n      pcVar5 = "definition of \'%s\' overriding dynamic common definition";\n      goto code_r0x001636fb;\n    }" ({ "{") (expression_statement "bVar1 = *(byte *)(iVar3 + 0x43e5);" (assignment_expression "bVar1 = *(byte *)(iVar3 + 0x43e5)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(iVar3 + 0x43e5)" (* "*") (cast_expression "(byte *)(iVar3 + 0x43e5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x43e5)" (( "(") (binary_expression "iVar3 + 0x43e5" (identifier "iVar3") (+ "+") (number_literal "0x43e5")) () ")"))))) (; ";")) (if_statement "if (bVar1 == 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "pcVar5 = "definition of \'%s\' overriding dynamic common definition";" (assignment_expression "pcVar5 = "definition of \'%s\' overriding dynamic common definition"" (identifier "pcVar5") (= "=") (string_literal ""definition of \'%s\' overriding dynamic common definition"" (" """) (string_content "definition of ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " overriding dynamic common definition") (" """))) (; ";")) (goto_statement "goto code_r0x001636fb;" (goto "goto") (statement_identifier "code_r0x001636fb") (; ";")) (} "}"))) (labeled_statement "code_r0x00163962:\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);" (statement_identifier "code_r0x00163962") (: ":") (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3)" (identifier "FUN_0005f0b0") (argument_list "("../../gold/parameters.h",0x5c,"options",iVar3)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "iVar3") () ")"))) (; ";")))) (case_statement "case 0xa8:" (case "case") (number_literal "0xa8") (: ":")) (case_statement "case 0xb8:\n    *param_6 = 1;\n    return 1;" (case "case") (number_literal "0xb8") (: ":") (expression_statement "*param_6 = 1;" (assignment_expression "*param_6 = 1" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "1")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";"))) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x00163917) */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* WARNING: Enum "DT": Some values do not have unique names */

bool var_3::Symbol_table::function_1
               (type_1 *to,type_2 var_11,type_3 var_6,type_4 defined,type_5 *var_15,
               bool *adjust_common_sizes,bool *adjust_dyndef,bool var_17)

{
  char cVar1;
  type_6 *var_13;
  type_7 var_1;
  type_2 var_12;
  int var_8;
  char *pcVar5;
  bool bVar6;
  
  *adjust_common_sizes = false;
  *adjust_dyndef = false;
  var_1 = to->field_0x2a & 7;
  if (var_1 == 4) {
    var_12 = var_2((type_2)((type_7)to->field_0x28 >> 4),false,0,true);
  }
  else if (var_1 == 0) {
    var_12 = var_2((type_2)((type_7)to->field_0x28 >> 4),
                           (bool)(*(type_7 *)&((to->u1_).output_segment)->output_lists_[3].
                                            super__Vector_base<var_3::Output_data*,var_4::allocator<var_3::Output_data*>var_5>
                                            ._M_impl._M_end_of_storage & 1),(to->u2_).shndx,
                           (bool)((type_7)to->field_0x2b >> 5 & 1));
  }
  else {
    var_12 = var_2((type_2)((type_7)to->field_0x28 >> 4),false,0xfff1,false);
  }
  if ((((to->field_0x28 & 0xf) == 6) != (var_6 == var_7)) &&
     (((to->field_0x2a & 7) != 0 ||
      (var_8 = (*((to->u1_).var_15)->_vptr_Object[5])((to->u1_).var_15), var_8 == 0)))) {
    pcVar5 = (char *)var_9("symbol \'%s\' used as both __thread and non-__thread");
    var_10(true,pcVar5,to,defined,var_15);
  }
  switch(var_11 + var_12 * 0x10) {
  case 0:
    if ((to->field_0x2a & 7) == 0) {
      var_13 = ((to->u1_).var_15)->input_file_;
      if (var_13 == (type_6 *)0x0) goto LAB_00163949;
      bVar6 = type_6::var_14(var_13);
      if (bVar6) {
        return false;
      }
    }
    if (var_15 != (type_5 *)0x0) {
      if (var_15->input_file_ == (type_6 *)0x0) {
LAB_00163949:
                    /* WARNING: Subroutine does not return */
        var_16("../../gold/object.h",0x1ea,"input_file");
      }
      bVar6 = type_6::var_14(var_15->input_file_);
      if (bVar6) {
        return false;
      }
    }
    if (parameters->options_ == (type_8 *)0x0) goto LAB_00163962;
    if ((parameters->options_->muldefs_).value == false) {
      pcVar5 = (char *)var_9("multiple definition of \'%s\'");
      var_10(true,pcVar5,to,defined,var_15);
      return false;
    }
    break;
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:
  case 6:
  case 7:
  case 9:
  case 10:
  case 0xb:
  case 0x11:
  case 0x12:
  case 0x13:
  case 0x14:
  case 0x15:
  case 0x16:
  case 0x17:
  case 0x19:
  case 0x1a:
  case 0x1b:
  case 0x26:
  case 0x27:
  case 0x29:
  case 0x2a:
  case 0x2b:
  case 0x36:
  case 0x37:
  case 0x39:
  case 0x3a:
  case 0x3b:
  case 0x44:
  case 0x45:
  case 0x46:
  case 0x47:
  case 0x55:
  case 0x56:
  case 0x57:
  case 0x65:
  case 0x66:
  case 0x67:
  case 0x76:
  case 0x77:
  case 0x81:
  case 0x82:
  case 0x83:
  case 0x84:
  case 0x85:
  case 0x86:
  case 0x87:
  case 0x89:
  case 0x91:
  case 0x92:
  case 0x93:
  case 0x94:
  case 0x95:
  case 0x96:
  case 0x97:
  case 0x99:
  case 0xa4:
  case 0xa5:
  case 0xa6:
  case 0xa7:
  case 0xa9:
  case 0xb4:
  case 0xb5:
  case 0xb6:
  case 0xb7:
  case 0xb9:
    break;
  case 8:
    if (parameters->options_ != (type_8 *)0x0) {
      if ((parameters->options_->warn_common_).value != false) {
        pcVar5 = (char *)var_9("common \'%s\' overridden by previous definition");
        var_10(false,pcVar5,to,defined,var_15);
        return false;
      }
      return false;
    }
    goto LAB_00163962;
  default:
                    /* WARNING: Subroutine does not return */
    var_16("../../gold/resolve.cc",0x379,"should_override");
  case 0x10:
  case 0x18:
  case 0x20:
  case 0x21:
  case 0x28:
  case 0x30:
  case 0x31:
  case 0x38:
  case 0x40:
  case 0x41:
  case 0x42:
  case 0x48:
  case 0x49:
  case 0x4a:
  case 0x4b:
  case 0x50:
  case 0x51:
  case 0x54:
  case 0x58:
  case 0x59:
  case 0x5a:
  case 0x5b:
  case 0x60:
  case 0x61:
  case 0x62:
  case 99:
  case 100:
  case 0x68:
  case 0x69:
  case 0x6a:
  case 0x6b:
  case 0x70:
  case 0x71:
  case 0x72:
  case 0x73:
  case 0x74:
  case 0x75:
  case 0x78:
  case 0x79:
  case 0x7a:
  case 0x7b:
  case 0x98:
    return true;
  case 0x22:
  case 0x32:
    if ((to->field_0x2a & 7) != 0) {
LAB_00163930:
                    /* WARNING: Subroutine does not return */
      var_16("../../gold/symtab.h",0xa1,"object");
    }
    if (((type_9 *)var_15 == (to->u1_).output_segment) &&
       (bVar6 = to->version_ == (char *)0x0 && var_17, bVar6)) {
      return bVar6;
    }
    if (-1 < (char)to->field_0x2a) {
      return false;
    }
    if ((to->field_0x2c & 2) == 0) {
      return false;
    }
    var_1 = *(type_7 *)&((to->u1_).output_segment)->output_lists_[3].
                      super__Vector_base<var_3::Output_data*,var_4::allocator<var_3::Output_data*>var_5>.
                      _M_impl._M_end_of_storage;
    goto joined_r0x00163817;
  case 0x23:
  case 0x33:
  case 0xa2:
  case 0xa3:
  case 0xb2:
  case 0xb3:
    if (-1 < (char)to->field_0x2a) {
      return false;
    }
    if ((to->field_0x2c & 2) == 0) {
      return false;
    }
    if ((to->field_0x2a & 7) != 0) goto LAB_00163930;
    var_1 = *(type_7 *)&((to->u1_).output_segment)->output_lists_[3].
                      super__Vector_base<var_3::Output_data*,var_4::allocator<var_3::Output_data*>var_5>.
                      _M_impl._M_end_of_storage;
joined_r0x00163817:
    if ((var_1 & 0x40) != 0) {
      return (bool)(var_1 >> 1 & 1 ^ 1);
    }
    break;
  case 0x24:
  case 0x25:
  case 0x34:
  case 0x35:
    *adjust_dyndef = true;
    return false;
  case 0x43:
  case 0x52:
  case 0x53:
    *adjust_dyndef = true;
    return true;
  case 0x80:
  case 0x90:
  case 0xa0:
  case 0xb0:
    if (parameters->options_ != (type_8 *)0x0) {
      cVar1 = (parameters->options_->warn_common_).value;
      if ((bool)cVar1 == false) {
        return true;
      }
      pcVar5 = "definition of \'%s\' overriding common";
LAB_001636fb:
      pcVar5 = (char *)var_9(pcVar5);
      var_10(false,pcVar5,to,defined,var_15);
      return (bool)cVar1;
    }
    goto LAB_00163962;
  case 0x88:
  case 0x8a:
  case 0x8b:
  case 0x9a:
  case 0x9b:
  case 0xaa:
  case 0xab:
  case 0xba:
  case 0xbb:
    *adjust_common_sizes = true;
    break;
  case 0xa1:
  case 0xb1:
    if (parameters->options_ != (type_8 *)0x0) {
      cVar1 = (parameters->options_->warn_common_).value;
      if ((bool)cVar1 == false) {
        return true;
      }
      pcVar5 = "definition of \'%s\' overriding dynamic common definition";
      goto LAB_001636fb;
    }
LAB_00163962:
                    /* WARNING: Subroutine does not return */
    var_16("../../gold/parameters.h",0x5c,"options");
  case 0xa8:
  case 0xb8:
    *adjust_common_sizes = true;
    return true;
  }
  return false;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x00163917) */

uint MASKED(int param_1,int param_2,int param_3,undefined4 param_4,int param_5,
                 undefined1 *param_6,undefined1 *param_7,byte param_8)

{
  byte bVar1;
  char cVar2;
  int iVar3;
  undefined4 uVar4;
  char *pcVar5;
  undefined3 uVar6;
  undefined3 extraout_var;
  undefined3 extraout_var_00;
  undefined8 uVar7;
  
  *param_6 = 0;
  *param_7 = 0;
  bVar1 = *(byte *)(param_1 + 0x2a) & 7;
  if (bVar1 == 4) {
    uVar7 = FUN_001630f0(1);
  }
  else if (bVar1 == 0) {
    uVar7 = FUN_001630f0(*(byte *)(param_1 + 0x2b) >> 5 & 1);
  }
  else {
    uVar7 = FUN_001630f0(0);
  }
  uVar6 = (undefined3)((ulonglong)uVar7 >> 0x28);
  if ((((*(byte *)(param_1 + 0x28) & 0xf) == 6) != (param_3 == 6)) &&
     (((*(byte *)(param_1 + 0x2a) & 7) != 0 ||
      (iVar3 = (**(code **)(**(int **)(param_1 + 8) + 0x14))(*(int **)(param_1 + 8)),
      uVar6 = extraout_var, iVar3 == 0)))) {
    uVar4 = gettext("symbol \'%s\' used as both __thread and non-__thread");
    FUN_00163350(1,uVar4,param_1,param_4,param_5);
    uVar6 = extraout_var_00;
  }
  param_2 = param_2 + (int)uVar7 * 0x10;
  switch(param_2) {
  case 0:
    if ((*(byte *)(param_1 + 0x2a) & 7) == 0) {
      iVar3 = *(int *)(*(int *)(param_1 + 8) + 0x1c);
      if (iVar3 == 0) goto code_r0x00163949;
      cVar2 = FUN_0005cf90(iVar3);
      if (cVar2 != '\0') {
        return 0;
      }
    }
    if (param_5 != 0) {
      iVar3 = *(int *)(param_5 + 0x1c);
      if (iVar3 == 0) {
code_r0x00163949:
                    /* WARNING: Subroutine does not return */
        FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file",iVar3);
      }
      cVar2 = FUN_0005cf90(iVar3);
      if (cVar2 != '\0') {
        return 0;
      }
    }
    iVar3 = *(int *)(DAT_00302378 + 8);
    if (iVar3 == 0) goto code_r0x00163962;
    if (*(char *)(iVar3 + 0x525d) == '\0') {
      uVar4 = gettext("multiple definition of \'%s\'");
      FUN_00163350(1,uVar4,param_1,param_4,param_5);
      return 0;
    }
    break;
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:
  case 6:
  case 7:
  case 9:
  case 10:
  case 0xb:
  case 0x11:
  case 0x12:
  case 0x13:
  case 0x14:
  case 0x15:
  case 0x16:
  case 0x17:
  case 0x19:
  case 0x1a:
  case 0x1b:
  case 0x26:
  case 0x27:
  case 0x29:
  case 0x2a:
  case 0x2b:
  case 0x36:
  case 0x37:
  case 0x39:
  case 0x3a:
  case 0x3b:
  case 0x44:
  case 0x45:
  case 0x46:
  case 0x47:
  case 0x55:
  case 0x56:
  case 0x57:
  case 0x65:
  case 0x66:
  case 0x67:
  case 0x76:
  case 0x77:
  case 0x81:
  case 0x82:
  case 0x83:
  case 0x84:
  case 0x85:
  case 0x86:
  case 0x87:
  case 0x89:
  case 0x91:
  case 0x92:
  case 0x93:
  case 0x94:
  case 0x95:
  case 0x96:
  case 0x97:
  case 0x99:
  case 0xa4:
  case 0xa5:
  case 0xa6:
  case 0xa7:
  case 0xa9:
  case 0xb4:
  case 0xb5:
  case 0xb6:
  case 0xb7:
  case 0xb9:
    break;
  case 8:
    iVar3 = *(int *)(DAT_00302378 + 8);
    if (iVar3 != 0) {
      if (*(char *)(iVar3 + 0x43e5) != '\0') {
        uVar4 = gettext("common \'%s\' overridden by previous definition");
        FUN_00163350(0,uVar4,param_1,param_4,param_5);
        return 0;
      }
      return 0;
    }
    goto code_r0x00163962;
  default:
                    /* WARNING: Subroutine does not return */
    FUN_0005f0b0("../../gold/resolve.cc",0x379,"should_override",param_2);
  case 0x10:
  case 0x18:
  case 0x20:
  case 0x21:
  case 0x28:
  case 0x30:
  case 0x31:
  case 0x38:
  case 0x40:
  case 0x41:
  case 0x42:
  case 0x48:
  case 0x49:
  case 0x4a:
  case 0x4b:
  case 0x50:
  case 0x51:
  case 0x54:
  case 0x58:
  case 0x59:
  case 0x5a:
  case 0x5b:
  case 0x60:
  case 0x61:
  case 0x62:
  case 99:
  case 100:
  case 0x68:
  case 0x69:
  case 0x6a:
  case 0x6b:
  case 0x70:
  case 0x71:
  case 0x72:
  case 0x73:
  case 0x74:
  case 0x75:
  case 0x78:
  case 0x79:
  case 0x7a:
  case 0x7b:
  case 0x98:
    return 1;
  case 0x22:
  case 0x32:
    bVar1 = *(byte *)(param_1 + 0x2a);
    if ((bVar1 & 7) != 0) {
code_r0x00163930:
                    /* WARNING: Subroutine does not return */
      FUN_0005f0b0("../../gold/symtab.h",0xa1,"object",bVar1);
    }
    if ((param_5 == *(int *)(param_1 + 8)) &&
       (param_8 = *(int *)(param_1 + 4) == 0 & param_8, param_8 != 0)) {
      return CONCAT31(uVar6,param_8);
    }
    if (-1 < (char)bVar1) {
      return 0;
    }
    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {
      return 0;
    }
    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);
    goto joined_r0x00163817;
  case 0x23:
  case 0x33:
  case 0xa2:
  case 0xa3:
  case 0xb2:
  case 0xb3:
    bVar1 = *(byte *)(param_1 + 0x2a);
    if (-1 < (char)bVar1) {
      return 0;
    }
    if ((*(byte *)(param_1 + 0x2c) & 2) == 0) {
      return 0;
    }
    if ((bVar1 & 7) != 0) goto code_r0x00163930;
    bVar1 = *(byte *)(*(int *)(param_1 + 8) + 0x2c);
joined_r0x00163817:
    if ((bVar1 & 0x40) != 0) {
      return bVar1 >> 1 & 1 ^ 1;
    }
    break;
  case 0x24:
  case 0x25:
  case 0x34:
  case 0x35:
    *param_7 = 1;
    return 0;
  case 0x43:
  case 0x52:
  case 0x53:
    *param_7 = 1;
    return 1;
  case 0x80:
  case 0x90:
  case 0xa0:
  case 0xb0:
    iVar3 = *(int *)(DAT_00302378 + 8);
    if (iVar3 != 0) {
      bVar1 = *(byte *)(iVar3 + 0x43e5);
      if (bVar1 == 0) {
        return 1;
      }
      pcVar5 = "definition of \'%s\' overriding common";
code_r0x001636fb:
      uVar4 = gettext(pcVar5);
      FUN_00163350(0,uVar4,param_1,param_4,param_5);
      return (uint)bVar1;
    }
    goto code_r0x00163962;
  case 0x88:
  case 0x8a:
  case 0x8b:
  case 0x9a:
  case 0x9b:
  case 0xaa:
  case 0xab:
  case 0xba:
  case 0xbb:
    *param_6 = 1;
    break;
  case 0xa1:
  case 0xb1:
    iVar3 = *(int *)(DAT_00302378 + 8);
    if (iVar3 != 0) {
      bVar1 = *(byte *)(iVar3 + 0x43e5);
      if (bVar1 == 0) {
        return 1;
      }
      pcVar5 = "definition of \'%s\' overriding dynamic common definition";
      goto code_r0x001636fb;
    }
code_r0x00163962:
                    /* WARNING: Subroutine does not return */
    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",iVar3);
  case 0xa8:
  case 0xb8:
    *param_6 = 1;
    return 1;
  }
  return 0;
}

