
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Unknown calling convention */

int obj_elf_vendor_attribute(int vendor)

{
  byte *n;
  uint uVar1;
  byte bVar2;
  char cVar3;
  char *pcVar4;
  char *format;
  uint uVar5;
  recorded_attribute_info *prVar6;
  int iVar7;
  uint uVar8;
  char *local_4c;
  uint local_44;
  int len;
  expressionS exp;
  
  bVar2 = *input_line_pointer;
  if (bVar2 == 0x20) {
    bVar2 = input_line_pointer[1];
    input_line_pointer = input_line_pointer + 1;
  }
  local_4c = input_line_pointer;
  if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 4) == 0) {
    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 0x8c) != 0) || (bVar2 == 0x5f))
    {
      iVar7 = 1 - (int)input_line_pointer;
      do {
        do {
          n = (byte *)input_line_pointer + iVar7;
          input_line_pointer = (char *)((byte *)input_line_pointer + 1);
        } while ((PTR__sch_istable_0006bf68[(uint)(byte)*input_line_pointer * 2] & 0x8c) != 0);
      } while (*input_line_pointer == 0x5f);
      if (n != (byte *)0x0) {
        pcVar4 = xstrndup(local_4c,(size_t)n);
        format = (char *)dcgettext(0,"Attribute name not recognised: %s",5);
        as_bad(format,pcVar4);
        ignore_rest_of_line();
        free(pcVar4);
        return 0;
      }
    }
  }
  else {
    expr(0,&exp,expr_normal);
    uVar1 = (uint)exp.X_add_number;
    if ((exp._16_1_ == '\x02') &&
       (uVar5 = _bfd_elf_obj_attrs_arg_type(stdoutput,vendor,(uint)exp.X_add_number),
       *input_line_pointer == ',')) {
      input_line_pointer = input_line_pointer + 1;
      local_44 = 0;
      if ((uVar5 & 1) != 0) {
        expr(0,&exp,expr_normal);
        local_44 = (uint)exp.X_add_number;
        if (exp._16_1_ != '\x02') {
          pcVar4 = "expected numeric constant";
          goto LAB_0004ab8e;
        }
      }
      uVar8 = uVar5 & 3;
      if (uVar8 == 3) {
        if (*input_line_pointer != ',') {
          pcVar4 = "expected comma";
          goto LAB_0004ab8e;
        }
        input_line_pointer = input_line_pointer + 1;
      }
      if ((uVar5 & 2) == 0) {
LAB_0004acc6:
        uVar5 = 1 << ((byte)uVar1 & 0x1f);
        prVar6 = recorded_attributes;
        do {
          if (prVar6 == (recorded_attribute_info *)0x0) {
            prVar6 = (recorded_attribute_info *)xmalloc(0x10);
            prVar6->base = uVar1 >> 5;
            prVar6->vendor = vendor;
            prVar6->mask = uVar5;
            prVar6->next = recorded_attributes;
            recorded_attributes = prVar6;
LAB_0004ad0b:
            if (uVar8 == 2) {
              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);
            }
            else if (uVar8 == 3) {
              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);
            }
            else {
              if (uVar8 != 1) {
                    /* WARNING: Subroutine does not return */
                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");
              }
              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);
            }
            demand_empty_rest_of_line();
            return uVar1;
          }
          if ((vendor == prVar6->vendor) && (uVar1 >> 5 == prVar6->base)) {
            prVar6->mask = prVar6->mask | uVar5;
            goto LAB_0004ad0b;
          }
          prVar6 = prVar6->next;
        } while( true );
      }
      cVar3 = *input_line_pointer;
      if (cVar3 == ' ') {
        cVar3 = input_line_pointer[1];
        input_line_pointer = input_line_pointer + 1;
      }
      if (cVar3 == '\"') {
        local_4c = demand_copy_C_string(&len);
        goto LAB_0004acc6;
      }
      pcVar4 = "bad string constant";
      goto LAB_0004ab8e;
    }
  }
  pcVar4 = "expected <tag> , <value>";
LAB_0004ab8e:
  pcVar4 = (char *)dcgettext(0,pcVar4,5);
  as_bad(pcVar4);
  ignore_rest_of_line();
  return 0;
}



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

uint FUN_0004aaf0(int param_1)

{
  byte *pbVar1;
  uint uVar2;
  byte bVar3;
  undefined4 uVar4;
  void *__ptr;
  uint uVar5;
  undefined4 *puVar6;
  int iVar7;
  uint uVar8;
  char *pcVar9;
  byte *local_4c;
  uint local_44;
  undefined1 local_34 [4];
  undefined1 local_30 [8];
  uint local_28;
  char local_20;
  
  bVar3 = *DAT_00074f78;
  if (bVar3 == 0x20) {
    bVar3 = DAT_00074f78[1];
    DAT_00074f78 = DAT_00074f78 + 1;
  }
  local_4c = DAT_00074f78;
  if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0) {
    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))
    {
      iVar7 = 1 - (int)DAT_00074f78;
      do {
        do {
          pbVar1 = DAT_00074f78 + iVar7;
          DAT_00074f78 = DAT_00074f78 + 1;
        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);
      } while (*DAT_00074f78 == 0x5f);
      if (pbVar1 != (byte *)0x0) {
        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);
        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);
        FUN_0002a430(uVar4,__ptr);
        FUN_0002c760();
        free(__ptr);
        return 0;
      }
    }
  }
  else {
    FUN_00021a10(0,local_30,1);
    uVar2 = local_28;
    if ((local_20 == '\x02') &&
       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))
    {
      DAT_00074f78 = DAT_00074f78 + 1;
      local_44 = 0;
      if ((uVar5 & 1) != 0) {
        FUN_00021a10(0,local_30,1);
        local_44 = local_28;
        if (local_20 != '\x02') {
          pcVar9 = "expected numeric constant";
          goto LAB_0004ab8e;
        }
      }
      uVar8 = uVar5 & 3;
      if (uVar8 == 3) {
        if (*DAT_00074f78 != 0x2c) {
          pcVar9 = "expected comma";
          goto LAB_0004ab8e;
        }
        DAT_00074f78 = DAT_00074f78 + 1;
      }
      if ((uVar5 & 2) == 0) {
LAB_0004acc6:
        uVar5 = 1 << ((byte)uVar2 & 0x1f);
        puVar6 = DAT_00074c74;
        do {
          if (puVar6 == (undefined4 *)0x0) {
            puVar6 = (undefined4 *)xmalloc(0x10);
            puVar6[2] = uVar2 >> 5;
            puVar6[1] = param_1;
            puVar6[3] = uVar5;
            *puVar6 = DAT_00074c74;
            DAT_00074c74 = puVar6;
LAB_0004ad0b:
            if (uVar8 == 2) {
              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);
            }
            else if (uVar8 == 3) {
              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);
            }
            else {
              if (uVar8 != 1) {
                    /* WARNING: Subroutine does not return */
                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);
              }
              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);
            }
            FUN_0002c9b0();
            return uVar2;
          }
          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {
            puVar6[3] = puVar6[3] | uVar5;
            goto LAB_0004ad0b;
          }
          puVar6 = (undefined4 *)*puVar6;
        } while( true );
      }
      bVar3 = *DAT_00074f78;
      if (bVar3 == 0x20) {
        bVar3 = DAT_00074f78[1];
        DAT_00074f78 = DAT_00074f78 + 1;
      }
      if (bVar3 == 0x22) {
        local_4c = (byte *)FUN_00032080(local_34);
        goto LAB_0004acc6;
      }
      pcVar9 = "bad string constant";
      goto LAB_0004ab8e;
    }
  }
  pcVar9 = "expected <tag> , <value>";
LAB_0004ab8e:
  uVar4 = dcgettext(0,pcVar9,5);
  FUN_0002a430(uVar4);
  FUN_0002c760();
  return 0;
}


CALL 0x00016d1a
ADD EAX,0x2150b
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x4c
LEA ESI,[EAX + 0x8f78]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESP + 0x10],EAX
MOVZX EAX,byte ptr [EAX]
CMP AL,0x20
JNZ 0x0004ab29
MOV EAX,dword ptr [ESP + 0x10]
LEA EDX,[EAX + 0x1]
MOV dword ptr [ESP + 0x10],EDX
MOV dword ptr [ESI],EDX
MOVZX EAX,byte ptr [EAX + 0x1]
MOV EDI,dword ptr [ESP + 0xc]
MOVZX EDX,AL
MOV EBX,dword ptr [EDI + 0xffffff68]
MOVZX EDX,word ptr [EBX + EDX*0x2]
TEST DL,0x4
JNZ 0x0004ac00
AND EDX,0x8c
JNZ 0x0004ab4f
CMP AL,0x5f
JNZ 0x0004ab7a
MOV ECX,dword ptr [ESP + 0x10]
MOV EDI,0x1
MOV EAX,ECX
SUB EDI,ECX
LEA ESI,[ESI]
LEA EBP,[EAX + EDI*0x1]
ADD EAX,0x1
MOV dword ptr [ESI],EAX
MOVZX ECX,byte ptr [EAX]
TEST byte ptr [EBX + ECX*0x2],0x8c
JNZ 0x0004ab60
CMP CL,0x5f
JZ 0x0004ab60
TEST EBP,EBP
JNZ 0x0004abb0
SUB ESP,0x4
PUSH 0x5
MOV ESI,dword ptr [ESP + 0x14]
LEA EAX,[ESI + 0xfffe99bd]
MOV EBX,ESI
PUSH EAX
PUSH 0x0
CALL 0x000131a0
MOV dword ptr [ESP],EAX
CALL 0x0002a430
CALL 0x0002c760
ADD ESP,0x10
XOR EAX,EAX
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
PUSH EBP
PUSH dword ptr [ESP + 0x1c]
MOV EDI,dword ptr [ESP + 0x1c]
MOV EBX,EDI
CALL 0x0004c3a0
ADD ESP,0xc
MOV ESI,EAX
LEA EAX,[EDI + 0xfffea0cc]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131a0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x0002a430
CALL 0x0002c760
MOV dword ptr [ESP],ESI
CALL 0x000137b0
ADD ESP,0x10
XOR EAX,EAX
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
PUSH 0x1
LEA EDI,[ESP + 0x34]
PUSH EDI
PUSH 0x0
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00021a10
ADD ESP,0x10
CMP byte ptr [ESP + 0x3c],0x2
JNZ 0x0004ab7a
MOV EAX,dword ptr [ESP + 0x34]
SUB ESP,0x4
MOV dword ptr [ESP + 0x18],EAX
PUSH EAX
PUSH dword ptr [ESP + 0x68]
MOV EBX,dword ptr [ESP + 0x18]
LEA EAX,[EBX + 0x8f44]
MOV dword ptr [ESP + 0x28],EAX
PUSH dword ptr [EAX]
CALL 0x00013170
ADD ESP,0x10
MOV EBP,EAX
MOV EAX,dword ptr [ESI]
CMP byte ptr [EAX],0x2c
JNZ 0x0004ab7a
ADD EAX,0x1
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESI],EAX
TEST EBP,0x1
JNZ 0x0004adc5
MOV EDI,EBP
AND EDI,0x3
CMP EDI,0x3
JZ 0x0004ae05
AND EBP,0x2
JZ 0x0004acc6
MOV EDX,dword ptr [ESI]
MOVZX EAX,byte ptr [EDX]
CMP AL,0x20
JZ 0x0004ad58
CMP AL,0x22
JZ 0x0004acae
SUB ESP,0x4
PUSH 0x5
MOV EDI,dword ptr [ESP + 0x14]
LEA EAX,[EDI + 0xfffe99a9]
MOV EBX,EDI
PUSH EAX
PUSH 0x0
JMP 0x0004ab8e
SUB ESP,0xc
LEA EAX,[ESP + 0x34]
PUSH EAX
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00032080
MOV dword ptr [ESP + 0x20],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x14]
MOV EBP,0x1
MOV ESI,EAX
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0xc]
SHR ESI,0x5
SHL EBP,CL
MOV EAX,dword ptr [EAX + 0x8c74]
TEST EAX,EAX
JNZ 0x0004acfa
JMP 0x0004ad90
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x0004ad90
MOV EBX,dword ptr [EAX + 0x4]
CMP dword ptr [ESP + 0x60],EBX
JNZ 0x0004acf0
CMP ESI,dword ptr [EAX + 0x8]
JNZ 0x0004acf0
OR dword ptr [EAX + 0xc],EBP
CMP EDI,0x2
JZ 0x0004ae16
CMP EDI,0x3
JNZ 0x0004ad66
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x28]
PUSH dword ptr [ESP + 0x28]
PUSH dword ptr [ESP + 0x78]
MOV EAX,dword ptr [ESP + 0x38]
PUSH dword ptr [EAX]
MOV EBX,dword ptr [ESP + 0x2c]
CALL 0x00013150
ADD ESP,0x20
MOV EAX,dword ptr [ESP + 0x14]
MOV EBX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x10],EAX
CALL 0x0002c9b0
MOV EAX,dword ptr [ESP + 0x10]
JMP 0x0004aba5
LEA EAX,[EDX + 0x1]
MOV dword ptr [ESI],EAX
MOVZX EAX,byte ptr [EDX + 0x1]
JMP 0x0004ac91
CMP EDI,0x1
JZ 0x0004ae39
PUSH EAX
MOV EBX,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xfffea20c]
PUSH EAX
LEA EAX,[EBX + 0xfffe9841]
PUSH 0x6ca
PUSH EAX
CALL 0x0002a550
SUB ESP,0xc
PUSH 0x10
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x000137c0
MOV EBX,dword ptr [ESP + 0x1c]
MOV ECX,dword ptr [ESP + 0x70]
ADD ESP,0x10
MOV dword ptr [EAX + 0x8],ESI
MOV EDX,dword ptr [EBX + 0x8c74]
MOV dword ptr [EAX + 0x4],ECX
MOV dword ptr [EAX + 0xc],EBP
MOV dword ptr [EAX],EDX
MOV dword ptr [EBX + 0x8c74],EAX
JMP 0x0004ad0b
SUB ESP,0x4
PUSH 0x1
PUSH EDI
PUSH 0x0
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00021a10
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x34]
CMP byte ptr [ESP + 0x3c],0x2
MOV dword ptr [ESP + 0x18],EAX
JZ 0x0004ac71
SUB ESP,0x4
PUSH 0x5
MOV EDI,dword ptr [ESP + 0x14]
LEA EAX,[EDI + 0xfffe9980]
MOV EBX,EDI
PUSH EAX
PUSH 0x0
JMP 0x0004ab8e
MOV EAX,dword ptr [ESI]
CMP byte ptr [EAX],0x2c
JNZ 0x0004ae5c
ADD EAX,0x1
MOV dword ptr [ESI],EAX
JMP 0x0004ac7f
PUSH dword ptr [ESP + 0x10]
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x68]
MOV EAX,dword ptr [ESP + 0x28]
PUSH dword ptr [EAX]
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00013200
ADD ESP,0x10
JMP 0x0004ad3e
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x68]
MOV EAX,dword ptr [ESP + 0x28]
PUSH dword ptr [EAX]
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00013310
ADD ESP,0x10
JMP 0x0004ad3e
SUB ESP,0x4
PUSH 0x5
MOV EDI,dword ptr [ESP + 0x14]
LEA EAX,[EDI + 0xfffe999a]
MOV EBX,EDI
PUSH EAX
PUSH 0x0
JMP 0x0004ab8e
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nuint FUN_0004aaf0(int param_1)\n\n{\n  byte *pbVar1;\n  uint uVar2;\n  byte bVar3;\n  undefined4 uVar4;\n  void *__ptr;\n  uint uVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  uint uVar8;\n  char *pcVar9;\n  byte *local_4c;\n  uint local_44;\n  undefined1 local_34 [4];\n  undefined1 local_30 [8];\n  uint local_28;\n  char local_20;\n  \n  bVar3 = *DAT_00074f78;\n  if (bVar3 == 0x20) {\n    bVar3 = DAT_00074f78[1];\n    DAT_00074f78 = DAT_00074f78 + 1;\n  }\n  local_4c = DAT_00074f78;\n  if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0) {\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }\n  }\n  else {\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }\n  pcVar9 = "expected <tag> , <value>";\nLAB_0004ab8e:\n  uVar4 = dcgettext(0,pcVar9,5);\n  FUN_0002a430(uVar4);\n  FUN_0002c760();\n  return 0;\n}\n\n" comment (function_definition "uint FUN_0004aaf0(int param_1)\n\n{\n  byte *pbVar1;\n  uint uVar2;\n  byte bVar3;\n  undefined4 uVar4;\n  void *__ptr;\n  uint uVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  uint uVar8;\n  char *pcVar9;\n  byte *local_4c;\n  uint local_44;\n  undefined1 local_34 [4];\n  undefined1 local_30 [8];\n  uint local_28;\n  char local_20;\n  \n  bVar3 = *DAT_00074f78;\n  if (bVar3 == 0x20) {\n    bVar3 = DAT_00074f78[1];\n    DAT_00074f78 = DAT_00074f78 + 1;\n  }\n  local_4c = DAT_00074f78;\n  if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0) {\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }\n  }\n  else {\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }\n  pcVar9 = "expected <tag> , <value>";\nLAB_0004ab8e:\n  uVar4 = dcgettext(0,pcVar9,5);\n  FUN_0002a430(uVar4);\n  FUN_0002c760();\n  return 0;\n}" type_identifier (function_declarator "FUN_0004aaf0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  uint uVar2;\n  byte bVar3;\n  undefined4 uVar4;\n  void *__ptr;\n  uint uVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  uint uVar8;\n  char *pcVar9;\n  byte *local_4c;\n  uint local_44;\n  undefined1 local_34 [4];\n  undefined1 local_30 [8];\n  uint local_28;\n  char local_20;\n  \n  bVar3 = *DAT_00074f78;\n  if (bVar3 == 0x20) {\n    bVar3 = DAT_00074f78[1];\n    DAT_00074f78 = DAT_00074f78 + 1;\n  }\n  local_4c = DAT_00074f78;\n  if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0) {\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }\n  }\n  else {\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }\n  pcVar9 = "expected <tag> , <value>";\nLAB_0004ab8e:\n  uVar4 = dcgettext(0,pcVar9,5);\n  FUN_0002a430(uVar4);\n  FUN_0002c760();\n  return 0;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "byte *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "undefined1 local_34 [4];" type_identifier (array_declarator "local_34 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_30 [8];" type_identifier (array_declarator "local_30 [8]" identifier [ number_literal ]) ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "char local_20;" primitive_type identifier ;) (expression_statement "bVar3 = *DAT_00074f78;" (assignment_expression "bVar3 = *DAT_00074f78" identifier = (pointer_expression "*DAT_00074f78" * identifier)) ;) (if_statement "if (bVar3 == 0x20) {\n    bVar3 = DAT_00074f78[1];\n    DAT_00074f78 = DAT_00074f78 + 1;\n  }" if (parenthesized_expression "(bVar3 == 0x20)" ( (binary_expression "bVar3 == 0x20" identifier == number_literal) )) (compound_statement "{\n    bVar3 = DAT_00074f78[1];\n    DAT_00074f78 = DAT_00074f78 + 1;\n  }" { (expression_statement "bVar3 = DAT_00074f78[1];" (assignment_expression "bVar3 = DAT_00074f78[1]" identifier = (subscript_expression "DAT_00074f78[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00074f78 = DAT_00074f78 + 1;" (assignment_expression "DAT_00074f78 = DAT_00074f78 + 1" identifier = (binary_expression "DAT_00074f78 + 1" identifier + number_literal)) ;) })) (expression_statement "local_4c = DAT_00074f78;" (assignment_expression "local_4c = DAT_00074f78" identifier = identifier) ;) (if_statement "if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0) {\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }\n  }\n  else {\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }" if (parenthesized_expression "((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0)" ( (binary_expression "(*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0" (parenthesized_expression "(*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4)" ( (binary_expression "*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4" (pointer_expression "*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" * (cast_expression "(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" ( (binary_expression "PTR__sch_istable_0006bf68 + (uint)bVar3 * 2" identifier + (binary_expression "(uint)bVar3 * 2" (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }\n  }" { (if_statement "if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }" if (parenthesized_expression "(((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))" ( (binary_expression "((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f)" (parenthesized_expression "((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0)" ( (binary_expression "(*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0" (parenthesized_expression "(*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c)" ( (binary_expression "*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c" (pointer_expression "*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" * (cast_expression "(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" ( (binary_expression "PTR__sch_istable_0006bf68 + (uint)bVar3 * 2" identifier + (binary_expression "(uint)bVar3 * 2" (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar3 == 0x5f)" ( (binary_expression "bVar3 == 0x5f" identifier == number_literal) ))) )) (compound_statement "{\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }" { (expression_statement "iVar7 = 1 - (int)DAT_00074f78;" (assignment_expression "iVar7 = 1 - (int)DAT_00074f78" identifier = (binary_expression "1 - (int)DAT_00074f78" number_literal - (cast_expression "(int)DAT_00074f78" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);" do (compound_statement "{\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      }" { (do_statement "do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);" do (compound_statement "{\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        }" { (expression_statement "pbVar1 = DAT_00074f78 + iVar7;" (assignment_expression "pbVar1 = DAT_00074f78 + iVar7" identifier = (binary_expression "DAT_00074f78 + iVar7" identifier + identifier)) ;) (expression_statement "DAT_00074f78 = DAT_00074f78 + 1;" (assignment_expression "DAT_00074f78 = DAT_00074f78 + 1" identifier = (binary_expression "DAT_00074f78 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0)" ( (binary_expression "(PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0" (parenthesized_expression "(PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c)" ( (binary_expression "PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c" (subscript_expression "PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2]" identifier [ (binary_expression "(uint)*DAT_00074f78 * 2" (binary_expression "(uint)*DAT_00074f78" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal) ]) & number_literal) )) != number_literal) )) ;) }) while (parenthesized_expression "(*DAT_00074f78 == 0x5f)" ( (binary_expression "*DAT_00074f78 == 0x5f" (pointer_expression "*DAT_00074f78" * identifier) == number_literal) )) ;) (if_statement "if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }" if (parenthesized_expression "(pbVar1 != (byte *)0x0)" ( (binary_expression "pbVar1 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }" { (expression_statement "__ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);" (assignment_expression "__ptr = (void *)FUN_0004c3a0(local_4c,pbVar1)" identifier = (cast_expression "(void *)FUN_0004c3a0(local_4c,pbVar1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0004c3a0(local_4c,pbVar1)" identifier (argument_list "(local_4c,pbVar1)" ( identifier , identifier ))))) ;) (expression_statement "uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);" (assignment_expression "uVar4 = dcgettext(0,"Attribute name not recognised: %s",5)" identifier = (call_expression "dcgettext(0,"Attribute name not recognised: %s",5)" identifier (argument_list "(0,"Attribute name not recognised: %s",5)" ( number_literal , (string_literal ""Attribute name not recognised: %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a430(uVar4,__ptr);" (call_expression "FUN_0002a430(uVar4,__ptr)" identifier (argument_list "(uVar4,__ptr)" ( identifier , identifier ))) ;) (expression_statement "FUN_0002c760();" (call_expression "FUN_0002c760()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) })) }) (else_clause "else {\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }" else (compound_statement "{\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }" { (expression_statement "FUN_00021a10(0,local_30,1);" (call_expression "FUN_00021a10(0,local_30,1)" identifier (argument_list "(0,local_30,1)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "uVar2 = local_28;" (assignment_expression "uVar2 = local_28" identifier = identifier) ;) (if_statement "if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }" if (parenthesized_expression "((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))" ( (binary_expression "(local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c)" (parenthesized_expression "(local_20 == '\x02')" ( (binary_expression "local_20 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c)" ( (comma_expression "uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c" (assignment_expression "uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28)" identifier = (call_expression "_bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28)" identifier (argument_list "(DAT_00074f44,param_1,local_28)" ( identifier , identifier , identifier )))) , (binary_expression "*DAT_00074f78 == 0x2c" (pointer_expression "*DAT_00074f78" * identifier) == number_literal)) ))) )) (compound_statement "{\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }" { (expression_statement "DAT_00074f78 = DAT_00074f78 + 1;" (assignment_expression "DAT_00074f78 = DAT_00074f78 + 1" identifier = (binary_expression "DAT_00074f78 + 1" identifier + number_literal)) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (if_statement "if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }" if (parenthesized_expression "((uVar5 & 1) != 0)" ( (binary_expression "(uVar5 & 1) != 0" (parenthesized_expression "(uVar5 & 1)" ( (binary_expression "uVar5 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }" { (expression_statement "FUN_00021a10(0,local_30,1);" (call_expression "FUN_00021a10(0,local_30,1)" identifier (argument_list "(0,local_30,1)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "local_44 = local_28;" (assignment_expression "local_44 = local_28" identifier = identifier) ;) (if_statement "if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }" if (parenthesized_expression "(local_20 != '\x02')" ( (binary_expression "local_20 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }" { (expression_statement "pcVar9 = "expected numeric constant";" (assignment_expression "pcVar9 = "expected numeric constant"" identifier = (string_literal ""expected numeric constant"" " string_content ")) ;) (goto_statement "goto LAB_0004ab8e;" goto statement_identifier ;) })) })) (expression_statement "uVar8 = uVar5 & 3;" (assignment_expression "uVar8 = uVar5 & 3" identifier = (binary_expression "uVar5 & 3" identifier & number_literal)) ;) (if_statement "if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }" if (parenthesized_expression "(uVar8 == 3)" ( (binary_expression "uVar8 == 3" identifier == number_literal) )) (compound_statement "{\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }" { (if_statement "if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }" if (parenthesized_expression "(*DAT_00074f78 != 0x2c)" ( (binary_expression "*DAT_00074f78 != 0x2c" (pointer_expression "*DAT_00074f78" * identifier) != number_literal) )) (compound_statement "{\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }" { (expression_statement "pcVar9 = "expected comma";" (assignment_expression "pcVar9 = "expected comma"" identifier = (string_literal ""expected comma"" " string_content ")) ;) (goto_statement "goto LAB_0004ab8e;" goto statement_identifier ;) })) (expression_statement "DAT_00074f78 = DAT_00074f78 + 1;" (assignment_expression "DAT_00074f78 = DAT_00074f78 + 1" identifier = (binary_expression "DAT_00074f78 + 1" identifier + number_literal)) ;) })) (if_statement "if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }" if (parenthesized_expression "((uVar5 & 2) == 0)" ( (binary_expression "(uVar5 & 2) == 0" (parenthesized_expression "(uVar5 & 2)" ( (binary_expression "uVar5 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }" { (labeled_statement "LAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);" statement_identifier : (expression_statement "uVar5 = 1 << ((byte)uVar2 & 0x1f);" (assignment_expression "uVar5 = 1 << ((byte)uVar2 & 0x1f)" identifier = (binary_expression "1 << ((byte)uVar2 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar2 & 0x1f)" ( (binary_expression "(byte)uVar2 & 0x1f" (cast_expression "(byte)uVar2" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;)) (expression_statement "puVar6 = DAT_00074c74;" (assignment_expression "puVar6 = DAT_00074c74" identifier = identifier) ;) (do_statement "do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );" do (compound_statement "{\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        }" { (if_statement "if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }" if (parenthesized_expression "(puVar6 == (undefined4 *)0x0)" ( (binary_expression "puVar6 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }" { (expression_statement "puVar6 = (undefined4 *)xmalloc(0x10);" (assignment_expression "puVar6 = (undefined4 *)xmalloc(0x10)" identifier = (cast_expression "(undefined4 *)xmalloc(0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "puVar6[2] = uVar2 >> 5;" (assignment_expression "puVar6[2] = uVar2 >> 5" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = (binary_expression "uVar2 >> 5" identifier >> number_literal)) ;) (expression_statement "puVar6[1] = param_1;" (assignment_expression "puVar6[1] = param_1" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = uVar5;" (assignment_expression "puVar6[3] = uVar5" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar6 = DAT_00074c74;" (assignment_expression "*puVar6 = DAT_00074c74" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "DAT_00074c74 = puVar6;" (assignment_expression "DAT_00074c74 = puVar6" identifier = identifier) ;) (labeled_statement "LAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" statement_identifier : (if_statement "if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" if (parenthesized_expression "(uVar8 == 2)" ( (binary_expression "uVar8 == 2" identifier == number_literal) )) (compound_statement "{\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }" { (expression_statement "bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);" (call_expression "bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c)" identifier (argument_list "(DAT_00074f44,param_1,uVar2,local_4c)" ( identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" else (if_statement "if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" if (parenthesized_expression "(uVar8 == 3)" ( (binary_expression "uVar8 == 3" identifier == number_literal) )) (compound_statement "{\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }" { (expression_statement "bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);" (call_expression "bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c)" identifier (argument_list "(DAT_00074f44,param_1,uVar2,local_44,local_4c)" ( identifier , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" else (compound_statement "{\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" { (if_statement "if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }" if (parenthesized_expression "(uVar8 != 1)" ( (binary_expression "uVar8 != 1" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }" { comment (expression_statement "FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);" (call_expression "FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6)" identifier (argument_list "("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6)" ( (string_literal ""../../gas/config/obj-elf.c"" " string_content ") , number_literal , (string_literal ""obj_elf_vendor_attribute"" " string_content ") , identifier ))) ;) })) (expression_statement "bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);" (call_expression "bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44)" identifier (argument_list "(DAT_00074f44,param_1,uVar2,local_44)" ( identifier , identifier , identifier , identifier ))) ;) })))))) (expression_statement "FUN_0002c9b0();" (call_expression "FUN_0002c9b0()" identifier (argument_list "()" ( ))) ;) (return_statement "return uVar2;" return identifier ;) })) (if_statement "if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }" if (parenthesized_expression "((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2]))" ( (binary_expression "(param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])" (parenthesized_expression "(param_1 == puVar6[1])" ( (binary_expression "param_1 == puVar6[1]" identifier == (subscript_expression "puVar6[1]" identifier [ number_literal ])) )) && (parenthesized_expression "(uVar2 >> 5 == puVar6[2])" ( (binary_expression "uVar2 >> 5 == puVar6[2]" (binary_expression "uVar2 >> 5" identifier >> number_literal) == (subscript_expression "puVar6[2]" identifier [ number_literal ])) ))) )) (compound_statement "{\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }" { (expression_statement "puVar6[3] = puVar6[3] | uVar5;" (assignment_expression "puVar6[3] = puVar6[3] | uVar5" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = (binary_expression "puVar6[3] | uVar5" (subscript_expression "puVar6[3]" identifier [ number_literal ]) | identifier)) ;) (goto_statement "goto LAB_0004ad0b;" goto statement_identifier ;) })) (expression_statement "puVar6 = (undefined4 *)*puVar6;" (assignment_expression "puVar6 = (undefined4 *)*puVar6" identifier = (cast_expression "(undefined4 *)*puVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "bVar3 = *DAT_00074f78;" (assignment_expression "bVar3 = *DAT_00074f78" identifier = (pointer_expression "*DAT_00074f78" * identifier)) ;) (if_statement "if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }" if (parenthesized_expression "(bVar3 == 0x20)" ( (binary_expression "bVar3 == 0x20" identifier == number_literal) )) (compound_statement "{\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }" { (expression_statement "bVar3 = DAT_00074f78[1];" (assignment_expression "bVar3 = DAT_00074f78[1]" identifier = (subscript_expression "DAT_00074f78[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00074f78 = DAT_00074f78 + 1;" (assignment_expression "DAT_00074f78 = DAT_00074f78 + 1" identifier = (binary_expression "DAT_00074f78 + 1" identifier + number_literal)) ;) })) (if_statement "if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }" if (parenthesized_expression "(bVar3 == 0x22)" ( (binary_expression "bVar3 == 0x22" identifier == number_literal) )) (compound_statement "{\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }" { (expression_statement "local_4c = (byte *)FUN_00032080(local_34);" (assignment_expression "local_4c = (byte *)FUN_00032080(local_34)" identifier = (cast_expression "(byte *)FUN_00032080(local_34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00032080(local_34)" identifier (argument_list "(local_34)" ( identifier ))))) ;) (goto_statement "goto LAB_0004acc6;" goto statement_identifier ;) })) (expression_statement "pcVar9 = "bad string constant";" (assignment_expression "pcVar9 = "bad string constant"" identifier = (string_literal ""bad string constant"" " string_content ")) ;) (goto_statement "goto LAB_0004ab8e;" goto statement_identifier ;) })) }))) (expression_statement "pcVar9 = "expected <tag> , <value>";" (assignment_expression "pcVar9 = "expected <tag> , <value>"" identifier = (string_literal ""expected <tag> , <value>"" " string_content ")) ;) (labeled_statement "LAB_0004ab8e:\n  uVar4 = dcgettext(0,pcVar9,5);" statement_identifier : (expression_statement "uVar4 = dcgettext(0,pcVar9,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar9,5)" identifier = (call_expression "dcgettext(0,pcVar9,5)" identifier (argument_list "(0,pcVar9,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002a430(uVar4);" (call_expression "FUN_0002a430(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_0002c760();" (call_expression "FUN_0002c760()" identifier (argument_list "()" ( ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Unknown calling convention */\n\nint obj_elf_vendor_attribute(int vendor)\n\n{\n  byte *n;\n  uint uVar1;\n  byte bVar2;\n  char cVar3;\n  char *pcVar4;\n  char *format;\n  uint uVar5;\n  recorded_attribute_info *prVar6;\n  int iVar7;\n  uint uVar8;\n  char *local_4c;\n  uint local_44;\n  int len;\n  expressionS exp;\n  \n  bVar2 = *input_line_pointer;\n  if (bVar2 == 0x20) {\n    bVar2 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  local_4c = input_line_pointer;\n  if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 4) == 0) {\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 0x8c) != 0) || (bVar2 == 0x5f))\n    {\n      iVar7 = 1 - (int)input_line_pointer;\n      do {\n        do {\n          n = (byte *)input_line_pointer + iVar7;\n          input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n        } while ((PTR__sch_istable_0006bf68[(uint)(byte)*input_line_pointer * 2] & 0x8c) != 0);\n      } while (*input_line_pointer == 0x5f);\n      if (n != (byte *)0x0) {\n        pcVar4 = xstrndup(local_4c,(size_t)n);\n        format = (char *)dcgettext(0,"Attribute name not recognised: %s",5);\n        as_bad(format,pcVar4);\n        ignore_rest_of_line();\n        free(pcVar4);\n        return 0;\n      }\n    }\n  }\n  else {\n    expr(0,&exp,expr_normal);\n    uVar1 = (uint)exp.X_add_number;\n    if ((exp._16_1_ == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(stdoutput,vendor,(uint)exp.X_add_number),\n       *input_line_pointer == ',')) {\n      input_line_pointer = input_line_pointer + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        expr(0,&exp,expr_normal);\n        local_44 = (uint)exp.X_add_number;\n        if (exp._16_1_ != '\x02') {\n          pcVar4 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*input_line_pointer != ',') {\n          pcVar4 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        input_line_pointer = input_line_pointer + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar1 & 0x1f);\n        prVar6 = recorded_attributes;\n        do {\n          if (prVar6 == (recorded_attribute_info *)0x0) {\n            prVar6 = (recorded_attribute_info *)xmalloc(0x10);\n            prVar6->base = uVar1 >> 5;\n            prVar6->vendor = vendor;\n            prVar6->mask = uVar5;\n            prVar6->next = recorded_attributes;\n            recorded_attributes = prVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }\n            demand_empty_rest_of_line();\n            return uVar1;\n          }\n          if ((vendor == prVar6->vendor) && (uVar1 >> 5 == prVar6->base)) {\n            prVar6->mask = prVar6->mask | uVar5;\n            goto LAB_0004ad0b;\n          }\n          prVar6 = prVar6->next;\n        } while( true );\n      }\n      cVar3 = *input_line_pointer;\n      if (cVar3 == ' ') {\n        cVar3 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }\n      if (cVar3 == '\"') {\n        local_4c = demand_copy_C_string(&len);\n        goto LAB_0004acc6;\n      }\n      pcVar4 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }\n  pcVar4 = "expected <tag> , <value>";\nLAB_0004ab8e:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  as_bad(pcVar4);\n  ignore_rest_of_line();\n  return 0;\n}\n\n" comment comment (function_definition "int obj_elf_vendor_attribute(int vendor)\n\n{\n  byte *n;\n  uint uVar1;\n  byte bVar2;\n  char cVar3;\n  char *pcVar4;\n  char *format;\n  uint uVar5;\n  recorded_attribute_info *prVar6;\n  int iVar7;\n  uint uVar8;\n  char *local_4c;\n  uint local_44;\n  int len;\n  expressionS exp;\n  \n  bVar2 = *input_line_pointer;\n  if (bVar2 == 0x20) {\n    bVar2 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  local_4c = input_line_pointer;\n  if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 4) == 0) {\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 0x8c) != 0) || (bVar2 == 0x5f))\n    {\n      iVar7 = 1 - (int)input_line_pointer;\n      do {\n        do {\n          n = (byte *)input_line_pointer + iVar7;\n          input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n        } while ((PTR__sch_istable_0006bf68[(uint)(byte)*input_line_pointer * 2] & 0x8c) != 0);\n      } while (*input_line_pointer == 0x5f);\n      if (n != (byte *)0x0) {\n        pcVar4 = xstrndup(local_4c,(size_t)n);\n        format = (char *)dcgettext(0,"Attribute name not recognised: %s",5);\n        as_bad(format,pcVar4);\n        ignore_rest_of_line();\n        free(pcVar4);\n        return 0;\n      }\n    }\n  }\n  else {\n    expr(0,&exp,expr_normal);\n    uVar1 = (uint)exp.X_add_number;\n    if ((exp._16_1_ == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(stdoutput,vendor,(uint)exp.X_add_number),\n       *input_line_pointer == ',')) {\n      input_line_pointer = input_line_pointer + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        expr(0,&exp,expr_normal);\n        local_44 = (uint)exp.X_add_number;\n        if (exp._16_1_ != '\x02') {\n          pcVar4 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*input_line_pointer != ',') {\n          pcVar4 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        input_line_pointer = input_line_pointer + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar1 & 0x1f);\n        prVar6 = recorded_attributes;\n        do {\n          if (prVar6 == (recorded_attribute_info *)0x0) {\n            prVar6 = (recorded_attribute_info *)xmalloc(0x10);\n            prVar6->base = uVar1 >> 5;\n            prVar6->vendor = vendor;\n            prVar6->mask = uVar5;\n            prVar6->next = recorded_attributes;\n            recorded_attributes = prVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }\n            demand_empty_rest_of_line();\n            return uVar1;\n          }\n          if ((vendor == prVar6->vendor) && (uVar1 >> 5 == prVar6->base)) {\n            prVar6->mask = prVar6->mask | uVar5;\n            goto LAB_0004ad0b;\n          }\n          prVar6 = prVar6->next;\n        } while( true );\n      }\n      cVar3 = *input_line_pointer;\n      if (cVar3 == ' ') {\n        cVar3 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }\n      if (cVar3 == '\"') {\n        local_4c = demand_copy_C_string(&len);\n        goto LAB_0004acc6;\n      }\n      pcVar4 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }\n  pcVar4 = "expected <tag> , <value>";\nLAB_0004ab8e:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  as_bad(pcVar4);\n  ignore_rest_of_line();\n  return 0;\n}" primitive_type (function_declarator "obj_elf_vendor_attribute(int vendor)" identifier (parameter_list "(int vendor)" ( (parameter_declaration "int vendor" primitive_type identifier) ))) (compound_statement "{\n  byte *n;\n  uint uVar1;\n  byte bVar2;\n  char cVar3;\n  char *pcVar4;\n  char *format;\n  uint uVar5;\n  recorded_attribute_info *prVar6;\n  int iVar7;\n  uint uVar8;\n  char *local_4c;\n  uint local_44;\n  int len;\n  expressionS exp;\n  \n  bVar2 = *input_line_pointer;\n  if (bVar2 == 0x20) {\n    bVar2 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  local_4c = input_line_pointer;\n  if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 4) == 0) {\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 0x8c) != 0) || (bVar2 == 0x5f))\n    {\n      iVar7 = 1 - (int)input_line_pointer;\n      do {\n        do {\n          n = (byte *)input_line_pointer + iVar7;\n          input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n        } while ((PTR__sch_istable_0006bf68[(uint)(byte)*input_line_pointer * 2] & 0x8c) != 0);\n      } while (*input_line_pointer == 0x5f);\n      if (n != (byte *)0x0) {\n        pcVar4 = xstrndup(local_4c,(size_t)n);\n        format = (char *)dcgettext(0,"Attribute name not recognised: %s",5);\n        as_bad(format,pcVar4);\n        ignore_rest_of_line();\n        free(pcVar4);\n        return 0;\n      }\n    }\n  }\n  else {\n    expr(0,&exp,expr_normal);\n    uVar1 = (uint)exp.X_add_number;\n    if ((exp._16_1_ == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(stdoutput,vendor,(uint)exp.X_add_number),\n       *input_line_pointer == ',')) {\n      input_line_pointer = input_line_pointer + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        expr(0,&exp,expr_normal);\n        local_44 = (uint)exp.X_add_number;\n        if (exp._16_1_ != '\x02') {\n          pcVar4 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*input_line_pointer != ',') {\n          pcVar4 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        input_line_pointer = input_line_pointer + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar1 & 0x1f);\n        prVar6 = recorded_attributes;\n        do {\n          if (prVar6 == (recorded_attribute_info *)0x0) {\n            prVar6 = (recorded_attribute_info *)xmalloc(0x10);\n            prVar6->base = uVar1 >> 5;\n            prVar6->vendor = vendor;\n            prVar6->mask = uVar5;\n            prVar6->next = recorded_attributes;\n            recorded_attributes = prVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }\n            demand_empty_rest_of_line();\n            return uVar1;\n          }\n          if ((vendor == prVar6->vendor) && (uVar1 >> 5 == prVar6->base)) {\n            prVar6->mask = prVar6->mask | uVar5;\n            goto LAB_0004ad0b;\n          }\n          prVar6 = prVar6->next;\n        } while( true );\n      }\n      cVar3 = *input_line_pointer;\n      if (cVar3 == ' ') {\n        cVar3 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }\n      if (cVar3 == '\"') {\n        local_4c = demand_copy_C_string(&len);\n        goto LAB_0004acc6;\n      }\n      pcVar4 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }\n  pcVar4 = "expected <tag> , <value>";\nLAB_0004ab8e:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  as_bad(pcVar4);\n  ignore_rest_of_line();\n  return 0;\n}" { (declaration "byte *n;" type_identifier (pointer_declarator "*n" * identifier) ;) (declaration "uint uVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "recorded_attribute_info *prVar6;" type_identifier (pointer_declarator "*prVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "int len;" primitive_type identifier ;) (declaration "expressionS exp;" type_identifier identifier ;) (expression_statement "bVar2 = *input_line_pointer;" (assignment_expression "bVar2 = *input_line_pointer" identifier = (pointer_expression "*input_line_pointer" * identifier)) ;) (if_statement "if (bVar2 == 0x20) {\n    bVar2 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }" if (parenthesized_expression "(bVar2 == 0x20)" ( (binary_expression "bVar2 == 0x20" identifier == number_literal) )) (compound_statement "{\n    bVar2 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }" { (expression_statement "bVar2 = input_line_pointer[1];" (assignment_expression "bVar2 = input_line_pointer[1]" identifier = (subscript_expression "input_line_pointer[1]" identifier [ number_literal ])) ;) (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) })) (expression_statement "local_4c = input_line_pointer;" (assignment_expression "local_4c = input_line_pointer" identifier = identifier) ;) (if_statement "if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 4) == 0) {\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 0x8c) != 0) || (bVar2 == 0x5f))\n    {\n      iVar7 = 1 - (int)input_line_pointer;\n      do {\n        do {\n          n = (byte *)input_line_pointer + iVar7;\n          input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n        } while ((PTR__sch_istable_0006bf68[(uint)(byte)*input_line_pointer * 2] & 0x8c) != 0);\n      } while (*input_line_pointer == 0x5f);\n      if (n != (byte *)0x0) {\n        pcVar4 = xstrndup(local_4c,(size_t)n);\n        format = (char *)dcgettext(0,"Attribute name not recognised: %s",5);\n        as_bad(format,pcVar4);\n        ignore_rest_of_line();\n        free(pcVar4);\n        return 0;\n      }\n    }\n  }\n  else {\n    expr(0,&exp,expr_normal);\n    uVar1 = (uint)exp.X_add_number;\n    if ((exp._16_1_ == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(stdoutput,vendor,(uint)exp.X_add_number),\n       *input_line_pointer == ',')) {\n      input_line_pointer = input_line_pointer + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        expr(0,&exp,expr_normal);\n        local_44 = (uint)exp.X_add_number;\n        if (exp._16_1_ != '\x02') {\n          pcVar4 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*input_line_pointer != ',') {\n          pcVar4 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        input_line_pointer = input_line_pointer + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar1 & 0x1f);\n        prVar6 = recorded_attributes;\n        do {\n          if (prVar6 == (recorded_attribute_info *)0x0) {\n            prVar6 = (recorded_attribute_info *)xmalloc(0x10);\n            prVar6->base = uVar1 >> 5;\n            prVar6->vendor = vendor;\n            prVar6->mask = uVar5;\n            prVar6->next = recorded_attributes;\n            recorded_attributes = prVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }\n            demand_empty_rest_of_line();\n            return uVar1;\n          }\n          if ((vendor == prVar6->vendor) && (uVar1 >> 5 == prVar6->base)) {\n            prVar6->mask = prVar6->mask | uVar5;\n            goto LAB_0004ad0b;\n          }\n          prVar6 = prVar6->next;\n        } while( true );\n      }\n      cVar3 = *input_line_pointer;\n      if (cVar3 == ' ') {\n        cVar3 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }\n      if (cVar3 == '\"') {\n        local_4c = demand_copy_C_string(&len);\n        goto LAB_0004acc6;\n      }\n      pcVar4 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }" if (parenthesized_expression "((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 4) == 0)" ( (binary_expression "(*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 4) == 0" (parenthesized_expression "(*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 4)" ( (binary_expression "*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 4" (pointer_expression "*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2)" * (cast_expression "(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2)" ( (binary_expression "PTR__sch_istable_0006bf68 + (uint)bVar2 * 2" identifier + (binary_expression "(uint)bVar2 * 2" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 0x8c) != 0) || (bVar2 == 0x5f))\n    {\n      iVar7 = 1 - (int)input_line_pointer;\n      do {\n        do {\n          n = (byte *)input_line_pointer + iVar7;\n          input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n        } while ((PTR__sch_istable_0006bf68[(uint)(byte)*input_line_pointer * 2] & 0x8c) != 0);\n      } while (*input_line_pointer == 0x5f);\n      if (n != (byte *)0x0) {\n        pcVar4 = xstrndup(local_4c,(size_t)n);\n        format = (char *)dcgettext(0,"Attribute name not recognised: %s",5);\n        as_bad(format,pcVar4);\n        ignore_rest_of_line();\n        free(pcVar4);\n        return 0;\n      }\n    }\n  }" { (if_statement "if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 0x8c) != 0) || (bVar2 == 0x5f))\n    {\n      iVar7 = 1 - (int)input_line_pointer;\n      do {\n        do {\n          n = (byte *)input_line_pointer + iVar7;\n          input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n        } while ((PTR__sch_istable_0006bf68[(uint)(byte)*input_line_pointer * 2] & 0x8c) != 0);\n      } while (*input_line_pointer == 0x5f);\n      if (n != (byte *)0x0) {\n        pcVar4 = xstrndup(local_4c,(size_t)n);\n        format = (char *)dcgettext(0,"Attribute name not recognised: %s",5);\n        as_bad(format,pcVar4);\n        ignore_rest_of_line();\n        free(pcVar4);\n        return 0;\n      }\n    }" if (parenthesized_expression "(((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 0x8c) != 0) || (bVar2 == 0x5f))" ( (binary_expression "((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 0x8c) != 0) || (bVar2 == 0x5f)" (parenthesized_expression "((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 0x8c) != 0)" ( (binary_expression "(*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 0x8c) != 0" (parenthesized_expression "(*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 0x8c)" ( (binary_expression "*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2) & 0x8c" (pointer_expression "*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2)" * (cast_expression "(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__sch_istable_0006bf68 + (uint)bVar2 * 2)" ( (binary_expression "PTR__sch_istable_0006bf68 + (uint)bVar2 * 2" identifier + (binary_expression "(uint)bVar2 * 2" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar2 == 0x5f)" ( (binary_expression "bVar2 == 0x5f" identifier == number_literal) ))) )) (compound_statement "{\n      iVar7 = 1 - (int)input_line_pointer;\n      do {\n        do {\n          n = (byte *)input_line_pointer + iVar7;\n          input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n        } while ((PTR__sch_istable_0006bf68[(uint)(byte)*input_line_pointer * 2] & 0x8c) != 0);\n      } while (*input_line_pointer == 0x5f);\n      if (n != (byte *)0x0) {\n        pcVar4 = xstrndup(local_4c,(size_t)n);\n        format = (char *)dcgettext(0,"Attribute name not recognised: %s",5);\n        as_bad(format,pcVar4);\n        ignore_rest_of_line();\n        free(pcVar4);\n        return 0;\n      }\n    }" { (expression_statement "iVar7 = 1 - (int)input_line_pointer;" (assignment_expression "iVar7 = 1 - (int)input_line_pointer" identifier = (binary_expression "1 - (int)input_line_pointer" number_literal - (cast_expression "(int)input_line_pointer" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n        do {\n          n = (byte *)input_line_pointer + iVar7;\n          input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n        } while ((PTR__sch_istable_0006bf68[(uint)(byte)*input_line_pointer * 2] & 0x8c) != 0);\n      } while (*input_line_pointer == 0x5f);" do (compound_statement "{\n        do {\n          n = (byte *)input_line_pointer + iVar7;\n          input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n        } while ((PTR__sch_istable_0006bf68[(uint)(byte)*input_line_pointer * 2] & 0x8c) != 0);\n      }" { (do_statement "do {\n          n = (byte *)input_line_pointer + iVar7;\n          input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n        } while ((PTR__sch_istable_0006bf68[(uint)(byte)*input_line_pointer * 2] & 0x8c) != 0);" do (compound_statement "{\n          n = (byte *)input_line_pointer + iVar7;\n          input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n        }" { (expression_statement "n = (byte *)input_line_pointer + iVar7;" (assignment_expression "n = (byte *)input_line_pointer + iVar7" identifier = (binary_expression "(byte *)input_line_pointer + iVar7" (cast_expression "(byte *)input_line_pointer" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + identifier)) ;) (expression_statement "input_line_pointer = (char *)((byte *)input_line_pointer + 1);" (assignment_expression "input_line_pointer = (char *)((byte *)input_line_pointer + 1)" identifier = (cast_expression "(char *)((byte *)input_line_pointer + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)input_line_pointer + 1)" ( (binary_expression "(byte *)input_line_pointer + 1" (cast_expression "(byte *)input_line_pointer" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((PTR__sch_istable_0006bf68[(uint)(byte)*input_line_pointer * 2] & 0x8c) != 0)" ( (binary_expression "(PTR__sch_istable_0006bf68[(uint)(byte)*input_line_pointer * 2] & 0x8c) != 0" (parenthesized_expression "(PTR__sch_istable_0006bf68[(uint)(byte)*input_line_pointer * 2] & 0x8c)" ( (binary_expression "PTR__sch_istable_0006bf68[(uint)(byte)*input_line_pointer * 2] & 0x8c" (subscript_expression "PTR__sch_istable_0006bf68[(uint)(byte)*input_line_pointer * 2]" identifier [ (binary_expression "(uint)(byte)*input_line_pointer * 2" (binary_expression "(uint)(byte)*input_line_pointer" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier) * number_literal) ]) & number_literal) )) != number_literal) )) ;) }) while (parenthesized_expression "(*input_line_pointer == 0x5f)" ( (binary_expression "*input_line_pointer == 0x5f" (pointer_expression "*input_line_pointer" * identifier) == number_literal) )) ;) (if_statement "if (n != (byte *)0x0) {\n        pcVar4 = xstrndup(local_4c,(size_t)n);\n        format = (char *)dcgettext(0,"Attribute name not recognised: %s",5);\n        as_bad(format,pcVar4);\n        ignore_rest_of_line();\n        free(pcVar4);\n        return 0;\n      }" if (parenthesized_expression "(n != (byte *)0x0)" ( (binary_expression "n != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar4 = xstrndup(local_4c,(size_t)n);\n        format = (char *)dcgettext(0,"Attribute name not recognised: %s",5);\n        as_bad(format,pcVar4);\n        ignore_rest_of_line();\n        free(pcVar4);\n        return 0;\n      }" { (expression_statement "pcVar4 = xstrndup(local_4c,(size_t)n);" (assignment_expression "pcVar4 = xstrndup(local_4c,(size_t)n)" identifier = (call_expression "xstrndup(local_4c,(size_t)n)" identifier (argument_list "(local_4c,(size_t)n)" ( identifier , (cast_expression "(size_t)n" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (expression_statement "format = (char *)dcgettext(0,"Attribute name not recognised: %s",5);" (assignment_expression "format = (char *)dcgettext(0,"Attribute name not recognised: %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"Attribute name not recognised: %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Attribute name not recognised: %s",5)" identifier (argument_list "(0,"Attribute name not recognised: %s",5)" ( number_literal , (string_literal ""Attribute name not recognised: %s"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(format,pcVar4);" (call_expression "as_bad(format,pcVar4)" identifier (argument_list "(format,pcVar4)" ( identifier , identifier ))) ;) (expression_statement "ignore_rest_of_line();" (call_expression "ignore_rest_of_line()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) })) }) (else_clause "else {\n    expr(0,&exp,expr_normal);\n    uVar1 = (uint)exp.X_add_number;\n    if ((exp._16_1_ == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(stdoutput,vendor,(uint)exp.X_add_number),\n       *input_line_pointer == ',')) {\n      input_line_pointer = input_line_pointer + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        expr(0,&exp,expr_normal);\n        local_44 = (uint)exp.X_add_number;\n        if (exp._16_1_ != '\x02') {\n          pcVar4 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*input_line_pointer != ',') {\n          pcVar4 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        input_line_pointer = input_line_pointer + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar1 & 0x1f);\n        prVar6 = recorded_attributes;\n        do {\n          if (prVar6 == (recorded_attribute_info *)0x0) {\n            prVar6 = (recorded_attribute_info *)xmalloc(0x10);\n            prVar6->base = uVar1 >> 5;\n            prVar6->vendor = vendor;\n            prVar6->mask = uVar5;\n            prVar6->next = recorded_attributes;\n            recorded_attributes = prVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }\n            demand_empty_rest_of_line();\n            return uVar1;\n          }\n          if ((vendor == prVar6->vendor) && (uVar1 >> 5 == prVar6->base)) {\n            prVar6->mask = prVar6->mask | uVar5;\n            goto LAB_0004ad0b;\n          }\n          prVar6 = prVar6->next;\n        } while( true );\n      }\n      cVar3 = *input_line_pointer;\n      if (cVar3 == ' ') {\n        cVar3 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }\n      if (cVar3 == '\"') {\n        local_4c = demand_copy_C_string(&len);\n        goto LAB_0004acc6;\n      }\n      pcVar4 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }" else (compound_statement "{\n    expr(0,&exp,expr_normal);\n    uVar1 = (uint)exp.X_add_number;\n    if ((exp._16_1_ == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(stdoutput,vendor,(uint)exp.X_add_number),\n       *input_line_pointer == ',')) {\n      input_line_pointer = input_line_pointer + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        expr(0,&exp,expr_normal);\n        local_44 = (uint)exp.X_add_number;\n        if (exp._16_1_ != '\x02') {\n          pcVar4 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*input_line_pointer != ',') {\n          pcVar4 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        input_line_pointer = input_line_pointer + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar1 & 0x1f);\n        prVar6 = recorded_attributes;\n        do {\n          if (prVar6 == (recorded_attribute_info *)0x0) {\n            prVar6 = (recorded_attribute_info *)xmalloc(0x10);\n            prVar6->base = uVar1 >> 5;\n            prVar6->vendor = vendor;\n            prVar6->mask = uVar5;\n            prVar6->next = recorded_attributes;\n            recorded_attributes = prVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }\n            demand_empty_rest_of_line();\n            return uVar1;\n          }\n          if ((vendor == prVar6->vendor) && (uVar1 >> 5 == prVar6->base)) {\n            prVar6->mask = prVar6->mask | uVar5;\n            goto LAB_0004ad0b;\n          }\n          prVar6 = prVar6->next;\n        } while( true );\n      }\n      cVar3 = *input_line_pointer;\n      if (cVar3 == ' ') {\n        cVar3 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }\n      if (cVar3 == '\"') {\n        local_4c = demand_copy_C_string(&len);\n        goto LAB_0004acc6;\n      }\n      pcVar4 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }" { (expression_statement "expr(0,&exp,expr_normal);" (call_expression "expr(0,&exp,expr_normal)" identifier (argument_list "(0,&exp,expr_normal)" ( number_literal , (pointer_expression "&exp" & identifier) , identifier ))) ;) (expression_statement "uVar1 = (uint)exp.X_add_number;" (assignment_expression "uVar1 = (uint)exp.X_add_number" identifier = (cast_expression "(uint)exp.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "exp.X_add_number" identifier . field_identifier))) ;) (if_statement "if ((exp._16_1_ == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(stdoutput,vendor,(uint)exp.X_add_number),\n       *input_line_pointer == ',')) {\n      input_line_pointer = input_line_pointer + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        expr(0,&exp,expr_normal);\n        local_44 = (uint)exp.X_add_number;\n        if (exp._16_1_ != '\x02') {\n          pcVar4 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*input_line_pointer != ',') {\n          pcVar4 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        input_line_pointer = input_line_pointer + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar1 & 0x1f);\n        prVar6 = recorded_attributes;\n        do {\n          if (prVar6 == (recorded_attribute_info *)0x0) {\n            prVar6 = (recorded_attribute_info *)xmalloc(0x10);\n            prVar6->base = uVar1 >> 5;\n            prVar6->vendor = vendor;\n            prVar6->mask = uVar5;\n            prVar6->next = recorded_attributes;\n            recorded_attributes = prVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }\n            demand_empty_rest_of_line();\n            return uVar1;\n          }\n          if ((vendor == prVar6->vendor) && (uVar1 >> 5 == prVar6->base)) {\n            prVar6->mask = prVar6->mask | uVar5;\n            goto LAB_0004ad0b;\n          }\n          prVar6 = prVar6->next;\n        } while( true );\n      }\n      cVar3 = *input_line_pointer;\n      if (cVar3 == ' ') {\n        cVar3 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }\n      if (cVar3 == '\"') {\n        local_4c = demand_copy_C_string(&len);\n        goto LAB_0004acc6;\n      }\n      pcVar4 = "bad string constant";\n      goto LAB_0004ab8e;\n    }" if (parenthesized_expression "((exp._16_1_ == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(stdoutput,vendor,(uint)exp.X_add_number),\n       *input_line_pointer == ','))" ( (binary_expression "(exp._16_1_ == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(stdoutput,vendor,(uint)exp.X_add_number),\n       *input_line_pointer == ',')" (parenthesized_expression "(exp._16_1_ == '\x02')" ( (binary_expression "exp._16_1_ == '\x02'" (field_expression "exp._16_1_" identifier . field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar5 = _bfd_elf_obj_attrs_arg_type(stdoutput,vendor,(uint)exp.X_add_number),\n       *input_line_pointer == ',')" ( (comma_expression "uVar5 = _bfd_elf_obj_attrs_arg_type(stdoutput,vendor,(uint)exp.X_add_number),\n       *input_line_pointer == ','" (assignment_expression "uVar5 = _bfd_elf_obj_attrs_arg_type(stdoutput,vendor,(uint)exp.X_add_number)" identifier = (call_expression "_bfd_elf_obj_attrs_arg_type(stdoutput,vendor,(uint)exp.X_add_number)" identifier (argument_list "(stdoutput,vendor,(uint)exp.X_add_number)" ( identifier , identifier , (cast_expression "(uint)exp.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "exp.X_add_number" identifier . field_identifier)) )))) , (binary_expression "*input_line_pointer == ','" (pointer_expression "*input_line_pointer" * identifier) == (char_literal "','" ' character '))) ))) )) (compound_statement "{\n      input_line_pointer = input_line_pointer + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        expr(0,&exp,expr_normal);\n        local_44 = (uint)exp.X_add_number;\n        if (exp._16_1_ != '\x02') {\n          pcVar4 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*input_line_pointer != ',') {\n          pcVar4 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        input_line_pointer = input_line_pointer + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar1 & 0x1f);\n        prVar6 = recorded_attributes;\n        do {\n          if (prVar6 == (recorded_attribute_info *)0x0) {\n            prVar6 = (recorded_attribute_info *)xmalloc(0x10);\n            prVar6->base = uVar1 >> 5;\n            prVar6->vendor = vendor;\n            prVar6->mask = uVar5;\n            prVar6->next = recorded_attributes;\n            recorded_attributes = prVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }\n            demand_empty_rest_of_line();\n            return uVar1;\n          }\n          if ((vendor == prVar6->vendor) && (uVar1 >> 5 == prVar6->base)) {\n            prVar6->mask = prVar6->mask | uVar5;\n            goto LAB_0004ad0b;\n          }\n          prVar6 = prVar6->next;\n        } while( true );\n      }\n      cVar3 = *input_line_pointer;\n      if (cVar3 == ' ') {\n        cVar3 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }\n      if (cVar3 == '\"') {\n        local_4c = demand_copy_C_string(&len);\n        goto LAB_0004acc6;\n      }\n      pcVar4 = "bad string constant";\n      goto LAB_0004ab8e;\n    }" { (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (if_statement "if ((uVar5 & 1) != 0) {\n        expr(0,&exp,expr_normal);\n        local_44 = (uint)exp.X_add_number;\n        if (exp._16_1_ != '\x02') {\n          pcVar4 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }" if (parenthesized_expression "((uVar5 & 1) != 0)" ( (binary_expression "(uVar5 & 1) != 0" (parenthesized_expression "(uVar5 & 1)" ( (binary_expression "uVar5 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        expr(0,&exp,expr_normal);\n        local_44 = (uint)exp.X_add_number;\n        if (exp._16_1_ != '\x02') {\n          pcVar4 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }" { (expression_statement "expr(0,&exp,expr_normal);" (call_expression "expr(0,&exp,expr_normal)" identifier (argument_list "(0,&exp,expr_normal)" ( number_literal , (pointer_expression "&exp" & identifier) , identifier ))) ;) (expression_statement "local_44 = (uint)exp.X_add_number;" (assignment_expression "local_44 = (uint)exp.X_add_number" identifier = (cast_expression "(uint)exp.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "exp.X_add_number" identifier . field_identifier))) ;) (if_statement "if (exp._16_1_ != '\x02') {\n          pcVar4 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }" if (parenthesized_expression "(exp._16_1_ != '\x02')" ( (binary_expression "exp._16_1_ != '\x02'" (field_expression "exp._16_1_" identifier . field_identifier) != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          pcVar4 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }" { (expression_statement "pcVar4 = "expected numeric constant";" (assignment_expression "pcVar4 = "expected numeric constant"" identifier = (string_literal ""expected numeric constant"" " string_content ")) ;) (goto_statement "goto LAB_0004ab8e;" goto statement_identifier ;) })) })) (expression_statement "uVar8 = uVar5 & 3;" (assignment_expression "uVar8 = uVar5 & 3" identifier = (binary_expression "uVar5 & 3" identifier & number_literal)) ;) (if_statement "if (uVar8 == 3) {\n        if (*input_line_pointer != ',') {\n          pcVar4 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        input_line_pointer = input_line_pointer + 1;\n      }" if (parenthesized_expression "(uVar8 == 3)" ( (binary_expression "uVar8 == 3" identifier == number_literal) )) (compound_statement "{\n        if (*input_line_pointer != ',') {\n          pcVar4 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        input_line_pointer = input_line_pointer + 1;\n      }" { (if_statement "if (*input_line_pointer != ',') {\n          pcVar4 = "expected comma";\n          goto LAB_0004ab8e;\n        }" if (parenthesized_expression "(*input_line_pointer != ',')" ( (binary_expression "*input_line_pointer != ','" (pointer_expression "*input_line_pointer" * identifier) != (char_literal "','" ' character ')) )) (compound_statement "{\n          pcVar4 = "expected comma";\n          goto LAB_0004ab8e;\n        }" { (expression_statement "pcVar4 = "expected comma";" (assignment_expression "pcVar4 = "expected comma"" identifier = (string_literal ""expected comma"" " string_content ")) ;) (goto_statement "goto LAB_0004ab8e;" goto statement_identifier ;) })) (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) })) (if_statement "if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar1 & 0x1f);\n        prVar6 = recorded_attributes;\n        do {\n          if (prVar6 == (recorded_attribute_info *)0x0) {\n            prVar6 = (recorded_attribute_info *)xmalloc(0x10);\n            prVar6->base = uVar1 >> 5;\n            prVar6->vendor = vendor;\n            prVar6->mask = uVar5;\n            prVar6->next = recorded_attributes;\n            recorded_attributes = prVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }\n            demand_empty_rest_of_line();\n            return uVar1;\n          }\n          if ((vendor == prVar6->vendor) && (uVar1 >> 5 == prVar6->base)) {\n            prVar6->mask = prVar6->mask | uVar5;\n            goto LAB_0004ad0b;\n          }\n          prVar6 = prVar6->next;\n        } while( true );\n      }" if (parenthesized_expression "((uVar5 & 2) == 0)" ( (binary_expression "(uVar5 & 2) == 0" (parenthesized_expression "(uVar5 & 2)" ( (binary_expression "uVar5 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar1 & 0x1f);\n        prVar6 = recorded_attributes;\n        do {\n          if (prVar6 == (recorded_attribute_info *)0x0) {\n            prVar6 = (recorded_attribute_info *)xmalloc(0x10);\n            prVar6->base = uVar1 >> 5;\n            prVar6->vendor = vendor;\n            prVar6->mask = uVar5;\n            prVar6->next = recorded_attributes;\n            recorded_attributes = prVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }\n            demand_empty_rest_of_line();\n            return uVar1;\n          }\n          if ((vendor == prVar6->vendor) && (uVar1 >> 5 == prVar6->base)) {\n            prVar6->mask = prVar6->mask | uVar5;\n            goto LAB_0004ad0b;\n          }\n          prVar6 = prVar6->next;\n        } while( true );\n      }" { (labeled_statement "LAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar1 & 0x1f);" statement_identifier : (expression_statement "uVar5 = 1 << ((byte)uVar1 & 0x1f);" (assignment_expression "uVar5 = 1 << ((byte)uVar1 & 0x1f)" identifier = (binary_expression "1 << ((byte)uVar1 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar1 & 0x1f)" ( (binary_expression "(byte)uVar1 & 0x1f" (cast_expression "(byte)uVar1" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;)) (expression_statement "prVar6 = recorded_attributes;" (assignment_expression "prVar6 = recorded_attributes" identifier = identifier) ;) (do_statement "do {\n          if (prVar6 == (recorded_attribute_info *)0x0) {\n            prVar6 = (recorded_attribute_info *)xmalloc(0x10);\n            prVar6->base = uVar1 >> 5;\n            prVar6->vendor = vendor;\n            prVar6->mask = uVar5;\n            prVar6->next = recorded_attributes;\n            recorded_attributes = prVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }\n            demand_empty_rest_of_line();\n            return uVar1;\n          }\n          if ((vendor == prVar6->vendor) && (uVar1 >> 5 == prVar6->base)) {\n            prVar6->mask = prVar6->mask | uVar5;\n            goto LAB_0004ad0b;\n          }\n          prVar6 = prVar6->next;\n        } while( true );" do (compound_statement "{\n          if (prVar6 == (recorded_attribute_info *)0x0) {\n            prVar6 = (recorded_attribute_info *)xmalloc(0x10);\n            prVar6->base = uVar1 >> 5;\n            prVar6->vendor = vendor;\n            prVar6->mask = uVar5;\n            prVar6->next = recorded_attributes;\n            recorded_attributes = prVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }\n            demand_empty_rest_of_line();\n            return uVar1;\n          }\n          if ((vendor == prVar6->vendor) && (uVar1 >> 5 == prVar6->base)) {\n            prVar6->mask = prVar6->mask | uVar5;\n            goto LAB_0004ad0b;\n          }\n          prVar6 = prVar6->next;\n        }" { (if_statement "if (prVar6 == (recorded_attribute_info *)0x0) {\n            prVar6 = (recorded_attribute_info *)xmalloc(0x10);\n            prVar6->base = uVar1 >> 5;\n            prVar6->vendor = vendor;\n            prVar6->mask = uVar5;\n            prVar6->next = recorded_attributes;\n            recorded_attributes = prVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }\n            demand_empty_rest_of_line();\n            return uVar1;\n          }" if (parenthesized_expression "(prVar6 == (recorded_attribute_info *)0x0)" ( (binary_expression "prVar6 == (recorded_attribute_info *)0x0" identifier == (cast_expression "(recorded_attribute_info *)0x0" ( (type_descriptor "recorded_attribute_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            prVar6 = (recorded_attribute_info *)xmalloc(0x10);\n            prVar6->base = uVar1 >> 5;\n            prVar6->vendor = vendor;\n            prVar6->mask = uVar5;\n            prVar6->next = recorded_attributes;\n            recorded_attributes = prVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }\n            demand_empty_rest_of_line();\n            return uVar1;\n          }" { (expression_statement "prVar6 = (recorded_attribute_info *)xmalloc(0x10);" (assignment_expression "prVar6 = (recorded_attribute_info *)xmalloc(0x10)" identifier = (cast_expression "(recorded_attribute_info *)xmalloc(0x10)" ( (type_descriptor "recorded_attribute_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "prVar6->base = uVar1 >> 5;" (assignment_expression "prVar6->base = uVar1 >> 5" (field_expression "prVar6->base" identifier -> field_identifier) = (binary_expression "uVar1 >> 5" identifier >> number_literal)) ;) (expression_statement "prVar6->vendor = vendor;" (assignment_expression "prVar6->vendor = vendor" (field_expression "prVar6->vendor" identifier -> field_identifier) = identifier) ;) (expression_statement "prVar6->mask = uVar5;" (assignment_expression "prVar6->mask = uVar5" (field_expression "prVar6->mask" identifier -> field_identifier) = identifier) ;) (expression_statement "prVar6->next = recorded_attributes;" (assignment_expression "prVar6->next = recorded_attributes" (field_expression "prVar6->next" identifier -> field_identifier) = identifier) ;) (expression_statement "recorded_attributes = prVar6;" (assignment_expression "recorded_attributes = prVar6" identifier = identifier) ;) (labeled_statement "LAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }" statement_identifier : (if_statement "if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }" if (parenthesized_expression "(uVar8 == 2)" ( (binary_expression "uVar8 == 2" identifier == number_literal) )) (compound_statement "{\n              bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);\n            }" { (expression_statement "bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c);" (call_expression "bfd_elf_add_obj_attr_string(stdoutput,vendor,uVar1,local_4c)" identifier (argument_list "(stdoutput,vendor,uVar1,local_4c)" ( identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }" else (if_statement "if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }" if (parenthesized_expression "(uVar8 == 3)" ( (binary_expression "uVar8 == 3" identifier == number_literal) )) (compound_statement "{\n              bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);\n            }" { (expression_statement "bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c);" (call_expression "bfd_elf_add_obj_attr_int_string(stdoutput,vendor,uVar1,local_44,local_4c)" identifier (argument_list "(stdoutput,vendor,uVar1,local_44,local_4c)" ( identifier , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }" else (compound_statement "{\n              if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }\n              bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);\n            }" { (if_statement "if (uVar8 != 1) {\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }" if (parenthesized_expression "(uVar8 != 1)" ( (binary_expression "uVar8 != 1" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");\n              }" { comment (expression_statement "as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");" (call_expression "as_abort("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute")" identifier (argument_list "("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute")" ( (string_literal ""../../gas/config/obj-elf.c"" " string_content ") , number_literal , (string_literal ""obj_elf_vendor_attribute"" " string_content ") ))) ;) })) (expression_statement "bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44);" (call_expression "bfd_elf_add_obj_attr_int(stdoutput,vendor,uVar1,local_44)" identifier (argument_list "(stdoutput,vendor,uVar1,local_44)" ( identifier , identifier , identifier , identifier ))) ;) })))))) (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return uVar1;" return identifier ;) })) (if_statement "if ((vendor == prVar6->vendor) && (uVar1 >> 5 == prVar6->base)) {\n            prVar6->mask = prVar6->mask | uVar5;\n            goto LAB_0004ad0b;\n          }" if (parenthesized_expression "((vendor == prVar6->vendor) && (uVar1 >> 5 == prVar6->base))" ( (binary_expression "(vendor == prVar6->vendor) && (uVar1 >> 5 == prVar6->base)" (parenthesized_expression "(vendor == prVar6->vendor)" ( (binary_expression "vendor == prVar6->vendor" identifier == (field_expression "prVar6->vendor" identifier -> field_identifier)) )) && (parenthesized_expression "(uVar1 >> 5 == prVar6->base)" ( (binary_expression "uVar1 >> 5 == prVar6->base" (binary_expression "uVar1 >> 5" identifier >> number_literal) == (field_expression "prVar6->base" identifier -> field_identifier)) ))) )) (compound_statement "{\n            prVar6->mask = prVar6->mask | uVar5;\n            goto LAB_0004ad0b;\n          }" { (expression_statement "prVar6->mask = prVar6->mask | uVar5;" (assignment_expression "prVar6->mask = prVar6->mask | uVar5" (field_expression "prVar6->mask" identifier -> field_identifier) = (binary_expression "prVar6->mask | uVar5" (field_expression "prVar6->mask" identifier -> field_identifier) | identifier)) ;) (goto_statement "goto LAB_0004ad0b;" goto statement_identifier ;) })) (expression_statement "prVar6 = prVar6->next;" (assignment_expression "prVar6 = prVar6->next" identifier = (field_expression "prVar6->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "cVar3 = *input_line_pointer;" (assignment_expression "cVar3 = *input_line_pointer" identifier = (pointer_expression "*input_line_pointer" * identifier)) ;) (if_statement "if (cVar3 == ' ') {\n        cVar3 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }" if (parenthesized_expression "(cVar3 == ' ')" ( (binary_expression "cVar3 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n        cVar3 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }" { (expression_statement "cVar3 = input_line_pointer[1];" (assignment_expression "cVar3 = input_line_pointer[1]" identifier = (subscript_expression "input_line_pointer[1]" identifier [ number_literal ])) ;) (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) })) (if_statement "if (cVar3 == '\"') {\n        local_4c = demand_copy_C_string(&len);\n        goto LAB_0004acc6;\n      }" if (parenthesized_expression "(cVar3 == '\"')" ( (binary_expression "cVar3 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n        local_4c = demand_copy_C_string(&len);\n        goto LAB_0004acc6;\n      }" { (expression_statement "local_4c = demand_copy_C_string(&len);" (assignment_expression "local_4c = demand_copy_C_string(&len)" identifier = (call_expression "demand_copy_C_string(&len)" identifier (argument_list "(&len)" ( (pointer_expression "&len" & identifier) )))) ;) (goto_statement "goto LAB_0004acc6;" goto statement_identifier ;) })) (expression_statement "pcVar4 = "bad string constant";" (assignment_expression "pcVar4 = "bad string constant"" identifier = (string_literal ""bad string constant"" " string_content ")) ;) (goto_statement "goto LAB_0004ab8e;" goto statement_identifier ;) })) }))) (expression_statement "pcVar4 = "expected <tag> , <value>";" (assignment_expression "pcVar4 = "expected <tag> , <value>"" identifier = (string_literal ""expected <tag> , <value>"" " string_content ")) ;) (labeled_statement "LAB_0004ab8e:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);" statement_identifier : (expression_statement "pcVar4 = (char *)dcgettext(0,pcVar4,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,pcVar4,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar4,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar4,5)" identifier (argument_list "(0,pcVar4,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "as_bad(pcVar4);" (call_expression "as_bad(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "ignore_rest_of_line();" (call_expression "ignore_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "uint FUN_0004aaf0(int param_1)\n\n{\n  byte *pbVar1;\n  uint uVar2;\n  byte bVar3;\n  undefined4 uVar4;\n  void *__ptr;\n  uint uVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  uint uVar8;\n  char *pcVar9;\n  byte *local_4c;\n  uint local_44;\n  undefined1 local_34 [4];\n  undefined1 local_30 [8];\n  uint local_28;\n  char local_20;\n  \n  bVar3 = *DAT_00074f78;\n  if (bVar3 == 0x20) {\n    bVar3 = DAT_00074f78[1];\n    DAT_00074f78 = DAT_00074f78 + 1;\n  }\n  local_4c = DAT_00074f78;\n  if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0) {\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }\n  }\n  else {\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }\n  pcVar9 = "expected <tag> , <value>";\nLAB_0004ab8e:\n  uVar4 = dcgettext(0,pcVar9,5);\n  FUN_0002a430(uVar4);\n  FUN_0002c760();\n  return 0;\n}\n\n" (function_definition "uint FUN_0004aaf0(int param_1)\n\n{\n  byte *pbVar1;\n  uint uVar2;\n  byte bVar3;\n  undefined4 uVar4;\n  void *__ptr;\n  uint uVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  uint uVar8;\n  char *pcVar9;\n  byte *local_4c;\n  uint local_44;\n  undefined1 local_34 [4];\n  undefined1 local_30 [8];\n  uint local_28;\n  char local_20;\n  \n  bVar3 = *DAT_00074f78;\n  if (bVar3 == 0x20) {\n    bVar3 = DAT_00074f78[1];\n    DAT_00074f78 = DAT_00074f78 + 1;\n  }\n  local_4c = DAT_00074f78;\n  if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0) {\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }\n  }\n  else {\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }\n  pcVar9 = "expected <tag> , <value>";\nLAB_0004ab8e:\n  uVar4 = dcgettext(0,pcVar9,5);\n  FUN_0002a430(uVar4);\n  FUN_0002c760();\n  return 0;\n}" type_identifier (function_declarator "FUN_0004aaf0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  uint uVar2;\n  byte bVar3;\n  undefined4 uVar4;\n  void *__ptr;\n  uint uVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  uint uVar8;\n  char *pcVar9;\n  byte *local_4c;\n  uint local_44;\n  undefined1 local_34 [4];\n  undefined1 local_30 [8];\n  uint local_28;\n  char local_20;\n  \n  bVar3 = *DAT_00074f78;\n  if (bVar3 == 0x20) {\n    bVar3 = DAT_00074f78[1];\n    DAT_00074f78 = DAT_00074f78 + 1;\n  }\n  local_4c = DAT_00074f78;\n  if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0) {\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }\n  }\n  else {\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }\n  pcVar9 = "expected <tag> , <value>";\nLAB_0004ab8e:\n  uVar4 = dcgettext(0,pcVar9,5);\n  FUN_0002a430(uVar4);\n  FUN_0002c760();\n  return 0;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "byte *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "undefined1 local_34 [4];" type_identifier (array_declarator "local_34 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_30 [8];" type_identifier (array_declarator "local_30 [8]" identifier [ number_literal ]) ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "char local_20;" primitive_type identifier ;) (expression_statement "bVar3 = *DAT_00074f78;" (assignment_expression "bVar3 = *DAT_00074f78" identifier = (pointer_expression "*DAT_00074f78" * identifier)) ;) (if_statement "if (bVar3 == 0x20) {\n    bVar3 = DAT_00074f78[1];\n    DAT_00074f78 = DAT_00074f78 + 1;\n  }" if (parenthesized_expression "(bVar3 == 0x20)" ( (binary_expression "bVar3 == 0x20" identifier == number_literal) )) (compound_statement "{\n    bVar3 = DAT_00074f78[1];\n    DAT_00074f78 = DAT_00074f78 + 1;\n  }" { (expression_statement "bVar3 = DAT_00074f78[1];" (assignment_expression "bVar3 = DAT_00074f78[1]" identifier = (subscript_expression "DAT_00074f78[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00074f78 = DAT_00074f78 + 1;" (assignment_expression "DAT_00074f78 = DAT_00074f78 + 1" identifier = (binary_expression "DAT_00074f78 + 1" identifier + number_literal)) ;) })) (expression_statement "local_4c = DAT_00074f78;" (assignment_expression "local_4c = DAT_00074f78" identifier = identifier) ;) (if_statement "if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0) {\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }\n  }\n  else {\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }" if (parenthesized_expression "((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0)" ( (binary_expression "(*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0" (parenthesized_expression "(*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4)" ( (binary_expression "*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4" (pointer_expression "*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" * (cast_expression "(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" ( (binary_expression "PTR__sch_istable_0006bf68 + (uint)bVar3 * 2" identifier + (binary_expression "(uint)bVar3 * 2" (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }\n  }" { (if_statement "if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }" if (parenthesized_expression "(((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))" ( (binary_expression "((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f)" (parenthesized_expression "((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0)" ( (binary_expression "(*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0" (parenthesized_expression "(*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c)" ( (binary_expression "*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c" (pointer_expression "*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" * (cast_expression "(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" ( (binary_expression "PTR__sch_istable_0006bf68 + (uint)bVar3 * 2" identifier + (binary_expression "(uint)bVar3 * 2" (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar3 == 0x5f)" ( (binary_expression "bVar3 == 0x5f" identifier == number_literal) ))) )) (compound_statement "{\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }" { (expression_statement "iVar7 = 1 - (int)DAT_00074f78;" (assignment_expression "iVar7 = 1 - (int)DAT_00074f78" identifier = (binary_expression "1 - (int)DAT_00074f78" number_literal - (cast_expression "(int)DAT_00074f78" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);" do (compound_statement "{\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      }" { (do_statement "do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);" do (compound_statement "{\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        }" { (expression_statement "pbVar1 = DAT_00074f78 + iVar7;" (assignment_expression "pbVar1 = DAT_00074f78 + iVar7" identifier = (binary_expression "DAT_00074f78 + iVar7" identifier + identifier)) ;) (expression_statement "DAT_00074f78 = DAT_00074f78 + 1;" (assignment_expression "DAT_00074f78 = DAT_00074f78 + 1" identifier = (binary_expression "DAT_00074f78 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0)" ( (binary_expression "(PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0" (parenthesized_expression "(PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c)" ( (binary_expression "PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c" (subscript_expression "PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2]" identifier [ (binary_expression "(uint)*DAT_00074f78 * 2" (binary_expression "(uint)*DAT_00074f78" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal) ]) & number_literal) )) != number_literal) )) ;) }) while (parenthesized_expression "(*DAT_00074f78 == 0x5f)" ( (binary_expression "*DAT_00074f78 == 0x5f" (pointer_expression "*DAT_00074f78" * identifier) == number_literal) )) ;) (if_statement "if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }" if (parenthesized_expression "(pbVar1 != (byte *)0x0)" ( (binary_expression "pbVar1 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }" { (expression_statement "__ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);" (assignment_expression "__ptr = (void *)FUN_0004c3a0(local_4c,pbVar1)" identifier = (cast_expression "(void *)FUN_0004c3a0(local_4c,pbVar1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0004c3a0(local_4c,pbVar1)" identifier (argument_list "(local_4c,pbVar1)" ( identifier , identifier ))))) ;) (expression_statement "uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);" (assignment_expression "uVar4 = dcgettext(0,"Attribute name not recognised: %s",5)" identifier = (call_expression "dcgettext(0,"Attribute name not recognised: %s",5)" identifier (argument_list "(0,"Attribute name not recognised: %s",5)" ( number_literal , (string_literal ""Attribute name not recognised: %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a430(uVar4,__ptr);" (call_expression "FUN_0002a430(uVar4,__ptr)" identifier (argument_list "(uVar4,__ptr)" ( identifier , identifier ))) ;) (expression_statement "FUN_0002c760();" (call_expression "FUN_0002c760()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) })) }) (else_clause "else {\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }" else (compound_statement "{\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }" { (expression_statement "FUN_00021a10(0,local_30,1);" (call_expression "FUN_00021a10(0,local_30,1)" identifier (argument_list "(0,local_30,1)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "uVar2 = local_28;" (assignment_expression "uVar2 = local_28" identifier = identifier) ;) (if_statement "if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }" if (parenthesized_expression "((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))" ( (binary_expression "(local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c)" (parenthesized_expression "(local_20 == '\x02')" ( (binary_expression "local_20 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c)" ( (comma_expression "uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c" (assignment_expression "uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28)" identifier = (call_expression "_bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28)" identifier (argument_list "(DAT_00074f44,param_1,local_28)" ( identifier , identifier , identifier )))) , (binary_expression "*DAT_00074f78 == 0x2c" (pointer_expression "*DAT_00074f78" * identifier) == number_literal)) ))) )) (compound_statement "{\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }" { (expression_statement "DAT_00074f78 = DAT_00074f78 + 1;" (assignment_expression "DAT_00074f78 = DAT_00074f78 + 1" identifier = (binary_expression "DAT_00074f78 + 1" identifier + number_literal)) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (if_statement "if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }" if (parenthesized_expression "((uVar5 & 1) != 0)" ( (binary_expression "(uVar5 & 1) != 0" (parenthesized_expression "(uVar5 & 1)" ( (binary_expression "uVar5 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }" { (expression_statement "FUN_00021a10(0,local_30,1);" (call_expression "FUN_00021a10(0,local_30,1)" identifier (argument_list "(0,local_30,1)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "local_44 = local_28;" (assignment_expression "local_44 = local_28" identifier = identifier) ;) (if_statement "if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }" if (parenthesized_expression "(local_20 != '\x02')" ( (binary_expression "local_20 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }" { (expression_statement "pcVar9 = "expected numeric constant";" (assignment_expression "pcVar9 = "expected numeric constant"" identifier = (string_literal ""expected numeric constant"" " string_content ")) ;) (goto_statement "goto LAB_0004ab8e;" goto statement_identifier ;) })) })) (expression_statement "uVar8 = uVar5 & 3;" (assignment_expression "uVar8 = uVar5 & 3" identifier = (binary_expression "uVar5 & 3" identifier & number_literal)) ;) (if_statement "if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }" if (parenthesized_expression "(uVar8 == 3)" ( (binary_expression "uVar8 == 3" identifier == number_literal) )) (compound_statement "{\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }" { (if_statement "if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }" if (parenthesized_expression "(*DAT_00074f78 != 0x2c)" ( (binary_expression "*DAT_00074f78 != 0x2c" (pointer_expression "*DAT_00074f78" * identifier) != number_literal) )) (compound_statement "{\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }" { (expression_statement "pcVar9 = "expected comma";" (assignment_expression "pcVar9 = "expected comma"" identifier = (string_literal ""expected comma"" " string_content ")) ;) (goto_statement "goto LAB_0004ab8e;" goto statement_identifier ;) })) (expression_statement "DAT_00074f78 = DAT_00074f78 + 1;" (assignment_expression "DAT_00074f78 = DAT_00074f78 + 1" identifier = (binary_expression "DAT_00074f78 + 1" identifier + number_literal)) ;) })) (if_statement "if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }" if (parenthesized_expression "((uVar5 & 2) == 0)" ( (binary_expression "(uVar5 & 2) == 0" (parenthesized_expression "(uVar5 & 2)" ( (binary_expression "uVar5 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }" { (labeled_statement "LAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);" statement_identifier : (expression_statement "uVar5 = 1 << ((byte)uVar2 & 0x1f);" (assignment_expression "uVar5 = 1 << ((byte)uVar2 & 0x1f)" identifier = (binary_expression "1 << ((byte)uVar2 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar2 & 0x1f)" ( (binary_expression "(byte)uVar2 & 0x1f" (cast_expression "(byte)uVar2" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;)) (expression_statement "puVar6 = DAT_00074c74;" (assignment_expression "puVar6 = DAT_00074c74" identifier = identifier) ;) (do_statement "do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );" do (compound_statement "{\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        }" { (if_statement "if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }" if (parenthesized_expression "(puVar6 == (undefined4 *)0x0)" ( (binary_expression "puVar6 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }" { (expression_statement "puVar6 = (undefined4 *)xmalloc(0x10);" (assignment_expression "puVar6 = (undefined4 *)xmalloc(0x10)" identifier = (cast_expression "(undefined4 *)xmalloc(0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "puVar6[2] = uVar2 >> 5;" (assignment_expression "puVar6[2] = uVar2 >> 5" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = (binary_expression "uVar2 >> 5" identifier >> number_literal)) ;) (expression_statement "puVar6[1] = param_1;" (assignment_expression "puVar6[1] = param_1" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = uVar5;" (assignment_expression "puVar6[3] = uVar5" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar6 = DAT_00074c74;" (assignment_expression "*puVar6 = DAT_00074c74" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "DAT_00074c74 = puVar6;" (assignment_expression "DAT_00074c74 = puVar6" identifier = identifier) ;) (labeled_statement "LAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" statement_identifier : (if_statement "if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" if (parenthesized_expression "(uVar8 == 2)" ( (binary_expression "uVar8 == 2" identifier == number_literal) )) (compound_statement "{\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }" { (expression_statement "bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);" (call_expression "bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c)" identifier (argument_list "(DAT_00074f44,param_1,uVar2,local_4c)" ( identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" else (if_statement "if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" if (parenthesized_expression "(uVar8 == 3)" ( (binary_expression "uVar8 == 3" identifier == number_literal) )) (compound_statement "{\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }" { (expression_statement "bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);" (call_expression "bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c)" identifier (argument_list "(DAT_00074f44,param_1,uVar2,local_44,local_4c)" ( identifier , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" else (compound_statement "{\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" { (if_statement "if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }" if (parenthesized_expression "(uVar8 != 1)" ( (binary_expression "uVar8 != 1" identifier != number_literal) )) (compound_statement "{\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }" { (expression_statement "FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);" (call_expression "FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6)" identifier (argument_list "("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6)" ( (string_literal ""../../gas/config/obj-elf.c"" " string_content ") , number_literal , (string_literal ""obj_elf_vendor_attribute"" " string_content ") , identifier ))) ;) })) (expression_statement "bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);" (call_expression "bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44)" identifier (argument_list "(DAT_00074f44,param_1,uVar2,local_44)" ( identifier , identifier , identifier , identifier ))) ;) })))))) (expression_statement "FUN_0002c9b0();" (call_expression "FUN_0002c9b0()" identifier (argument_list "()" ( ))) ;) (return_statement "return uVar2;" return identifier ;) })) (if_statement "if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }" if (parenthesized_expression "((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2]))" ( (binary_expression "(param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])" (parenthesized_expression "(param_1 == puVar6[1])" ( (binary_expression "param_1 == puVar6[1]" identifier == (subscript_expression "puVar6[1]" identifier [ number_literal ])) )) && (parenthesized_expression "(uVar2 >> 5 == puVar6[2])" ( (binary_expression "uVar2 >> 5 == puVar6[2]" (binary_expression "uVar2 >> 5" identifier >> number_literal) == (subscript_expression "puVar6[2]" identifier [ number_literal ])) ))) )) (compound_statement "{\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }" { (expression_statement "puVar6[3] = puVar6[3] | uVar5;" (assignment_expression "puVar6[3] = puVar6[3] | uVar5" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = (binary_expression "puVar6[3] | uVar5" (subscript_expression "puVar6[3]" identifier [ number_literal ]) | identifier)) ;) (goto_statement "goto LAB_0004ad0b;" goto statement_identifier ;) })) (expression_statement "puVar6 = (undefined4 *)*puVar6;" (assignment_expression "puVar6 = (undefined4 *)*puVar6" identifier = (cast_expression "(undefined4 *)*puVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "bVar3 = *DAT_00074f78;" (assignment_expression "bVar3 = *DAT_00074f78" identifier = (pointer_expression "*DAT_00074f78" * identifier)) ;) (if_statement "if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }" if (parenthesized_expression "(bVar3 == 0x20)" ( (binary_expression "bVar3 == 0x20" identifier == number_literal) )) (compound_statement "{\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }" { (expression_statement "bVar3 = DAT_00074f78[1];" (assignment_expression "bVar3 = DAT_00074f78[1]" identifier = (subscript_expression "DAT_00074f78[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00074f78 = DAT_00074f78 + 1;" (assignment_expression "DAT_00074f78 = DAT_00074f78 + 1" identifier = (binary_expression "DAT_00074f78 + 1" identifier + number_literal)) ;) })) (if_statement "if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }" if (parenthesized_expression "(bVar3 == 0x22)" ( (binary_expression "bVar3 == 0x22" identifier == number_literal) )) (compound_statement "{\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }" { (expression_statement "local_4c = (byte *)FUN_00032080(local_34);" (assignment_expression "local_4c = (byte *)FUN_00032080(local_34)" identifier = (cast_expression "(byte *)FUN_00032080(local_34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00032080(local_34)" identifier (argument_list "(local_34)" ( identifier ))))) ;) (goto_statement "goto LAB_0004acc6;" goto statement_identifier ;) })) (expression_statement "pcVar9 = "bad string constant";" (assignment_expression "pcVar9 = "bad string constant"" identifier = (string_literal ""bad string constant"" " string_content ")) ;) (goto_statement "goto LAB_0004ab8e;" goto statement_identifier ;) })) }))) (expression_statement "pcVar9 = "expected <tag> , <value>";" (assignment_expression "pcVar9 = "expected <tag> , <value>"" identifier = (string_literal ""expected <tag> , <value>"" " string_content ")) ;) (labeled_statement "LAB_0004ab8e:\n  uVar4 = dcgettext(0,pcVar9,5);" statement_identifier : (expression_statement "uVar4 = dcgettext(0,pcVar9,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar9,5)" identifier = (call_expression "dcgettext(0,pcVar9,5)" identifier (argument_list "(0,pcVar9,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002a430(uVar4);" (call_expression "FUN_0002a430(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_0002c760();" (call_expression "FUN_0002c760()" identifier (argument_list "()" ( ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) * LIT) ]) & LIT) )) != LIT) )) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) , (binary_expression (pointer_expression * IDENT) == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (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 (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })))))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) == (subscript_expression IDENT [ LIT ])) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return LIT ;) })))
(function_definition "uint FUN_0004aaf0(int param_1)\n\n{\n  byte *pbVar1;\n  uint uVar2;\n  byte bVar3;\n  undefined4 uVar4;\n  void *__ptr;\n  uint uVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  uint uVar8;\n  char *pcVar9;\n  byte *local_4c;\n  uint local_44;\n  undefined1 local_34 [4];\n  undefined1 local_30 [8];\n  uint local_28;\n  char local_20;\n  \n  bVar3 = *DAT_00074f78;\n  if (bVar3 == 0x20) {\n    bVar3 = DAT_00074f78[1];\n    DAT_00074f78 = DAT_00074f78 + 1;\n  }\n  local_4c = DAT_00074f78;\n  if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0) {\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }\n  }\n  else {\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }\n  pcVar9 = "expected <tag> , <value>";\nLAB_0004ab8e:\n  uVar4 = dcgettext(0,pcVar9,5);\n  FUN_0002a430(uVar4);\n  FUN_0002c760();\n  return 0;\n}" (type_identifier "uint") (function_declarator "FUN_0004aaf0(int param_1)" (identifier "FUN_0004aaf0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  byte *pbVar1;\n  uint uVar2;\n  byte bVar3;\n  undefined4 uVar4;\n  void *__ptr;\n  uint uVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  uint uVar8;\n  char *pcVar9;\n  byte *local_4c;\n  uint local_44;\n  undefined1 local_34 [4];\n  undefined1 local_30 [8];\n  uint local_28;\n  char local_20;\n  \n  bVar3 = *DAT_00074f78;\n  if (bVar3 == 0x20) {\n    bVar3 = DAT_00074f78[1];\n    DAT_00074f78 = DAT_00074f78 + 1;\n  }\n  local_4c = DAT_00074f78;\n  if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0) {\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }\n  }\n  else {\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }\n  pcVar9 = "expected <tag> , <value>";\nLAB_0004ab8e:\n  uVar4 = dcgettext(0,pcVar9,5);\n  FUN_0002a430(uVar4);\n  FUN_0002c760();\n  return 0;\n}" ({ "{") (declaration "byte *pbVar1;" (type_identifier "byte") (pointer_declarator "*pbVar1" (* "*") (identifier "pbVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "byte *local_4c;" (type_identifier "byte") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "uint local_44;" (type_identifier "uint") (identifier "local_44") (; ";")) (declaration "undefined1 local_34 [4];" (type_identifier "undefined1") (array_declarator "local_34 [4]" (identifier "local_34") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 local_30 [8];" (type_identifier "undefined1") (array_declarator "local_30 [8]" (identifier "local_30") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "uint local_28;" (type_identifier "uint") (identifier "local_28") (; ";")) (declaration "char local_20;" (primitive_type "char") (identifier "local_20") (; ";")) (expression_statement "bVar3 = *DAT_00074f78;" (assignment_expression "bVar3 = *DAT_00074f78" (identifier "bVar3") (= "=") (pointer_expression "*DAT_00074f78" (* "*") (identifier "DAT_00074f78"))) (; ";")) (if_statement "if (bVar3 == 0x20) {\n    bVar3 = DAT_00074f78[1];\n    DAT_00074f78 = DAT_00074f78 + 1;\n  }" (if "if") (parenthesized_expression "(bVar3 == 0x20)" (( "(") (binary_expression "bVar3 == 0x20" (identifier "bVar3") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n    bVar3 = DAT_00074f78[1];\n    DAT_00074f78 = DAT_00074f78 + 1;\n  }" ({ "{") (expression_statement "bVar3 = DAT_00074f78[1];" (assignment_expression "bVar3 = DAT_00074f78[1]" (identifier "bVar3") (= "=") (subscript_expression "DAT_00074f78[1]" (identifier "DAT_00074f78") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "DAT_00074f78 = DAT_00074f78 + 1;" (assignment_expression "DAT_00074f78 = DAT_00074f78 + 1" (identifier "DAT_00074f78") (= "=") (binary_expression "DAT_00074f78 + 1" (identifier "DAT_00074f78") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_4c = DAT_00074f78;" (assignment_expression "local_4c = DAT_00074f78" (identifier "local_4c") (= "=") (identifier "DAT_00074f78")) (; ";")) (if_statement "if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0) {\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }\n  }\n  else {\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }" (if "if") (parenthesized_expression "((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0)" (( "(") (binary_expression "(*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0" (parenthesized_expression "(*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4)" (( "(") (binary_expression "*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4" (pointer_expression "*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" (* "*") (cast_expression "(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" (( "(") (binary_expression "PTR__sch_istable_0006bf68 + (uint)bVar3 * 2" (identifier "PTR__sch_istable_0006bf68") (+ "+") (binary_expression "(uint)bVar3 * 2" (cast_expression "(uint)bVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar3")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }\n  }" ({ "{") (if_statement "if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))\n    {\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }" (if "if") (parenthesized_expression "(((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))" (( "(") (binary_expression "((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f)" (parenthesized_expression "((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0)" (( "(") (binary_expression "(*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0" (parenthesized_expression "(*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c)" (( "(") (binary_expression "*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c" (pointer_expression "*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" (* "*") (cast_expression "(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2)" (( "(") (binary_expression "PTR__sch_istable_0006bf68 + (uint)bVar3 * 2" (identifier "PTR__sch_istable_0006bf68") (+ "+") (binary_expression "(uint)bVar3 * 2" (cast_expression "(uint)bVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar3")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x8c")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar3 == 0x5f)" (( "(") (binary_expression "bVar3 == 0x5f" (identifier "bVar3") (== "==") (number_literal "0x5f")) () ")"))) () ")")) (compound_statement "{\n      iVar7 = 1 - (int)DAT_00074f78;\n      do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);\n      if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }\n    }" ({ "{") (expression_statement "iVar7 = 1 - (int)DAT_00074f78;" (assignment_expression "iVar7 = 1 - (int)DAT_00074f78" (identifier "iVar7") (= "=") (binary_expression "1 - (int)DAT_00074f78" (number_literal "1") (- "-") (cast_expression "(int)DAT_00074f78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_00074f78")))) (; ";")) (do_statement "do {\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      } while (*DAT_00074f78 == 0x5f);" (do "do") (compound_statement "{\n        do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);\n      }" ({ "{") (do_statement "do {\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);" (do "do") (compound_statement "{\n          pbVar1 = DAT_00074f78 + iVar7;\n          DAT_00074f78 = DAT_00074f78 + 1;\n        }" ({ "{") (expression_statement "pbVar1 = DAT_00074f78 + iVar7;" (assignment_expression "pbVar1 = DAT_00074f78 + iVar7" (identifier "pbVar1") (= "=") (binary_expression "DAT_00074f78 + iVar7" (identifier "DAT_00074f78") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "DAT_00074f78 = DAT_00074f78 + 1;" (assignment_expression "DAT_00074f78 = DAT_00074f78 + 1" (identifier "DAT_00074f78") (= "=") (binary_expression "DAT_00074f78 + 1" (identifier "DAT_00074f78") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0)" (( "(") (binary_expression "(PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0" (parenthesized_expression "(PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c)" (( "(") (binary_expression "PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c" (subscript_expression "PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2]" (identifier "PTR__sch_istable_0006bf68") ([ "[") (binary_expression "(uint)*DAT_00074f78 * 2" (binary_expression "(uint)*DAT_00074f78" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "DAT_00074f78")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "0x8c")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*DAT_00074f78 == 0x5f)" (( "(") (binary_expression "*DAT_00074f78 == 0x5f" (pointer_expression "*DAT_00074f78" (* "*") (identifier "DAT_00074f78")) (== "==") (number_literal "0x5f")) () ")")) (; ";")) (if_statement "if (pbVar1 != (byte *)0x0) {\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }" (if "if") (parenthesized_expression "(pbVar1 != (byte *)0x0)" (( "(") (binary_expression "pbVar1 != (byte *)0x0" (identifier "pbVar1") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);\n        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);\n        FUN_0002a430(uVar4,__ptr);\n        FUN_0002c760();\n        free(__ptr);\n        return 0;\n      }" ({ "{") (expression_statement "__ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);" (assignment_expression "__ptr = (void *)FUN_0004c3a0(local_4c,pbVar1)" (identifier "__ptr") (= "=") (cast_expression "(void *)FUN_0004c3a0(local_4c,pbVar1)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0004c3a0(local_4c,pbVar1)" (identifier "FUN_0004c3a0") (argument_list "(local_4c,pbVar1)" (( "(") (identifier "local_4c") (, ",") (identifier "pbVar1") () ")"))))) (; ";")) (expression_statement "uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);" (assignment_expression "uVar4 = dcgettext(0,"Attribute name not recognised: %s",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"Attribute name not recognised: %s",5)" (identifier "dcgettext") (argument_list "(0,"Attribute name not recognised: %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Attribute name not recognised: %s"" (" """) (string_content "Attribute name not recognised: %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002a430(uVar4,__ptr);" (call_expression "FUN_0002a430(uVar4,__ptr)" (identifier "FUN_0002a430") (argument_list "(uVar4,__ptr)" (( "(") (identifier "uVar4") (, ",") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "FUN_0002c760();" (call_expression "FUN_0002c760()" (identifier "FUN_0002c760") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }" (else "else") (compound_statement "{\n    FUN_00021a10(0,local_30,1);\n    uVar2 = local_28;\n    if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }\n  }" ({ "{") (expression_statement "FUN_00021a10(0,local_30,1);" (call_expression "FUN_00021a10(0,local_30,1)" (identifier "FUN_00021a10") (argument_list "(0,local_30,1)" (( "(") (number_literal "0") (, ",") (identifier "local_30") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "uVar2 = local_28;" (assignment_expression "uVar2 = local_28" (identifier "uVar2") (= "=") (identifier "local_28")) (; ";")) (if_statement "if ((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))\n    {\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }" (if "if") (parenthesized_expression "((local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))" (( "(") (binary_expression "(local_20 == '\x02') &&\n       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c)" (parenthesized_expression "(local_20 == '\x02')" (( "(") (binary_expression "local_20 == '\x02'" (identifier "local_20") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c)" (( "(") (comma_expression "uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c" (assignment_expression "uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28)" (identifier "uVar5") (= "=") (call_expression "_bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28)" (identifier "_bfd_elf_obj_attrs_arg_type") (argument_list "(DAT_00074f44,param_1,local_28)" (( "(") (identifier "DAT_00074f44") (, ",") (identifier "param_1") (, ",") (identifier "local_28") () ")")))) (, ",") (binary_expression "*DAT_00074f78 == 0x2c" (pointer_expression "*DAT_00074f78" (* "*") (identifier "DAT_00074f78")) (== "==") (number_literal "0x2c"))) () ")"))) () ")")) (compound_statement "{\n      DAT_00074f78 = DAT_00074f78 + 1;\n      local_44 = 0;\n      if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }\n      uVar8 = uVar5 & 3;\n      if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }\n      bVar3 = *DAT_00074f78;\n      if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }\n      if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }\n      pcVar9 = "bad string constant";\n      goto LAB_0004ab8e;\n    }" ({ "{") (expression_statement "DAT_00074f78 = DAT_00074f78 + 1;" (assignment_expression "DAT_00074f78 = DAT_00074f78 + 1" (identifier "DAT_00074f78") (= "=") (binary_expression "DAT_00074f78 + 1" (identifier "DAT_00074f78") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uVar5 & 1) != 0) {\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }" (if "if") (parenthesized_expression "((uVar5 & 1) != 0)" (( "(") (binary_expression "(uVar5 & 1) != 0" (parenthesized_expression "(uVar5 & 1)" (( "(") (binary_expression "uVar5 & 1" (identifier "uVar5") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00021a10(0,local_30,1);\n        local_44 = local_28;\n        if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }\n      }" ({ "{") (expression_statement "FUN_00021a10(0,local_30,1);" (call_expression "FUN_00021a10(0,local_30,1)" (identifier "FUN_00021a10") (argument_list "(0,local_30,1)" (( "(") (number_literal "0") (, ",") (identifier "local_30") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "local_44 = local_28;" (assignment_expression "local_44 = local_28" (identifier "local_44") (= "=") (identifier "local_28")) (; ";")) (if_statement "if (local_20 != '\x02') {\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }" (if "if") (parenthesized_expression "(local_20 != '\x02')" (( "(") (binary_expression "local_20 != '\x02'" (identifier "local_20") (!= "!=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n          pcVar9 = "expected numeric constant";\n          goto LAB_0004ab8e;\n        }" ({ "{") (expression_statement "pcVar9 = "expected numeric constant";" (assignment_expression "pcVar9 = "expected numeric constant"" (identifier "pcVar9") (= "=") (string_literal ""expected numeric constant"" (" """) (string_content "expected numeric constant") (" """))) (; ";")) (goto_statement "goto LAB_0004ab8e;" (goto "goto") (statement_identifier "LAB_0004ab8e") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar8 = uVar5 & 3;" (assignment_expression "uVar8 = uVar5 & 3" (identifier "uVar8") (= "=") (binary_expression "uVar5 & 3" (identifier "uVar5") (& "&") (number_literal "3"))) (; ";")) (if_statement "if (uVar8 == 3) {\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }" (if "if") (parenthesized_expression "(uVar8 == 3)" (( "(") (binary_expression "uVar8 == 3" (identifier "uVar8") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n        if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }" ({ "{") (if_statement "if (*DAT_00074f78 != 0x2c) {\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }" (if "if") (parenthesized_expression "(*DAT_00074f78 != 0x2c)" (( "(") (binary_expression "*DAT_00074f78 != 0x2c" (pointer_expression "*DAT_00074f78" (* "*") (identifier "DAT_00074f78")) (!= "!=") (number_literal "0x2c")) () ")")) (compound_statement "{\n          pcVar9 = "expected comma";\n          goto LAB_0004ab8e;\n        }" ({ "{") (expression_statement "pcVar9 = "expected comma";" (assignment_expression "pcVar9 = "expected comma"" (identifier "pcVar9") (= "=") (string_literal ""expected comma"" (" """) (string_content "expected comma") (" """))) (; ";")) (goto_statement "goto LAB_0004ab8e;" (goto "goto") (statement_identifier "LAB_0004ab8e") (; ";")) (} "}"))) (expression_statement "DAT_00074f78 = DAT_00074f78 + 1;" (assignment_expression "DAT_00074f78 = DAT_00074f78 + 1" (identifier "DAT_00074f78") (= "=") (binary_expression "DAT_00074f78 + 1" (identifier "DAT_00074f78") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((uVar5 & 2) == 0) {\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }" (if "if") (parenthesized_expression "((uVar5 & 2) == 0)" (( "(") (binary_expression "(uVar5 & 2) == 0" (parenthesized_expression "(uVar5 & 2)" (( "(") (binary_expression "uVar5 & 2" (identifier "uVar5") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);\n        puVar6 = DAT_00074c74;\n        do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );\n      }" ({ "{") (labeled_statement "LAB_0004acc6:\n        uVar5 = 1 << ((byte)uVar2 & 0x1f);" (statement_identifier "LAB_0004acc6") (: ":") (expression_statement "uVar5 = 1 << ((byte)uVar2 & 0x1f);" (assignment_expression "uVar5 = 1 << ((byte)uVar2 & 0x1f)" (identifier "uVar5") (= "=") (binary_expression "1 << ((byte)uVar2 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)uVar2 & 0x1f)" (( "(") (binary_expression "(byte)uVar2 & 0x1f" (cast_expression "(byte)uVar2" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar2")) (& "&") (number_literal "0x1f")) () ")")))) (; ";"))) (expression_statement "puVar6 = DAT_00074c74;" (assignment_expression "puVar6 = DAT_00074c74" (identifier "puVar6") (= "=") (identifier "DAT_00074c74")) (; ";")) (do_statement "do {\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        } while( true );" (do "do") (compound_statement "{\n          if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }\n          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }\n          puVar6 = (undefined4 *)*puVar6;\n        }" ({ "{") (if_statement "if (puVar6 == (undefined4 *)0x0) {\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }" (if "if") (parenthesized_expression "(puVar6 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar6 == (undefined4 *)0x0" (identifier "puVar6") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            puVar6 = (undefined4 *)xmalloc(0x10);\n            puVar6[2] = uVar2 >> 5;\n            puVar6[1] = param_1;\n            puVar6[3] = uVar5;\n            *puVar6 = DAT_00074c74;\n            DAT_00074c74 = puVar6;\nLAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }\n            FUN_0002c9b0();\n            return uVar2;\n          }" ({ "{") (expression_statement "puVar6 = (undefined4 *)xmalloc(0x10);" (assignment_expression "puVar6 = (undefined4 *)xmalloc(0x10)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)xmalloc(0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x10)" (identifier "xmalloc") (argument_list "(0x10)" (( "(") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "puVar6[2] = uVar2 >> 5;" (assignment_expression "puVar6[2] = uVar2 >> 5" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar2 >> 5" (identifier "uVar2") (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "puVar6[1] = param_1;" (assignment_expression "puVar6[1] = param_1" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "puVar6[3] = uVar5;" (assignment_expression "puVar6[3] = uVar5" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*puVar6 = DAT_00074c74;" (assignment_expression "*puVar6 = DAT_00074c74" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (identifier "DAT_00074c74")) (; ";")) (expression_statement "DAT_00074c74 = puVar6;" (assignment_expression "DAT_00074c74 = puVar6" (identifier "DAT_00074c74") (= "=") (identifier "puVar6")) (; ";")) (labeled_statement "LAB_0004ad0b:\n            if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" (statement_identifier "LAB_0004ad0b") (: ":") (if_statement "if (uVar8 == 2) {\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }\n            else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" (if "if") (parenthesized_expression "(uVar8 == 2)" (( "(") (binary_expression "uVar8 == 2" (identifier "uVar8") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);\n            }" ({ "{") (expression_statement "bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);" (call_expression "bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c)" (identifier "bfd_elf_add_obj_attr_string") (argument_list "(DAT_00074f44,param_1,uVar2,local_4c)" (( "(") (identifier "DAT_00074f44") (, ",") (identifier "param_1") (, ",") (identifier "uVar2") (, ",") (identifier "local_4c") () ")"))) (; ";")) (} "}")) (else_clause "else if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" (else "else") (if_statement "if (uVar8 == 3) {\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }\n            else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" (if "if") (parenthesized_expression "(uVar8 == 3)" (( "(") (binary_expression "uVar8 == 3" (identifier "uVar8") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);\n            }" ({ "{") (expression_statement "bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);" (call_expression "bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c)" (identifier "bfd_elf_add_obj_attr_int_string") (argument_list "(DAT_00074f44,param_1,uVar2,local_44,local_4c)" (( "(") (identifier "DAT_00074f44") (, ",") (identifier "param_1") (, ",") (identifier "uVar2") (, ",") (identifier "local_44") (, ",") (identifier "local_4c") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" (else "else") (compound_statement "{\n              if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }\n              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);\n            }" ({ "{") (if_statement "if (uVar8 != 1) {\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }" (if "if") (parenthesized_expression "(uVar8 != 1)" (( "(") (binary_expression "uVar8 != 1" (identifier "uVar8") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                    \n                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);\n              }" ({ "{") (expression_statement "FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);" (call_expression "FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6)" (identifier "FUN_0002a550") (argument_list "("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6)" (( "(") (string_literal ""../../gas/config/obj-elf.c"" (" """) (string_content "../../gas/config/obj-elf.c") (" """)) (, ",") (number_literal "0x6ca") (, ",") (string_literal ""obj_elf_vendor_attribute"" (" """) (string_content "obj_elf_vendor_attribute") (" """)) (, ",") (identifier "puVar6") () ")"))) (; ";")) (} "}"))) (expression_statement "bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);" (call_expression "bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44)" (identifier "bfd_elf_add_obj_attr_int") (argument_list "(DAT_00074f44,param_1,uVar2,local_44)" (( "(") (identifier "DAT_00074f44") (, ",") (identifier "param_1") (, ",") (identifier "uVar2") (, ",") (identifier "local_44") () ")"))) (; ";")) (} "}"))))))) (expression_statement "FUN_0002c9b0();" (call_expression "FUN_0002c9b0()" (identifier "FUN_0002c9b0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (if_statement "if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }" (if "if") (parenthesized_expression "((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2]))" (( "(") (binary_expression "(param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])" (parenthesized_expression "(param_1 == puVar6[1])" (( "(") (binary_expression "param_1 == puVar6[1]" (identifier "param_1") (== "==") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "(uVar2 >> 5 == puVar6[2])" (( "(") (binary_expression "uVar2 >> 5 == puVar6[2]" (binary_expression "uVar2 >> 5" (identifier "uVar2") (>> ">>") (number_literal "5")) (== "==") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) () ")"))) () ")")) (compound_statement "{\n            puVar6[3] = puVar6[3] | uVar5;\n            goto LAB_0004ad0b;\n          }" ({ "{") (expression_statement "puVar6[3] = puVar6[3] | uVar5;" (assignment_expression "puVar6[3] = puVar6[3] | uVar5" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "puVar6[3] | uVar5" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (| "|") (identifier "uVar5"))) (; ";")) (goto_statement "goto LAB_0004ad0b;" (goto "goto") (statement_identifier "LAB_0004ad0b") (; ";")) (} "}"))) (expression_statement "puVar6 = (undefined4 *)*puVar6;" (assignment_expression "puVar6 = (undefined4 *)*puVar6" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)*puVar6" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "bVar3 = *DAT_00074f78;" (assignment_expression "bVar3 = *DAT_00074f78" (identifier "bVar3") (= "=") (pointer_expression "*DAT_00074f78" (* "*") (identifier "DAT_00074f78"))) (; ";")) (if_statement "if (bVar3 == 0x20) {\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }" (if "if") (parenthesized_expression "(bVar3 == 0x20)" (( "(") (binary_expression "bVar3 == 0x20" (identifier "bVar3") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n        bVar3 = DAT_00074f78[1];\n        DAT_00074f78 = DAT_00074f78 + 1;\n      }" ({ "{") (expression_statement "bVar3 = DAT_00074f78[1];" (assignment_expression "bVar3 = DAT_00074f78[1]" (identifier "bVar3") (= "=") (subscript_expression "DAT_00074f78[1]" (identifier "DAT_00074f78") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "DAT_00074f78 = DAT_00074f78 + 1;" (assignment_expression "DAT_00074f78 = DAT_00074f78 + 1" (identifier "DAT_00074f78") (= "=") (binary_expression "DAT_00074f78 + 1" (identifier "DAT_00074f78") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (bVar3 == 0x22) {\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }" (if "if") (parenthesized_expression "(bVar3 == 0x22)" (( "(") (binary_expression "bVar3 == 0x22" (identifier "bVar3") (== "==") (number_literal "0x22")) () ")")) (compound_statement "{\n        local_4c = (byte *)FUN_00032080(local_34);\n        goto LAB_0004acc6;\n      }" ({ "{") (expression_statement "local_4c = (byte *)FUN_00032080(local_34);" (assignment_expression "local_4c = (byte *)FUN_00032080(local_34)" (identifier "local_4c") (= "=") (cast_expression "(byte *)FUN_00032080(local_34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00032080(local_34)" (identifier "FUN_00032080") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))))) (; ";")) (goto_statement "goto LAB_0004acc6;" (goto "goto") (statement_identifier "LAB_0004acc6") (; ";")) (} "}"))) (expression_statement "pcVar9 = "bad string constant";" (assignment_expression "pcVar9 = "bad string constant"" (identifier "pcVar9") (= "=") (string_literal ""bad string constant"" (" """) (string_content "bad string constant") (" """))) (; ";")) (goto_statement "goto LAB_0004ab8e;" (goto "goto") (statement_identifier "LAB_0004ab8e") (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar9 = "expected <tag> , <value>";" (assignment_expression "pcVar9 = "expected <tag> , <value>"" (identifier "pcVar9") (= "=") (string_literal ""expected <tag> , <value>"" (" """) (string_content "expected <tag> , <value>") (" """))) (; ";")) (labeled_statement "LAB_0004ab8e:\n  uVar4 = dcgettext(0,pcVar9,5);" (statement_identifier "LAB_0004ab8e") (: ":") (expression_statement "uVar4 = dcgettext(0,pcVar9,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar9,5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,pcVar9,5)" (identifier "dcgettext") (argument_list "(0,pcVar9,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar9") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002a430(uVar4);" (call_expression "FUN_0002a430(uVar4)" (identifier "FUN_0002a430") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "FUN_0002c760();" (call_expression "FUN_0002c760()" (identifier "FUN_0002c760") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Unknown calling convention */

int function_1(int var_23)

{
  type_1 *var_5;
  type_2 var_17;
  type_1 var_1;
  char var_24;
  char *pcVar4;
  char *format;
  type_2 var_13;
  type_3 *var_15;
  int var_4;
  type_2 var_14;
  char *local_4c;
  type_2 local_44;
  int len;
  type_4 exp;
  
  var_1 = *var_2;
  if (var_1 == 0x20) {
    var_1 = var_2[1];
    var_2 = var_2 + 1;
  }
  local_4c = var_2;
  if ((*(type_5 *)(var_3 + (type_2)var_1 * 2) & 4) == 0) {
    if (((*(type_5 *)(var_3 + (type_2)var_1 * 2) & 0x8c) != 0) || (var_1 == 0x5f))
    {
      var_4 = 1 - (int)var_2;
      do {
        do {
          var_5 = (type_1 *)var_2 + var_4;
          var_2 = (char *)((type_1 *)var_2 + 1);
        } while ((var_3[(type_2)(type_1)*var_2 * 2] & 0x8c) != 0);
      } while (*var_2 == 0x5f);
      if (var_5 != (type_1 *)0x0) {
        pcVar4 = var_6(local_4c,(size_t)var_5);
        format = (char *)var_7(0,"Attribute name not recognised: %s",5);
        var_8(format,pcVar4);
        var_9();
        var_10(pcVar4);
        return 0;
      }
    }
  }
  else {
    var_11(0,&exp,expr_normal);
    var_17 = (type_2)exp.X_add_number;
    if ((exp._16_1_ == '\x02') &&
       (var_13 = var_12(stdoutput,var_23,(type_2)exp.X_add_number),
       *var_2 == ',')) {
      var_2 = var_2 + 1;
      local_44 = 0;
      if ((var_13 & 1) != 0) {
        var_11(0,&exp,expr_normal);
        local_44 = (type_2)exp.X_add_number;
        if (exp._16_1_ != '\x02') {
          pcVar4 = "expected numeric constant";
          goto LAB_0004ab8e;
        }
      }
      var_14 = var_13 & 3;
      if (var_14 == 3) {
        if (*var_2 != ',') {
          pcVar4 = "expected comma";
          goto LAB_0004ab8e;
        }
        var_2 = var_2 + 1;
      }
      if ((var_13 & 2) == 0) {
LAB_0004acc6:
        var_13 = 1 << ((type_1)var_17 & 0x1f);
        var_15 = recorded_attributes;
        do {
          if (var_15 == (type_3 *)0x0) {
            var_15 = (type_3 *)var_16(0x10);
            var_15->base = var_17 >> 5;
            var_15->var_23 = var_23;
            var_15->mask = var_13;
            var_15->next = recorded_attributes;
            recorded_attributes = var_15;
LAB_0004ad0b:
            if (var_14 == 2) {
              var_18(stdoutput,var_23,var_17,local_4c);
            }
            else if (var_14 == 3) {
              var_19(stdoutput,var_23,var_17,local_44,local_4c);
            }
            else {
              if (var_14 != 1) {
                    /* WARNING: Subroutine does not return */
                var_20("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute");
              }
              var_21(stdoutput,var_23,var_17,local_44);
            }
            var_22();
            return var_17;
          }
          if ((var_23 == var_15->var_23) && (var_17 >> 5 == var_15->base)) {
            var_15->mask = var_15->mask | var_13;
            goto LAB_0004ad0b;
          }
          var_15 = var_15->next;
        } while( true );
      }
      var_24 = *var_2;
      if (var_24 == ' ') {
        var_24 = var_2[1];
        var_2 = var_2 + 1;
      }
      if (var_24 == '\"') {
        local_4c = var_25(&len);
        goto LAB_0004acc6;
      }
      pcVar4 = "bad string constant";
      goto LAB_0004ab8e;
    }
  }
  pcVar4 = "expected <tag> , <value>";
LAB_0004ab8e:
  pcVar4 = (char *)var_7(0,pcVar4,5);
  var_8(pcVar4);
  var_9();
  return 0;
}


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

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

uint MASKED(int param_1)

{
  byte *pbVar1;
  uint uVar2;
  byte bVar3;
  undefined4 uVar4;
  void *__ptr;
  uint uVar5;
  undefined4 *puVar6;
  int iVar7;
  uint uVar8;
  char *pcVar9;
  byte *local_4c;
  uint local_44;
  undefined1 local_34 [4];
  undefined1 local_30 [8];
  uint local_28;
  char local_20;
  
  bVar3 = *DAT_00074f78;
  if (bVar3 == 0x20) {
    bVar3 = DAT_00074f78[1];
    DAT_00074f78 = DAT_00074f78 + 1;
  }
  local_4c = DAT_00074f78;
  if ((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 4) == 0) {
    if (((*(ushort *)(PTR__sch_istable_0006bf68 + (uint)bVar3 * 2) & 0x8c) != 0) || (bVar3 == 0x5f))
    {
      iVar7 = 1 - (int)DAT_00074f78;
      do {
        do {
          pbVar1 = DAT_00074f78 + iVar7;
          DAT_00074f78 = DAT_00074f78 + 1;
        } while ((PTR__sch_istable_0006bf68[(uint)*DAT_00074f78 * 2] & 0x8c) != 0);
      } while (*DAT_00074f78 == 0x5f);
      if (pbVar1 != (byte *)0x0) {
        __ptr = (void *)FUN_0004c3a0(local_4c,pbVar1);
        uVar4 = dcgettext(0,"Attribute name not recognised: %s",5);
        FUN_0002a430(uVar4,__ptr);
        FUN_0002c760();
        free(__ptr);
        return 0;
      }
    }
  }
  else {
    FUN_00021a10(0,local_30,1);
    uVar2 = local_28;
    if ((local_20 == '\x02') &&
       (uVar5 = _bfd_elf_obj_attrs_arg_type(DAT_00074f44,param_1,local_28), *DAT_00074f78 == 0x2c))
    {
      DAT_00074f78 = DAT_00074f78 + 1;
      local_44 = 0;
      if ((uVar5 & 1) != 0) {
        FUN_00021a10(0,local_30,1);
        local_44 = local_28;
        if (local_20 != '\x02') {
          pcVar9 = "expected numeric constant";
          goto LAB_0004ab8e;
        }
      }
      uVar8 = uVar5 & 3;
      if (uVar8 == 3) {
        if (*DAT_00074f78 != 0x2c) {
          pcVar9 = "expected comma";
          goto LAB_0004ab8e;
        }
        DAT_00074f78 = DAT_00074f78 + 1;
      }
      if ((uVar5 & 2) == 0) {
LAB_0004acc6:
        uVar5 = 1 << ((byte)uVar2 & 0x1f);
        puVar6 = DAT_00074c74;
        do {
          if (puVar6 == (undefined4 *)0x0) {
            puVar6 = (undefined4 *)xmalloc(0x10);
            puVar6[2] = uVar2 >> 5;
            puVar6[1] = param_1;
            puVar6[3] = uVar5;
            *puVar6 = DAT_00074c74;
            DAT_00074c74 = puVar6;
LAB_0004ad0b:
            if (uVar8 == 2) {
              bfd_elf_add_obj_attr_string(DAT_00074f44,param_1,uVar2,local_4c);
            }
            else if (uVar8 == 3) {
              bfd_elf_add_obj_attr_int_string(DAT_00074f44,param_1,uVar2,local_44,local_4c);
            }
            else {
              if (uVar8 != 1) {
                    /* WARNING: Subroutine does not return */
                FUN_0002a550("../../gas/config/obj-elf.c",0x6ca,"obj_elf_vendor_attribute",puVar6);
              }
              bfd_elf_add_obj_attr_int(DAT_00074f44,param_1,uVar2,local_44);
            }
            FUN_0002c9b0();
            return uVar2;
          }
          if ((param_1 == puVar6[1]) && (uVar2 >> 5 == puVar6[2])) {
            puVar6[3] = puVar6[3] | uVar5;
            goto LAB_0004ad0b;
          }
          puVar6 = (undefined4 *)*puVar6;
        } while( true );
      }
      bVar3 = *DAT_00074f78;
      if (bVar3 == 0x20) {
        bVar3 = DAT_00074f78[1];
        DAT_00074f78 = DAT_00074f78 + 1;
      }
      if (bVar3 == 0x22) {
        local_4c = (byte *)FUN_00032080(local_34);
        goto LAB_0004acc6;
      }
      pcVar9 = "bad string constant";
      goto LAB_0004ab8e;
    }
  }
  pcVar9 = "expected <tag> , <value>";
LAB_0004ab8e:
  uVar4 = dcgettext(0,pcVar9,5);
  FUN_0002a430(uVar4);
  FUN_0002c760();
  return 0;
}

