
void obj_elf_symver(int ignore)

{
  byte bVar1;
  char c;
  int iVar2;
  symbolS *s;
  elf_obj_sy *peVar3;
  char *pcVar4;
  char *pcVar5;
  char *format;
  char *name;
  
  s = get_sym_from_input_line_and_check();
  bVar1 = lex_type[0x40];
  if (*input_line_pointer != ',') {
    pcVar4 = (char *)dcgettext(0,"expected comma after name in .symver",5);
    as_bad(pcVar4);
    ignore_rest_of_line();
    return;
  }
  pcVar4 = input_line_pointer + 1;
  if (input_line_pointer[1] == ' ') {
    pcVar4 = input_line_pointer + 2;
  }
  input_line_pointer = pcVar4;
  lex_type[0x40] = lex_type[0x40] | 1;
  c = get_symbol_name(&name);
  lex_type[0x40] = bVar1;
  iVar2 = S_IS_COMMON(s);
  if (iVar2 == 0) {
    peVar3 = symbol_get_obj(s);
    pcVar4 = name;
    if (peVar3->versioned_name == (char *)0x0) {
      peVar3 = symbol_get_obj(s);
      pcVar4 = (char *)xstrdup(name);
      peVar3->versioned_name = pcVar4;
      restore_line_pointer(c);
      peVar3 = symbol_get_obj(s);
      pcVar4 = strchr(peVar3->versioned_name,0x40);
      if (pcVar4 == (char *)0x0) {
        pcVar4 = S_GET_NAME(s);
        peVar3 = symbol_get_obj(s);
        pcVar5 = "missing version name in `%s\' for symbol `%s\'";
        name = peVar3->versioned_name;
        goto LAB_0013cbe9;
      }
    }
    else {
      peVar3 = symbol_get_obj(s);
      iVar2 = strcmp(peVar3->versioned_name,pcVar4);
      if (iVar2 != 0) {
        pcVar5 = S_GET_NAME(s);
        peVar3 = symbol_get_obj(s);
        pcVar4 = peVar3->versioned_name;
        format = (char *)dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);
        as_bad(format,name,pcVar4,pcVar5);
        ignore_rest_of_line();
        return;
      }
      restore_line_pointer(c);
    }
    demand_empty_rest_of_line();
    return;
  }
  pcVar4 = S_GET_NAME(s);
  pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'";
LAB_0013cbe9:
  pcVar5 = (char *)dcgettext(0,pcVar5,5);
  as_bad(pcVar5,name,pcVar4);
  ignore_rest_of_line();
  return;
}



void FUN_0013cb10(void)

{
  byte bVar1;
  char cVar2;
  int iVar3;
  undefined8 uVar4;
  long lVar5;
  char *pcVar6;
  undefined8 uVar7;
  undefined8 uVar8;
  char *local_30 [2];
  
  uVar4 = FUN_0013ca70();
  bVar1 = DAT_0015f620;
  if (*DAT_00168ae0 != ',') {
    uVar4 = dcgettext(0,"expected comma after name in .symver",5);
    FUN_0011e700(uVar4);
    FUN_00120850();
    return;
  }
  pcVar6 = DAT_00168ae0 + 1;
  if (DAT_00168ae0[1] == ' ') {
    pcVar6 = DAT_00168ae0 + 2;
  }
  DAT_00168ae0 = pcVar6;
  DAT_0015f620 = DAT_0015f620 | 1;
  cVar2 = FUN_00115b70(local_30);
  DAT_0015f620 = bVar1;
  iVar3 = FUN_00129b20(uVar4);
  if (iVar3 == 0) {
    lVar5 = FUN_0012cb30();
    pcVar6 = local_30[0];
    if (*(long *)(lVar5 + 0x10) == 0) {
      lVar5 = FUN_0012cb30(uVar4);
      uVar7 = xstrdup(local_30[0]);
      *(undefined8 *)(lVar5 + 0x10) = uVar7;
      FUN_001174e0((int)cVar2);
      lVar5 = FUN_0012cb30(uVar4);
      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);
      if (pcVar6 == (char *)0x0) {
        uVar7 = FUN_00129e50(uVar4);
        lVar5 = FUN_0012cb30(uVar4);
        pcVar6 = "missing version name in `%s\' for symbol `%s\'";
        local_30[0] = *(char **)(lVar5 + 0x10);
        goto LAB_0013cbe9;
      }
    }
    else {
      lVar5 = FUN_0012cb30(uVar4);
      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);
      if (iVar3 != 0) {
        uVar7 = FUN_00129e50(uVar4);
        lVar5 = FUN_0012cb30(uVar4);
        uVar4 = *(undefined8 *)(lVar5 + 0x10);
        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);
        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);
        FUN_00120850();
        return;
      }
      FUN_001174e0((int)cVar2);
    }
    FUN_00120a70();
    return;
  }
  uVar7 = FUN_00129e50(uVar4);
  pcVar6 = "`%s\' can\'t be versioned to common symbol \'%s\'";
LAB_0013cbe9:
  uVar4 = dcgettext(0,pcVar6,5);
  FUN_0011e700(uVar4,local_30[0],uVar7);
  FUN_00120850();
  return;
}


PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x18
CALL 0x0013ca70
MOV RBX,RAX
MOV RAX,qword ptr [0x00168ae0]
CMP byte ptr [RAX],0x2c
JNZ 0x0013cc20
LEA RDX,[RAX + 0x1]
MOV qword ptr [0x00168ae0],RDX
CMP byte ptr [RAX + 0x1],0x20
JZ 0x0013cc10
MOVZX EBP,byte ptr [0x0015f620]
LEA RDI,[RSP + 0x8]
MOV EAX,EBP
OR EAX,0x1
MOV byte ptr [0x0015f620],AL
CALL 0x00115b70
MOV RDI,RBX
MOV byte ptr [0x0015f620],BPL
MOV R12D,EAX
CALL 0x00129b20
MOV RDI,RBX
TEST EAX,EAX
JNZ 0x0013cbd0
CALL 0x0012cb30
CMP qword ptr [RAX + 0x10],0x0
JZ 0x0013cc50
MOV RDI,RBX
MOV RBP,qword ptr [RSP + 0x8]
CALL 0x0012cb30
MOV RDI,qword ptr [RAX + 0x10]
MOV RSI,RBP
CALL 0x001093c0
TEST EAX,EAX
JNZ 0x0013ccc0
MOVSX EDI,R12B
CALL 0x001174e0
CALL 0x00120a70
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
RET
CALL 0x00129e50
MOV RBX,qword ptr [RSP + 0x8]
MOV EDX,0x5
LEA RSI,[0x149ef0]
MOV RBP,RAX
XOR EDI,EDI
CALL 0x001091c0
MOV RDX,RBP
MOV RSI,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011e700
CALL 0x00120850
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
RET
ADD RAX,0x2
MOV qword ptr [0x00168ae0],RAX
JMP 0x0013cb47
MOV EDX,0x5
LEA RSI,[0x149fa8]
XOR EDI,EDI
CALL 0x001091c0
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011e700
CALL 0x00120850
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
RET
MOV R13,qword ptr [RSP + 0x8]
MOV RDI,RBX
CALL 0x0012cb30
MOV RDI,R13
MOV RBP,RAX
CALL 0x00109310
MOVSX EDI,R12B
MOV qword ptr [RBP + 0x10],RAX
CALL 0x001174e0
MOV RDI,RBX
CALL 0x0012cb30
MOV ESI,0x40
MOV RDI,qword ptr [RAX + 0x10]
CALL 0x00109200
TEST RAX,RAX
JNZ 0x0013cbb6
MOV RDI,RBX
CALL 0x00129e50
MOV RDI,RBX
MOV RBP,RAX
CALL 0x0012cb30
MOV EDX,0x5
LEA RSI,[0x149fd0]
MOV RBX,qword ptr [RAX + 0x10]
JMP 0x0013cbe9
MOV RDI,RBX
CALL 0x00129e50
MOV RDI,RBX
MOV R12,RAX
CALL 0x0012cb30
MOV RBX,qword ptr [RSP + 0x8]
MOV EDX,0x5
XOR EDI,EDI
MOV RBP,qword ptr [RAX + 0x10]
LEA RSI,[0x14a000]
CALL 0x001091c0
MOV RCX,R12
MOV RSI,RBX
MOV RDX,RBP
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011e700
CALL 0x00120850
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
RET
(translation_unit "void FUN_0013cb10(void)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  undefined8 uVar4;\n  long lVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  char *local_30 [2];\n  \n  uVar4 = FUN_0013ca70();\n  bVar1 = DAT_0015f620;\n  if (*DAT_00168ae0 != ',') {\n    uVar4 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_0011e700(uVar4);\n    FUN_00120850();\n    return;\n  }\n  pcVar6 = DAT_00168ae0 + 1;\n  if (DAT_00168ae0[1] == ' ') {\n    pcVar6 = DAT_00168ae0 + 2;\n  }\n  DAT_00168ae0 = pcVar6;\n  DAT_0015f620 = DAT_0015f620 | 1;\n  cVar2 = FUN_00115b70(local_30);\n  DAT_0015f620 = bVar1;\n  iVar3 = FUN_00129b20(uVar4);\n  if (iVar3 == 0) {\n    lVar5 = FUN_0012cb30();\n    pcVar6 = local_30[0];\n    if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }\n    FUN_00120a70();\n    return;\n  }\n  uVar7 = FUN_00129e50(uVar4);\n  pcVar6 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_0013cbe9:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_0011e700(uVar4,local_30[0],uVar7);\n  FUN_00120850();\n  return;\n}\n\n" (function_definition "void FUN_0013cb10(void)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  undefined8 uVar4;\n  long lVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  char *local_30 [2];\n  \n  uVar4 = FUN_0013ca70();\n  bVar1 = DAT_0015f620;\n  if (*DAT_00168ae0 != ',') {\n    uVar4 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_0011e700(uVar4);\n    FUN_00120850();\n    return;\n  }\n  pcVar6 = DAT_00168ae0 + 1;\n  if (DAT_00168ae0[1] == ' ') {\n    pcVar6 = DAT_00168ae0 + 2;\n  }\n  DAT_00168ae0 = pcVar6;\n  DAT_0015f620 = DAT_0015f620 | 1;\n  cVar2 = FUN_00115b70(local_30);\n  DAT_0015f620 = bVar1;\n  iVar3 = FUN_00129b20(uVar4);\n  if (iVar3 == 0) {\n    lVar5 = FUN_0012cb30();\n    pcVar6 = local_30[0];\n    if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }\n    FUN_00120a70();\n    return;\n  }\n  uVar7 = FUN_00129e50(uVar4);\n  pcVar6 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_0013cbe9:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_0011e700(uVar4,local_30[0],uVar7);\n  FUN_00120850();\n  return;\n}" primitive_type (function_declarator "FUN_0013cb10(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  undefined8 uVar4;\n  long lVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  char *local_30 [2];\n  \n  uVar4 = FUN_0013ca70();\n  bVar1 = DAT_0015f620;\n  if (*DAT_00168ae0 != ',') {\n    uVar4 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_0011e700(uVar4);\n    FUN_00120850();\n    return;\n  }\n  pcVar6 = DAT_00168ae0 + 1;\n  if (DAT_00168ae0[1] == ' ') {\n    pcVar6 = DAT_00168ae0 + 2;\n  }\n  DAT_00168ae0 = pcVar6;\n  DAT_0015f620 = DAT_0015f620 | 1;\n  cVar2 = FUN_00115b70(local_30);\n  DAT_0015f620 = bVar1;\n  iVar3 = FUN_00129b20(uVar4);\n  if (iVar3 == 0) {\n    lVar5 = FUN_0012cb30();\n    pcVar6 = local_30[0];\n    if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }\n    FUN_00120a70();\n    return;\n  }\n  uVar7 = FUN_00129e50(uVar4);\n  pcVar6 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_0013cbe9:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_0011e700(uVar4,local_30[0],uVar7);\n  FUN_00120850();\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "char *local_30 [2];" primitive_type (pointer_declarator "*local_30 [2]" * (array_declarator "local_30 [2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = FUN_0013ca70();" (assignment_expression "uVar4 = FUN_0013ca70()" identifier = (call_expression "FUN_0013ca70()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar1 = DAT_0015f620;" (assignment_expression "bVar1 = DAT_0015f620" identifier = identifier) ;) (if_statement "if (*DAT_00168ae0 != ',') {\n    uVar4 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_0011e700(uVar4);\n    FUN_00120850();\n    return;\n  }" if (parenthesized_expression "(*DAT_00168ae0 != ',')" ( (binary_expression "*DAT_00168ae0 != ','" (pointer_expression "*DAT_00168ae0" * identifier) != (char_literal "','" ' character ')) )) (compound_statement "{\n    uVar4 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_0011e700(uVar4);\n    FUN_00120850();\n    return;\n  }" { (expression_statement "uVar4 = dcgettext(0,"expected comma after name in .symver",5);" (assignment_expression "uVar4 = dcgettext(0,"expected comma after name in .symver",5)" identifier = (call_expression "dcgettext(0,"expected comma after name in .symver",5)" identifier (argument_list "(0,"expected comma after name in .symver",5)" ( number_literal , (string_literal ""expected comma after name in .symver"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011e700(uVar4);" (call_expression "FUN_0011e700(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_00120850();" (call_expression "FUN_00120850()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar6 = DAT_00168ae0 + 1;" (assignment_expression "pcVar6 = DAT_00168ae0 + 1" identifier = (binary_expression "DAT_00168ae0 + 1" identifier + number_literal)) ;) (if_statement "if (DAT_00168ae0[1] == ' ') {\n    pcVar6 = DAT_00168ae0 + 2;\n  }" if (parenthesized_expression "(DAT_00168ae0[1] == ' ')" ( (binary_expression "DAT_00168ae0[1] == ' '" (subscript_expression "DAT_00168ae0[1]" identifier [ number_literal ]) == (char_literal "' '" ' character ')) )) (compound_statement "{\n    pcVar6 = DAT_00168ae0 + 2;\n  }" { (expression_statement "pcVar6 = DAT_00168ae0 + 2;" (assignment_expression "pcVar6 = DAT_00168ae0 + 2" identifier = (binary_expression "DAT_00168ae0 + 2" identifier + number_literal)) ;) })) (expression_statement "DAT_00168ae0 = pcVar6;" (assignment_expression "DAT_00168ae0 = pcVar6" identifier = identifier) ;) (expression_statement "DAT_0015f620 = DAT_0015f620 | 1;" (assignment_expression "DAT_0015f620 = DAT_0015f620 | 1" identifier = (binary_expression "DAT_0015f620 | 1" identifier | number_literal)) ;) (expression_statement "cVar2 = FUN_00115b70(local_30);" (assignment_expression "cVar2 = FUN_00115b70(local_30)" identifier = (call_expression "FUN_00115b70(local_30)" identifier (argument_list "(local_30)" ( identifier )))) ;) (expression_statement "DAT_0015f620 = bVar1;" (assignment_expression "DAT_0015f620 = bVar1" identifier = identifier) ;) (expression_statement "iVar3 = FUN_00129b20(uVar4);" (assignment_expression "iVar3 = FUN_00129b20(uVar4)" identifier = (call_expression "FUN_00129b20(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n    lVar5 = FUN_0012cb30();\n    pcVar6 = local_30[0];\n    if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }\n    FUN_00120a70();\n    return;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar5 = FUN_0012cb30();\n    pcVar6 = local_30[0];\n    if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }\n    FUN_00120a70();\n    return;\n  }" { (expression_statement "lVar5 = FUN_0012cb30();" (assignment_expression "lVar5 = FUN_0012cb30()" identifier = (call_expression "FUN_0012cb30()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar6 = local_30[0];" (assignment_expression "pcVar6 = local_30[0]" identifier = (subscript_expression "local_30[0]" identifier [ number_literal ])) ;) (if_statement "if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }" if (parenthesized_expression "(*(long *)(lVar5 + 0x10) == 0)" ( (binary_expression "*(long *)(lVar5 + 0x10) == 0" (pointer_expression "*(long *)(lVar5 + 0x10)" * (cast_expression "(long *)(lVar5 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }" { (expression_statement "lVar5 = FUN_0012cb30(uVar4);" (assignment_expression "lVar5 = FUN_0012cb30(uVar4)" identifier = (call_expression "FUN_0012cb30(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "uVar7 = xstrdup(local_30[0]);" (assignment_expression "uVar7 = xstrdup(local_30[0])" identifier = (call_expression "xstrdup(local_30[0])" identifier (argument_list "(local_30[0])" ( (subscript_expression "local_30[0]" identifier [ number_literal ]) )))) ;) (expression_statement "*(undefined8 *)(lVar5 + 0x10) = uVar7;" (assignment_expression "*(undefined8 *)(lVar5 + 0x10) = uVar7" (pointer_expression "*(undefined8 *)(lVar5 + 0x10)" * (cast_expression "(undefined8 *)(lVar5 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_001174e0((int)cVar2);" (call_expression "FUN_001174e0((int)cVar2)" identifier (argument_list "((int)cVar2)" ( (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "lVar5 = FUN_0012cb30(uVar4);" (assignment_expression "lVar5 = FUN_0012cb30(uVar4)" identifier = (call_expression "FUN_0012cb30(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);" (assignment_expression "pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40)" identifier = (call_expression "strchr(*(char **)(lVar5 + 0x10),0x40)" identifier (argument_list "(*(char **)(lVar5 + 0x10),0x40)" ( (pointer_expression "*(char **)(lVar5 + 0x10)" * (cast_expression "(char **)(lVar5 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }" { (expression_statement "uVar7 = FUN_00129e50(uVar4);" (assignment_expression "uVar7 = FUN_00129e50(uVar4)" identifier = (call_expression "FUN_00129e50(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "lVar5 = FUN_0012cb30(uVar4);" (assignment_expression "lVar5 = FUN_0012cb30(uVar4)" identifier = (call_expression "FUN_0012cb30(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "pcVar6 = "missing version name in `%s\' for symbol `%s\'";" (assignment_expression "pcVar6 = "missing version name in `%s\' for symbol `%s\'"" identifier = (string_literal ""missing version name in `%s\' for symbol `%s\'"" " string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "local_30[0] = *(char **)(lVar5 + 0x10);" (assignment_expression "local_30[0] = *(char **)(lVar5 + 0x10)" (subscript_expression "local_30[0]" identifier [ number_literal ]) = (pointer_expression "*(char **)(lVar5 + 0x10)" * (cast_expression "(char **)(lVar5 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0013cbe9;" goto statement_identifier ;) })) }) (else_clause "else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }" else (compound_statement "{\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }" { (expression_statement "lVar5 = FUN_0012cb30(uVar4);" (assignment_expression "lVar5 = FUN_0012cb30(uVar4)" identifier = (call_expression "FUN_0012cb30(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);" (assignment_expression "iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6)" identifier = (call_expression "strcmp(*(char **)(lVar5 + 0x10),pcVar6)" identifier (argument_list "(*(char **)(lVar5 + 0x10),pcVar6)" ( (pointer_expression "*(char **)(lVar5 + 0x10)" * (cast_expression "(char **)(lVar5 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }" { (expression_statement "uVar7 = FUN_00129e50(uVar4);" (assignment_expression "uVar7 = FUN_00129e50(uVar4)" identifier = (call_expression "FUN_00129e50(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "lVar5 = FUN_0012cb30(uVar4);" (assignment_expression "lVar5 = FUN_0012cb30(uVar4)" identifier = (call_expression "FUN_0012cb30(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "uVar4 = *(undefined8 *)(lVar5 + 0x10);" (assignment_expression "uVar4 = *(undefined8 *)(lVar5 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(lVar5 + 0x10)" * (cast_expression "(undefined8 *)(lVar5 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);" (assignment_expression "uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5)" identifier = (call_expression "dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5)" identifier (argument_list "(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5)" ( number_literal , (string_literal ""multiple versions [`%s\'|`%s\'] for symbol `%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);" (call_expression "FUN_0011e700(uVar8,local_30[0],uVar4,uVar7)" identifier (argument_list "(uVar8,local_30[0],uVar4,uVar7)" ( identifier , (subscript_expression "local_30[0]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "FUN_00120850();" (call_expression "FUN_00120850()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_001174e0((int)cVar2);" (call_expression "FUN_001174e0((int)cVar2)" identifier (argument_list "((int)cVar2)" ( (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))) (expression_statement "FUN_00120a70();" (call_expression "FUN_00120a70()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar7 = FUN_00129e50(uVar4);" (assignment_expression "uVar7 = FUN_00129e50(uVar4)" identifier = (call_expression "FUN_00129e50(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "pcVar6 = "`%s\' can\'t be versioned to common symbol \'%s\'";" (assignment_expression "pcVar6 = "`%s\' can\'t be versioned to common symbol \'%s\'"" identifier = (string_literal ""`%s\' can\'t be versioned to common symbol \'%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (labeled_statement "LAB_0013cbe9:\n  uVar4 = dcgettext(0,pcVar6,5);" statement_identifier : (expression_statement "uVar4 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar6,5)" identifier = (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0011e700(uVar4,local_30[0],uVar7);" (call_expression "FUN_0011e700(uVar4,local_30[0],uVar7)" identifier (argument_list "(uVar4,local_30[0],uVar7)" ( identifier , (subscript_expression "local_30[0]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "FUN_00120850();" (call_expression "FUN_00120850()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void obj_elf_symver(int ignore)\n\n{\n  byte bVar1;\n  char c;\n  int iVar2;\n  symbolS *s;\n  elf_obj_sy *peVar3;\n  char *pcVar4;\n  char *pcVar5;\n  char *format;\n  char *name;\n  \n  s = get_sym_from_input_line_and_check();\n  bVar1 = lex_type[0x40];\n  if (*input_line_pointer != ',') {\n    pcVar4 = (char *)dcgettext(0,"expected comma after name in .symver",5);\n    as_bad(pcVar4);\n    ignore_rest_of_line();\n    return;\n  }\n  pcVar4 = input_line_pointer + 1;\n  if (input_line_pointer[1] == ' ') {\n    pcVar4 = input_line_pointer + 2;\n  }\n  input_line_pointer = pcVar4;\n  lex_type[0x40] = lex_type[0x40] | 1;\n  c = get_symbol_name(&name);\n  lex_type[0x40] = bVar1;\n  iVar2 = S_IS_COMMON(s);\n  if (iVar2 == 0) {\n    peVar3 = symbol_get_obj(s);\n    pcVar4 = name;\n    if (peVar3->versioned_name == (char *)0x0) {\n      peVar3 = symbol_get_obj(s);\n      pcVar4 = (char *)xstrdup(name);\n      peVar3->versioned_name = pcVar4;\n      restore_line_pointer(c);\n      peVar3 = symbol_get_obj(s);\n      pcVar4 = strchr(peVar3->versioned_name,0x40);\n      if (pcVar4 == (char *)0x0) {\n        pcVar4 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      peVar3 = symbol_get_obj(s);\n      iVar2 = strcmp(peVar3->versioned_name,pcVar4);\n      if (iVar2 != 0) {\n        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = peVar3->versioned_name;\n        format = (char *)dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        as_bad(format,name,pcVar4,pcVar5);\n        ignore_rest_of_line();\n        return;\n      }\n      restore_line_pointer(c);\n    }\n    demand_empty_rest_of_line();\n    return;\n  }\n  pcVar4 = S_GET_NAME(s);\n  pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_0013cbe9:\n  pcVar5 = (char *)dcgettext(0,pcVar5,5);\n  as_bad(pcVar5,name,pcVar4);\n  ignore_rest_of_line();\n  return;\n}\n\n" (function_definition "void obj_elf_symver(int ignore)\n\n{\n  byte bVar1;\n  char c;\n  int iVar2;\n  symbolS *s;\n  elf_obj_sy *peVar3;\n  char *pcVar4;\n  char *pcVar5;\n  char *format;\n  char *name;\n  \n  s = get_sym_from_input_line_and_check();\n  bVar1 = lex_type[0x40];\n  if (*input_line_pointer != ',') {\n    pcVar4 = (char *)dcgettext(0,"expected comma after name in .symver",5);\n    as_bad(pcVar4);\n    ignore_rest_of_line();\n    return;\n  }\n  pcVar4 = input_line_pointer + 1;\n  if (input_line_pointer[1] == ' ') {\n    pcVar4 = input_line_pointer + 2;\n  }\n  input_line_pointer = pcVar4;\n  lex_type[0x40] = lex_type[0x40] | 1;\n  c = get_symbol_name(&name);\n  lex_type[0x40] = bVar1;\n  iVar2 = S_IS_COMMON(s);\n  if (iVar2 == 0) {\n    peVar3 = symbol_get_obj(s);\n    pcVar4 = name;\n    if (peVar3->versioned_name == (char *)0x0) {\n      peVar3 = symbol_get_obj(s);\n      pcVar4 = (char *)xstrdup(name);\n      peVar3->versioned_name = pcVar4;\n      restore_line_pointer(c);\n      peVar3 = symbol_get_obj(s);\n      pcVar4 = strchr(peVar3->versioned_name,0x40);\n      if (pcVar4 == (char *)0x0) {\n        pcVar4 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      peVar3 = symbol_get_obj(s);\n      iVar2 = strcmp(peVar3->versioned_name,pcVar4);\n      if (iVar2 != 0) {\n        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = peVar3->versioned_name;\n        format = (char *)dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        as_bad(format,name,pcVar4,pcVar5);\n        ignore_rest_of_line();\n        return;\n      }\n      restore_line_pointer(c);\n    }\n    demand_empty_rest_of_line();\n    return;\n  }\n  pcVar4 = S_GET_NAME(s);\n  pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_0013cbe9:\n  pcVar5 = (char *)dcgettext(0,pcVar5,5);\n  as_bad(pcVar5,name,pcVar4);\n  ignore_rest_of_line();\n  return;\n}" primitive_type (function_declarator "obj_elf_symver(int ignore)" identifier (parameter_list "(int ignore)" ( (parameter_declaration "int ignore" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  char c;\n  int iVar2;\n  symbolS *s;\n  elf_obj_sy *peVar3;\n  char *pcVar4;\n  char *pcVar5;\n  char *format;\n  char *name;\n  \n  s = get_sym_from_input_line_and_check();\n  bVar1 = lex_type[0x40];\n  if (*input_line_pointer != ',') {\n    pcVar4 = (char *)dcgettext(0,"expected comma after name in .symver",5);\n    as_bad(pcVar4);\n    ignore_rest_of_line();\n    return;\n  }\n  pcVar4 = input_line_pointer + 1;\n  if (input_line_pointer[1] == ' ') {\n    pcVar4 = input_line_pointer + 2;\n  }\n  input_line_pointer = pcVar4;\n  lex_type[0x40] = lex_type[0x40] | 1;\n  c = get_symbol_name(&name);\n  lex_type[0x40] = bVar1;\n  iVar2 = S_IS_COMMON(s);\n  if (iVar2 == 0) {\n    peVar3 = symbol_get_obj(s);\n    pcVar4 = name;\n    if (peVar3->versioned_name == (char *)0x0) {\n      peVar3 = symbol_get_obj(s);\n      pcVar4 = (char *)xstrdup(name);\n      peVar3->versioned_name = pcVar4;\n      restore_line_pointer(c);\n      peVar3 = symbol_get_obj(s);\n      pcVar4 = strchr(peVar3->versioned_name,0x40);\n      if (pcVar4 == (char *)0x0) {\n        pcVar4 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      peVar3 = symbol_get_obj(s);\n      iVar2 = strcmp(peVar3->versioned_name,pcVar4);\n      if (iVar2 != 0) {\n        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = peVar3->versioned_name;\n        format = (char *)dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        as_bad(format,name,pcVar4,pcVar5);\n        ignore_rest_of_line();\n        return;\n      }\n      restore_line_pointer(c);\n    }\n    demand_empty_rest_of_line();\n    return;\n  }\n  pcVar4 = S_GET_NAME(s);\n  pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_0013cbe9:\n  pcVar5 = (char *)dcgettext(0,pcVar5,5);\n  as_bad(pcVar5,name,pcVar4);\n  ignore_rest_of_line();\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char c;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "symbolS *s;" type_identifier (pointer_declarator "*s" * identifier) ;) (declaration "elf_obj_sy *peVar3;" type_identifier (pointer_declarator "*peVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "char *name;" primitive_type (pointer_declarator "*name" * identifier) ;) (expression_statement "s = get_sym_from_input_line_and_check();" (assignment_expression "s = get_sym_from_input_line_and_check()" identifier = (call_expression "get_sym_from_input_line_and_check()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar1 = lex_type[0x40];" (assignment_expression "bVar1 = lex_type[0x40]" identifier = (subscript_expression "lex_type[0x40]" identifier [ number_literal ])) ;) (if_statement "if (*input_line_pointer != ',') {\n    pcVar4 = (char *)dcgettext(0,"expected comma after name in .symver",5);\n    as_bad(pcVar4);\n    ignore_rest_of_line();\n    return;\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 = (char *)dcgettext(0,"expected comma after name in .symver",5);\n    as_bad(pcVar4);\n    ignore_rest_of_line();\n    return;\n  }" { (expression_statement "pcVar4 = (char *)dcgettext(0,"expected comma after name in .symver",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"expected comma after name in .symver",5)" identifier = (cast_expression "(char *)dcgettext(0,"expected comma after name in .symver",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"expected comma after name in .symver",5)" identifier (argument_list "(0,"expected comma after name in .symver",5)" ( number_literal , (string_literal ""expected comma after name in .symver"" " string_content ") , 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;" return ;) })) (expression_statement "pcVar4 = input_line_pointer + 1;" (assignment_expression "pcVar4 = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) (if_statement "if (input_line_pointer[1] == ' ') {\n    pcVar4 = input_line_pointer + 2;\n  }" if (parenthesized_expression "(input_line_pointer[1] == ' ')" ( (binary_expression "input_line_pointer[1] == ' '" (subscript_expression "input_line_pointer[1]" identifier [ number_literal ]) == (char_literal "' '" ' character ')) )) (compound_statement "{\n    pcVar4 = input_line_pointer + 2;\n  }" { (expression_statement "pcVar4 = input_line_pointer + 2;" (assignment_expression "pcVar4 = input_line_pointer + 2" identifier = (binary_expression "input_line_pointer + 2" identifier + number_literal)) ;) })) (expression_statement "input_line_pointer = pcVar4;" (assignment_expression "input_line_pointer = pcVar4" identifier = identifier) ;) (expression_statement "lex_type[0x40] = lex_type[0x40] | 1;" (assignment_expression "lex_type[0x40] = lex_type[0x40] | 1" (subscript_expression "lex_type[0x40]" identifier [ number_literal ]) = (binary_expression "lex_type[0x40] | 1" (subscript_expression "lex_type[0x40]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "c = get_symbol_name(&name);" (assignment_expression "c = get_symbol_name(&name)" identifier = (call_expression "get_symbol_name(&name)" identifier (argument_list "(&name)" ( (pointer_expression "&name" & identifier) )))) ;) (expression_statement "lex_type[0x40] = bVar1;" (assignment_expression "lex_type[0x40] = bVar1" (subscript_expression "lex_type[0x40]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar2 = S_IS_COMMON(s);" (assignment_expression "iVar2 = S_IS_COMMON(s)" identifier = (call_expression "S_IS_COMMON(s)" identifier (argument_list "(s)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n    peVar3 = symbol_get_obj(s);\n    pcVar4 = name;\n    if (peVar3->versioned_name == (char *)0x0) {\n      peVar3 = symbol_get_obj(s);\n      pcVar4 = (char *)xstrdup(name);\n      peVar3->versioned_name = pcVar4;\n      restore_line_pointer(c);\n      peVar3 = symbol_get_obj(s);\n      pcVar4 = strchr(peVar3->versioned_name,0x40);\n      if (pcVar4 == (char *)0x0) {\n        pcVar4 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      peVar3 = symbol_get_obj(s);\n      iVar2 = strcmp(peVar3->versioned_name,pcVar4);\n      if (iVar2 != 0) {\n        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = peVar3->versioned_name;\n        format = (char *)dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        as_bad(format,name,pcVar4,pcVar5);\n        ignore_rest_of_line();\n        return;\n      }\n      restore_line_pointer(c);\n    }\n    demand_empty_rest_of_line();\n    return;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    peVar3 = symbol_get_obj(s);\n    pcVar4 = name;\n    if (peVar3->versioned_name == (char *)0x0) {\n      peVar3 = symbol_get_obj(s);\n      pcVar4 = (char *)xstrdup(name);\n      peVar3->versioned_name = pcVar4;\n      restore_line_pointer(c);\n      peVar3 = symbol_get_obj(s);\n      pcVar4 = strchr(peVar3->versioned_name,0x40);\n      if (pcVar4 == (char *)0x0) {\n        pcVar4 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      peVar3 = symbol_get_obj(s);\n      iVar2 = strcmp(peVar3->versioned_name,pcVar4);\n      if (iVar2 != 0) {\n        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = peVar3->versioned_name;\n        format = (char *)dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        as_bad(format,name,pcVar4,pcVar5);\n        ignore_rest_of_line();\n        return;\n      }\n      restore_line_pointer(c);\n    }\n    demand_empty_rest_of_line();\n    return;\n  }" { (expression_statement "peVar3 = symbol_get_obj(s);" (assignment_expression "peVar3 = symbol_get_obj(s)" identifier = (call_expression "symbol_get_obj(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "pcVar4 = name;" (assignment_expression "pcVar4 = name" identifier = identifier) ;) (if_statement "if (peVar3->versioned_name == (char *)0x0) {\n      peVar3 = symbol_get_obj(s);\n      pcVar4 = (char *)xstrdup(name);\n      peVar3->versioned_name = pcVar4;\n      restore_line_pointer(c);\n      peVar3 = symbol_get_obj(s);\n      pcVar4 = strchr(peVar3->versioned_name,0x40);\n      if (pcVar4 == (char *)0x0) {\n        pcVar4 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      peVar3 = symbol_get_obj(s);\n      iVar2 = strcmp(peVar3->versioned_name,pcVar4);\n      if (iVar2 != 0) {\n        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = peVar3->versioned_name;\n        format = (char *)dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        as_bad(format,name,pcVar4,pcVar5);\n        ignore_rest_of_line();\n        return;\n      }\n      restore_line_pointer(c);\n    }" if (parenthesized_expression "(peVar3->versioned_name == (char *)0x0)" ( (binary_expression "peVar3->versioned_name == (char *)0x0" (field_expression "peVar3->versioned_name" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      peVar3 = symbol_get_obj(s);\n      pcVar4 = (char *)xstrdup(name);\n      peVar3->versioned_name = pcVar4;\n      restore_line_pointer(c);\n      peVar3 = symbol_get_obj(s);\n      pcVar4 = strchr(peVar3->versioned_name,0x40);\n      if (pcVar4 == (char *)0x0) {\n        pcVar4 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_0013cbe9;\n      }\n    }" { (expression_statement "peVar3 = symbol_get_obj(s);" (assignment_expression "peVar3 = symbol_get_obj(s)" identifier = (call_expression "symbol_get_obj(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "pcVar4 = (char *)xstrdup(name);" (assignment_expression "pcVar4 = (char *)xstrdup(name)" identifier = (cast_expression "(char *)xstrdup(name)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(name)" identifier (argument_list "(name)" ( identifier ))))) ;) (expression_statement "peVar3->versioned_name = pcVar4;" (assignment_expression "peVar3->versioned_name = pcVar4" (field_expression "peVar3->versioned_name" identifier -> field_identifier) = identifier) ;) (expression_statement "restore_line_pointer(c);" (call_expression "restore_line_pointer(c)" identifier (argument_list "(c)" ( identifier ))) ;) (expression_statement "peVar3 = symbol_get_obj(s);" (assignment_expression "peVar3 = symbol_get_obj(s)" identifier = (call_expression "symbol_get_obj(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "pcVar4 = strchr(peVar3->versioned_name,0x40);" (assignment_expression "pcVar4 = strchr(peVar3->versioned_name,0x40)" identifier = (call_expression "strchr(peVar3->versioned_name,0x40)" identifier (argument_list "(peVar3->versioned_name,0x40)" ( (field_expression "peVar3->versioned_name" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if (pcVar4 == (char *)0x0) {\n        pcVar4 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_0013cbe9;\n      }" if (parenthesized_expression "(pcVar4 == (char *)0x0)" ( (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar4 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_0013cbe9;\n      }" { (expression_statement "pcVar4 = S_GET_NAME(s);" (assignment_expression "pcVar4 = S_GET_NAME(s)" identifier = (call_expression "S_GET_NAME(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "peVar3 = symbol_get_obj(s);" (assignment_expression "peVar3 = symbol_get_obj(s)" identifier = (call_expression "symbol_get_obj(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "pcVar5 = "missing version name in `%s\' for symbol `%s\'";" (assignment_expression "pcVar5 = "missing version name in `%s\' for symbol `%s\'"" identifier = (string_literal ""missing version name in `%s\' for symbol `%s\'"" " string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "name = peVar3->versioned_name;" (assignment_expression "name = peVar3->versioned_name" identifier = (field_expression "peVar3->versioned_name" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0013cbe9;" goto statement_identifier ;) })) }) (else_clause "else {\n      peVar3 = symbol_get_obj(s);\n      iVar2 = strcmp(peVar3->versioned_name,pcVar4);\n      if (iVar2 != 0) {\n        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = peVar3->versioned_name;\n        format = (char *)dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        as_bad(format,name,pcVar4,pcVar5);\n        ignore_rest_of_line();\n        return;\n      }\n      restore_line_pointer(c);\n    }" else (compound_statement "{\n      peVar3 = symbol_get_obj(s);\n      iVar2 = strcmp(peVar3->versioned_name,pcVar4);\n      if (iVar2 != 0) {\n        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = peVar3->versioned_name;\n        format = (char *)dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        as_bad(format,name,pcVar4,pcVar5);\n        ignore_rest_of_line();\n        return;\n      }\n      restore_line_pointer(c);\n    }" { (expression_statement "peVar3 = symbol_get_obj(s);" (assignment_expression "peVar3 = symbol_get_obj(s)" identifier = (call_expression "symbol_get_obj(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "iVar2 = strcmp(peVar3->versioned_name,pcVar4);" (assignment_expression "iVar2 = strcmp(peVar3->versioned_name,pcVar4)" identifier = (call_expression "strcmp(peVar3->versioned_name,pcVar4)" identifier (argument_list "(peVar3->versioned_name,pcVar4)" ( (field_expression "peVar3->versioned_name" identifier -> field_identifier) , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = peVar3->versioned_name;\n        format = (char *)dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        as_bad(format,name,pcVar4,pcVar5);\n        ignore_rest_of_line();\n        return;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = peVar3->versioned_name;\n        format = (char *)dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        as_bad(format,name,pcVar4,pcVar5);\n        ignore_rest_of_line();\n        return;\n      }" { (expression_statement "pcVar5 = S_GET_NAME(s);" (assignment_expression "pcVar5 = S_GET_NAME(s)" identifier = (call_expression "S_GET_NAME(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "peVar3 = symbol_get_obj(s);" (assignment_expression "peVar3 = symbol_get_obj(s)" identifier = (call_expression "symbol_get_obj(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "pcVar4 = peVar3->versioned_name;" (assignment_expression "pcVar4 = peVar3->versioned_name" identifier = (field_expression "peVar3->versioned_name" identifier -> field_identifier)) ;) (expression_statement "format = (char *)dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);" (assignment_expression "format = (char *)dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5)" identifier = (cast_expression "(char *)dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5)" identifier (argument_list "(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5)" ( number_literal , (string_literal ""multiple versions [`%s\'|`%s\'] for symbol `%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "as_bad(format,name,pcVar4,pcVar5);" (call_expression "as_bad(format,name,pcVar4,pcVar5)" identifier (argument_list "(format,name,pcVar4,pcVar5)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "ignore_rest_of_line();" (call_expression "ignore_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "restore_line_pointer(c);" (call_expression "restore_line_pointer(c)" identifier (argument_list "(c)" ( identifier ))) ;) }))) (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar4 = S_GET_NAME(s);" (assignment_expression "pcVar4 = S_GET_NAME(s)" identifier = (call_expression "S_GET_NAME(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'";" (assignment_expression "pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'"" identifier = (string_literal ""`%s\' can\'t be versioned to common symbol \'%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (labeled_statement "LAB_0013cbe9:\n  pcVar5 = (char *)dcgettext(0,pcVar5,5);" statement_identifier : (expression_statement "pcVar5 = (char *)dcgettext(0,pcVar5,5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,pcVar5,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar5,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar5,5)" identifier (argument_list "(0,pcVar5,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "as_bad(pcVar5,name,pcVar4);" (call_expression "as_bad(pcVar5,name,pcVar4)" identifier (argument_list "(pcVar5,name,pcVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "ignore_rest_of_line();" (call_expression "ignore_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0013cb10(void)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  undefined8 uVar4;\n  long lVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  char *local_30 [2];\n  \n  uVar4 = FUN_0013ca70();\n  bVar1 = DAT_0015f620;\n  if (*DAT_00168ae0 != ',') {\n    uVar4 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_0011e700(uVar4);\n    FUN_00120850();\n    return;\n  }\n  pcVar6 = DAT_00168ae0 + 1;\n  if (DAT_00168ae0[1] == ' ') {\n    pcVar6 = DAT_00168ae0 + 2;\n  }\n  DAT_00168ae0 = pcVar6;\n  DAT_0015f620 = DAT_0015f620 | 1;\n  cVar2 = FUN_00115b70(local_30);\n  DAT_0015f620 = bVar1;\n  iVar3 = FUN_00129b20(uVar4);\n  if (iVar3 == 0) {\n    lVar5 = FUN_0012cb30();\n    pcVar6 = local_30[0];\n    if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }\n    FUN_00120a70();\n    return;\n  }\n  uVar7 = FUN_00129e50(uVar4);\n  pcVar6 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_0013cbe9:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_0011e700(uVar4,local_30[0],uVar7);\n  FUN_00120850();\n  return;\n}\n\n" (function_definition "void FUN_0013cb10(void)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  undefined8 uVar4;\n  long lVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  char *local_30 [2];\n  \n  uVar4 = FUN_0013ca70();\n  bVar1 = DAT_0015f620;\n  if (*DAT_00168ae0 != ',') {\n    uVar4 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_0011e700(uVar4);\n    FUN_00120850();\n    return;\n  }\n  pcVar6 = DAT_00168ae0 + 1;\n  if (DAT_00168ae0[1] == ' ') {\n    pcVar6 = DAT_00168ae0 + 2;\n  }\n  DAT_00168ae0 = pcVar6;\n  DAT_0015f620 = DAT_0015f620 | 1;\n  cVar2 = FUN_00115b70(local_30);\n  DAT_0015f620 = bVar1;\n  iVar3 = FUN_00129b20(uVar4);\n  if (iVar3 == 0) {\n    lVar5 = FUN_0012cb30();\n    pcVar6 = local_30[0];\n    if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }\n    FUN_00120a70();\n    return;\n  }\n  uVar7 = FUN_00129e50(uVar4);\n  pcVar6 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_0013cbe9:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_0011e700(uVar4,local_30[0],uVar7);\n  FUN_00120850();\n  return;\n}" primitive_type (function_declarator "FUN_0013cb10(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  undefined8 uVar4;\n  long lVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  char *local_30 [2];\n  \n  uVar4 = FUN_0013ca70();\n  bVar1 = DAT_0015f620;\n  if (*DAT_00168ae0 != ',') {\n    uVar4 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_0011e700(uVar4);\n    FUN_00120850();\n    return;\n  }\n  pcVar6 = DAT_00168ae0 + 1;\n  if (DAT_00168ae0[1] == ' ') {\n    pcVar6 = DAT_00168ae0 + 2;\n  }\n  DAT_00168ae0 = pcVar6;\n  DAT_0015f620 = DAT_0015f620 | 1;\n  cVar2 = FUN_00115b70(local_30);\n  DAT_0015f620 = bVar1;\n  iVar3 = FUN_00129b20(uVar4);\n  if (iVar3 == 0) {\n    lVar5 = FUN_0012cb30();\n    pcVar6 = local_30[0];\n    if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }\n    FUN_00120a70();\n    return;\n  }\n  uVar7 = FUN_00129e50(uVar4);\n  pcVar6 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_0013cbe9:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_0011e700(uVar4,local_30[0],uVar7);\n  FUN_00120850();\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "char *local_30 [2];" primitive_type (pointer_declarator "*local_30 [2]" * (array_declarator "local_30 [2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = FUN_0013ca70();" (assignment_expression "uVar4 = FUN_0013ca70()" identifier = (call_expression "FUN_0013ca70()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar1 = DAT_0015f620;" (assignment_expression "bVar1 = DAT_0015f620" identifier = identifier) ;) (if_statement "if (*DAT_00168ae0 != ',') {\n    uVar4 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_0011e700(uVar4);\n    FUN_00120850();\n    return;\n  }" if (parenthesized_expression "(*DAT_00168ae0 != ',')" ( (binary_expression "*DAT_00168ae0 != ','" (pointer_expression "*DAT_00168ae0" * identifier) != (char_literal "','" ' character ')) )) (compound_statement "{\n    uVar4 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_0011e700(uVar4);\n    FUN_00120850();\n    return;\n  }" { (expression_statement "uVar4 = dcgettext(0,"expected comma after name in .symver",5);" (assignment_expression "uVar4 = dcgettext(0,"expected comma after name in .symver",5)" identifier = (call_expression "dcgettext(0,"expected comma after name in .symver",5)" identifier (argument_list "(0,"expected comma after name in .symver",5)" ( number_literal , (string_literal ""expected comma after name in .symver"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011e700(uVar4);" (call_expression "FUN_0011e700(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_00120850();" (call_expression "FUN_00120850()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar6 = DAT_00168ae0 + 1;" (assignment_expression "pcVar6 = DAT_00168ae0 + 1" identifier = (binary_expression "DAT_00168ae0 + 1" identifier + number_literal)) ;) (if_statement "if (DAT_00168ae0[1] == ' ') {\n    pcVar6 = DAT_00168ae0 + 2;\n  }" if (parenthesized_expression "(DAT_00168ae0[1] == ' ')" ( (binary_expression "DAT_00168ae0[1] == ' '" (subscript_expression "DAT_00168ae0[1]" identifier [ number_literal ]) == (char_literal "' '" ' character ')) )) (compound_statement "{\n    pcVar6 = DAT_00168ae0 + 2;\n  }" { (expression_statement "pcVar6 = DAT_00168ae0 + 2;" (assignment_expression "pcVar6 = DAT_00168ae0 + 2" identifier = (binary_expression "DAT_00168ae0 + 2" identifier + number_literal)) ;) })) (expression_statement "DAT_00168ae0 = pcVar6;" (assignment_expression "DAT_00168ae0 = pcVar6" identifier = identifier) ;) (expression_statement "DAT_0015f620 = DAT_0015f620 | 1;" (assignment_expression "DAT_0015f620 = DAT_0015f620 | 1" identifier = (binary_expression "DAT_0015f620 | 1" identifier | number_literal)) ;) (expression_statement "cVar2 = FUN_00115b70(local_30);" (assignment_expression "cVar2 = FUN_00115b70(local_30)" identifier = (call_expression "FUN_00115b70(local_30)" identifier (argument_list "(local_30)" ( identifier )))) ;) (expression_statement "DAT_0015f620 = bVar1;" (assignment_expression "DAT_0015f620 = bVar1" identifier = identifier) ;) (expression_statement "iVar3 = FUN_00129b20(uVar4);" (assignment_expression "iVar3 = FUN_00129b20(uVar4)" identifier = (call_expression "FUN_00129b20(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n    lVar5 = FUN_0012cb30();\n    pcVar6 = local_30[0];\n    if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }\n    FUN_00120a70();\n    return;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar5 = FUN_0012cb30();\n    pcVar6 = local_30[0];\n    if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }\n    FUN_00120a70();\n    return;\n  }" { (expression_statement "lVar5 = FUN_0012cb30();" (assignment_expression "lVar5 = FUN_0012cb30()" identifier = (call_expression "FUN_0012cb30()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar6 = local_30[0];" (assignment_expression "pcVar6 = local_30[0]" identifier = (subscript_expression "local_30[0]" identifier [ number_literal ])) ;) (if_statement "if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }" if (parenthesized_expression "(*(long *)(lVar5 + 0x10) == 0)" ( (binary_expression "*(long *)(lVar5 + 0x10) == 0" (pointer_expression "*(long *)(lVar5 + 0x10)" * (cast_expression "(long *)(lVar5 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }" { (expression_statement "lVar5 = FUN_0012cb30(uVar4);" (assignment_expression "lVar5 = FUN_0012cb30(uVar4)" identifier = (call_expression "FUN_0012cb30(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "uVar7 = xstrdup(local_30[0]);" (assignment_expression "uVar7 = xstrdup(local_30[0])" identifier = (call_expression "xstrdup(local_30[0])" identifier (argument_list "(local_30[0])" ( (subscript_expression "local_30[0]" identifier [ number_literal ]) )))) ;) (expression_statement "*(undefined8 *)(lVar5 + 0x10) = uVar7;" (assignment_expression "*(undefined8 *)(lVar5 + 0x10) = uVar7" (pointer_expression "*(undefined8 *)(lVar5 + 0x10)" * (cast_expression "(undefined8 *)(lVar5 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_001174e0((int)cVar2);" (call_expression "FUN_001174e0((int)cVar2)" identifier (argument_list "((int)cVar2)" ( (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "lVar5 = FUN_0012cb30(uVar4);" (assignment_expression "lVar5 = FUN_0012cb30(uVar4)" identifier = (call_expression "FUN_0012cb30(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);" (assignment_expression "pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40)" identifier = (call_expression "strchr(*(char **)(lVar5 + 0x10),0x40)" identifier (argument_list "(*(char **)(lVar5 + 0x10),0x40)" ( (pointer_expression "*(char **)(lVar5 + 0x10)" * (cast_expression "(char **)(lVar5 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }" { (expression_statement "uVar7 = FUN_00129e50(uVar4);" (assignment_expression "uVar7 = FUN_00129e50(uVar4)" identifier = (call_expression "FUN_00129e50(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "lVar5 = FUN_0012cb30(uVar4);" (assignment_expression "lVar5 = FUN_0012cb30(uVar4)" identifier = (call_expression "FUN_0012cb30(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "pcVar6 = "missing version name in `%s\' for symbol `%s\'";" (assignment_expression "pcVar6 = "missing version name in `%s\' for symbol `%s\'"" identifier = (string_literal ""missing version name in `%s\' for symbol `%s\'"" " string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "local_30[0] = *(char **)(lVar5 + 0x10);" (assignment_expression "local_30[0] = *(char **)(lVar5 + 0x10)" (subscript_expression "local_30[0]" identifier [ number_literal ]) = (pointer_expression "*(char **)(lVar5 + 0x10)" * (cast_expression "(char **)(lVar5 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0013cbe9;" goto statement_identifier ;) })) }) (else_clause "else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }" else (compound_statement "{\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }" { (expression_statement "lVar5 = FUN_0012cb30(uVar4);" (assignment_expression "lVar5 = FUN_0012cb30(uVar4)" identifier = (call_expression "FUN_0012cb30(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);" (assignment_expression "iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6)" identifier = (call_expression "strcmp(*(char **)(lVar5 + 0x10),pcVar6)" identifier (argument_list "(*(char **)(lVar5 + 0x10),pcVar6)" ( (pointer_expression "*(char **)(lVar5 + 0x10)" * (cast_expression "(char **)(lVar5 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }" { (expression_statement "uVar7 = FUN_00129e50(uVar4);" (assignment_expression "uVar7 = FUN_00129e50(uVar4)" identifier = (call_expression "FUN_00129e50(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "lVar5 = FUN_0012cb30(uVar4);" (assignment_expression "lVar5 = FUN_0012cb30(uVar4)" identifier = (call_expression "FUN_0012cb30(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "uVar4 = *(undefined8 *)(lVar5 + 0x10);" (assignment_expression "uVar4 = *(undefined8 *)(lVar5 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(lVar5 + 0x10)" * (cast_expression "(undefined8 *)(lVar5 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);" (assignment_expression "uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5)" identifier = (call_expression "dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5)" identifier (argument_list "(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5)" ( number_literal , (string_literal ""multiple versions [`%s\'|`%s\'] for symbol `%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);" (call_expression "FUN_0011e700(uVar8,local_30[0],uVar4,uVar7)" identifier (argument_list "(uVar8,local_30[0],uVar4,uVar7)" ( identifier , (subscript_expression "local_30[0]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "FUN_00120850();" (call_expression "FUN_00120850()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_001174e0((int)cVar2);" (call_expression "FUN_001174e0((int)cVar2)" identifier (argument_list "((int)cVar2)" ( (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))) (expression_statement "FUN_00120a70();" (call_expression "FUN_00120a70()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar7 = FUN_00129e50(uVar4);" (assignment_expression "uVar7 = FUN_00129e50(uVar4)" identifier = (call_expression "FUN_00129e50(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "pcVar6 = "`%s\' can\'t be versioned to common symbol \'%s\'";" (assignment_expression "pcVar6 = "`%s\' can\'t be versioned to common symbol \'%s\'"" identifier = (string_literal ""`%s\' can\'t be versioned to common symbol \'%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (labeled_statement "LAB_0013cbe9:\n  uVar4 = dcgettext(0,pcVar6,5);" statement_identifier : (expression_statement "uVar4 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar6,5)" identifier = (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0011e700(uVar4,local_30[0],uVar7);" (call_expression "FUN_0011e700(uVar4,local_30[0],uVar7)" identifier (argument_list "(uVar4,local_30[0],uVar7)" ( identifier , (subscript_expression "local_30[0]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "FUN_00120850();" (call_expression "FUN_00120850()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (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 , (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0013cb10(void)\n\n{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  undefined8 uVar4;\n  long lVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  char *local_30 [2];\n  \n  uVar4 = FUN_0013ca70();\n  bVar1 = DAT_0015f620;\n  if (*DAT_00168ae0 != ',') {\n    uVar4 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_0011e700(uVar4);\n    FUN_00120850();\n    return;\n  }\n  pcVar6 = DAT_00168ae0 + 1;\n  if (DAT_00168ae0[1] == ' ') {\n    pcVar6 = DAT_00168ae0 + 2;\n  }\n  DAT_00168ae0 = pcVar6;\n  DAT_0015f620 = DAT_0015f620 | 1;\n  cVar2 = FUN_00115b70(local_30);\n  DAT_0015f620 = bVar1;\n  iVar3 = FUN_00129b20(uVar4);\n  if (iVar3 == 0) {\n    lVar5 = FUN_0012cb30();\n    pcVar6 = local_30[0];\n    if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }\n    FUN_00120a70();\n    return;\n  }\n  uVar7 = FUN_00129e50(uVar4);\n  pcVar6 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_0013cbe9:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_0011e700(uVar4,local_30[0],uVar7);\n  FUN_00120850();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0013cb10(void)" (identifier "FUN_0013cb10") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  int iVar3;\n  undefined8 uVar4;\n  long lVar5;\n  char *pcVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  char *local_30 [2];\n  \n  uVar4 = FUN_0013ca70();\n  bVar1 = DAT_0015f620;\n  if (*DAT_00168ae0 != ',') {\n    uVar4 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_0011e700(uVar4);\n    FUN_00120850();\n    return;\n  }\n  pcVar6 = DAT_00168ae0 + 1;\n  if (DAT_00168ae0[1] == ' ') {\n    pcVar6 = DAT_00168ae0 + 2;\n  }\n  DAT_00168ae0 = pcVar6;\n  DAT_0015f620 = DAT_0015f620 | 1;\n  cVar2 = FUN_00115b70(local_30);\n  DAT_0015f620 = bVar1;\n  iVar3 = FUN_00129b20(uVar4);\n  if (iVar3 == 0) {\n    lVar5 = FUN_0012cb30();\n    pcVar6 = local_30[0];\n    if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }\n    FUN_00120a70();\n    return;\n  }\n  uVar7 = FUN_00129e50(uVar4);\n  pcVar6 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_0013cbe9:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_0011e700(uVar4,local_30[0],uVar7);\n  FUN_00120850();\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "char *local_30 [2];" (primitive_type "char") (pointer_declarator "*local_30 [2]" (* "*") (array_declarator "local_30 [2]" (identifier "local_30") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar4 = FUN_0013ca70();" (assignment_expression "uVar4 = FUN_0013ca70()" (identifier "uVar4") (= "=") (call_expression "FUN_0013ca70()" (identifier "FUN_0013ca70") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar1 = DAT_0015f620;" (assignment_expression "bVar1 = DAT_0015f620" (identifier "bVar1") (= "=") (identifier "DAT_0015f620")) (; ";")) (if_statement "if (*DAT_00168ae0 != ',') {\n    uVar4 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_0011e700(uVar4);\n    FUN_00120850();\n    return;\n  }" (if "if") (parenthesized_expression "(*DAT_00168ae0 != ',')" (( "(") (binary_expression "*DAT_00168ae0 != ','" (pointer_expression "*DAT_00168ae0" (* "*") (identifier "DAT_00168ae0")) (!= "!=") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n    uVar4 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_0011e700(uVar4);\n    FUN_00120850();\n    return;\n  }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"expected comma after name in .symver",5);" (assignment_expression "uVar4 = dcgettext(0,"expected comma after name in .symver",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"expected comma after name in .symver",5)" (identifier "dcgettext") (argument_list "(0,"expected comma after name in .symver",5)" (( "(") (number_literal "0") (, ",") (string_literal ""expected comma after name in .symver"" (" """) (string_content "expected comma after name in .symver") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011e700(uVar4);" (call_expression "FUN_0011e700(uVar4)" (identifier "FUN_0011e700") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "FUN_00120850();" (call_expression "FUN_00120850()" (identifier "FUN_00120850") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar6 = DAT_00168ae0 + 1;" (assignment_expression "pcVar6 = DAT_00168ae0 + 1" (identifier "pcVar6") (= "=") (binary_expression "DAT_00168ae0 + 1" (identifier "DAT_00168ae0") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (DAT_00168ae0[1] == ' ') {\n    pcVar6 = DAT_00168ae0 + 2;\n  }" (if "if") (parenthesized_expression "(DAT_00168ae0[1] == ' ')" (( "(") (binary_expression "DAT_00168ae0[1] == ' '" (subscript_expression "DAT_00168ae0[1]" (identifier "DAT_00168ae0") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (compound_statement "{\n    pcVar6 = DAT_00168ae0 + 2;\n  }" ({ "{") (expression_statement "pcVar6 = DAT_00168ae0 + 2;" (assignment_expression "pcVar6 = DAT_00168ae0 + 2" (identifier "pcVar6") (= "=") (binary_expression "DAT_00168ae0 + 2" (identifier "DAT_00168ae0") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "DAT_00168ae0 = pcVar6;" (assignment_expression "DAT_00168ae0 = pcVar6" (identifier "DAT_00168ae0") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "DAT_0015f620 = DAT_0015f620 | 1;" (assignment_expression "DAT_0015f620 = DAT_0015f620 | 1" (identifier "DAT_0015f620") (= "=") (binary_expression "DAT_0015f620 | 1" (identifier "DAT_0015f620") (| "|") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = FUN_00115b70(local_30);" (assignment_expression "cVar2 = FUN_00115b70(local_30)" (identifier "cVar2") (= "=") (call_expression "FUN_00115b70(local_30)" (identifier "FUN_00115b70") (argument_list "(local_30)" (( "(") (identifier "local_30") () ")")))) (; ";")) (expression_statement "DAT_0015f620 = bVar1;" (assignment_expression "DAT_0015f620 = bVar1" (identifier "DAT_0015f620") (= "=") (identifier "bVar1")) (; ";")) (expression_statement "iVar3 = FUN_00129b20(uVar4);" (assignment_expression "iVar3 = FUN_00129b20(uVar4)" (identifier "iVar3") (= "=") (call_expression "FUN_00129b20(uVar4)" (identifier "FUN_00129b20") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n    lVar5 = FUN_0012cb30();\n    pcVar6 = local_30[0];\n    if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }\n    FUN_00120a70();\n    return;\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    lVar5 = FUN_0012cb30();\n    pcVar6 = local_30[0];\n    if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }\n    FUN_00120a70();\n    return;\n  }" ({ "{") (expression_statement "lVar5 = FUN_0012cb30();" (assignment_expression "lVar5 = FUN_0012cb30()" (identifier "lVar5") (= "=") (call_expression "FUN_0012cb30()" (identifier "FUN_0012cb30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar6 = local_30[0];" (assignment_expression "pcVar6 = local_30[0]" (identifier "pcVar6") (= "=") (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (*(long *)(lVar5 + 0x10) == 0) {\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }\n    else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }" (if "if") (parenthesized_expression "(*(long *)(lVar5 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(lVar5 + 0x10) == 0" (pointer_expression "*(long *)(lVar5 + 0x10)" (* "*") (cast_expression "(long *)(lVar5 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x10)" (( "(") (binary_expression "lVar5 + 0x10" (identifier "lVar5") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      lVar5 = FUN_0012cb30(uVar4);\n      uVar7 = xstrdup(local_30[0]);\n      *(undefined8 *)(lVar5 + 0x10) = uVar7;\n      FUN_001174e0((int)cVar2);\n      lVar5 = FUN_0012cb30(uVar4);\n      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);\n      if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }\n    }" ({ "{") (expression_statement "lVar5 = FUN_0012cb30(uVar4);" (assignment_expression "lVar5 = FUN_0012cb30(uVar4)" (identifier "lVar5") (= "=") (call_expression "FUN_0012cb30(uVar4)" (identifier "FUN_0012cb30") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "uVar7 = xstrdup(local_30[0]);" (assignment_expression "uVar7 = xstrdup(local_30[0])" (identifier "uVar7") (= "=") (call_expression "xstrdup(local_30[0])" (identifier "xstrdup") (argument_list "(local_30[0])" (( "(") (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) () ")")))) (; ";")) (expression_statement "*(undefined8 *)(lVar5 + 0x10) = uVar7;" (assignment_expression "*(undefined8 *)(lVar5 + 0x10) = uVar7" (pointer_expression "*(undefined8 *)(lVar5 + 0x10)" (* "*") (cast_expression "(undefined8 *)(lVar5 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x10)" (( "(") (binary_expression "lVar5 + 0x10" (identifier "lVar5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "FUN_001174e0((int)cVar2);" (call_expression "FUN_001174e0((int)cVar2)" (identifier "FUN_001174e0") (argument_list "((int)cVar2)" (( "(") (cast_expression "(int)cVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar2")) () ")"))) (; ";")) (expression_statement "lVar5 = FUN_0012cb30(uVar4);" (assignment_expression "lVar5 = FUN_0012cb30(uVar4)" (identifier "lVar5") (= "=") (call_expression "FUN_0012cb30(uVar4)" (identifier "FUN_0012cb30") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);" (assignment_expression "pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40)" (identifier "pcVar6") (= "=") (call_expression "strchr(*(char **)(lVar5 + 0x10),0x40)" (identifier "strchr") (argument_list "(*(char **)(lVar5 + 0x10),0x40)" (( "(") (pointer_expression "*(char **)(lVar5 + 0x10)" (* "*") (cast_expression "(char **)(lVar5 + 0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x10)" (( "(") (binary_expression "lVar5 + 0x10" (identifier "lVar5") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (number_literal "0x40") () ")")))) (; ";")) (if_statement "if (pcVar6 == (char *)0x0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }" (if "if") (parenthesized_expression "(pcVar6 == (char *)0x0)" (( "(") (binary_expression "pcVar6 == (char *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        pcVar6 = "missing version name in `%s\' for symbol `%s\'";\n        local_30[0] = *(char **)(lVar5 + 0x10);\n        goto LAB_0013cbe9;\n      }" ({ "{") (expression_statement "uVar7 = FUN_00129e50(uVar4);" (assignment_expression "uVar7 = FUN_00129e50(uVar4)" (identifier "uVar7") (= "=") (call_expression "FUN_00129e50(uVar4)" (identifier "FUN_00129e50") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "lVar5 = FUN_0012cb30(uVar4);" (assignment_expression "lVar5 = FUN_0012cb30(uVar4)" (identifier "lVar5") (= "=") (call_expression "FUN_0012cb30(uVar4)" (identifier "FUN_0012cb30") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "pcVar6 = "missing version name in `%s\' for symbol `%s\'";" (assignment_expression "pcVar6 = "missing version name in `%s\' for symbol `%s\'"" (identifier "pcVar6") (= "=") (string_literal ""missing version name in `%s\' for symbol `%s\'"" (" """) (string_content "missing version name in `%s") (escape_sequence "\'") (string_content " for symbol `%s") (escape_sequence "\'") (" """))) (; ";")) (expression_statement "local_30[0] = *(char **)(lVar5 + 0x10);" (assignment_expression "local_30[0] = *(char **)(lVar5 + 0x10)" (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "*(char **)(lVar5 + 0x10)" (* "*") (cast_expression "(char **)(lVar5 + 0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x10)" (( "(") (binary_expression "lVar5 + 0x10" (identifier "lVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (goto_statement "goto LAB_0013cbe9;" (goto "goto") (statement_identifier "LAB_0013cbe9") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }" (else "else") (compound_statement "{\n      lVar5 = FUN_0012cb30(uVar4);\n      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);\n      if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }\n      FUN_001174e0((int)cVar2);\n    }" ({ "{") (expression_statement "lVar5 = FUN_0012cb30(uVar4);" (assignment_expression "lVar5 = FUN_0012cb30(uVar4)" (identifier "lVar5") (= "=") (call_expression "FUN_0012cb30(uVar4)" (identifier "FUN_0012cb30") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);" (assignment_expression "iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6)" (identifier "iVar3") (= "=") (call_expression "strcmp(*(char **)(lVar5 + 0x10),pcVar6)" (identifier "strcmp") (argument_list "(*(char **)(lVar5 + 0x10),pcVar6)" (( "(") (pointer_expression "*(char **)(lVar5 + 0x10)" (* "*") (cast_expression "(char **)(lVar5 + 0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x10)" (( "(") (binary_expression "lVar5 + 0x10" (identifier "lVar5") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "pcVar6") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar7 = FUN_00129e50(uVar4);\n        lVar5 = FUN_0012cb30(uVar4);\n        uVar4 = *(undefined8 *)(lVar5 + 0x10);\n        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);\n        FUN_00120850();\n        return;\n      }" ({ "{") (expression_statement "uVar7 = FUN_00129e50(uVar4);" (assignment_expression "uVar7 = FUN_00129e50(uVar4)" (identifier "uVar7") (= "=") (call_expression "FUN_00129e50(uVar4)" (identifier "FUN_00129e50") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "lVar5 = FUN_0012cb30(uVar4);" (assignment_expression "lVar5 = FUN_0012cb30(uVar4)" (identifier "lVar5") (= "=") (call_expression "FUN_0012cb30(uVar4)" (identifier "FUN_0012cb30") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "uVar4 = *(undefined8 *)(lVar5 + 0x10);" (assignment_expression "uVar4 = *(undefined8 *)(lVar5 + 0x10)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined8 *)(lVar5 + 0x10)" (* "*") (cast_expression "(undefined8 *)(lVar5 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x10)" (( "(") (binary_expression "lVar5 + 0x10" (identifier "lVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);" (assignment_expression "uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5)" (identifier "uVar8") (= "=") (call_expression "dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5)" (identifier "dcgettext") (argument_list "(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5)" (( "(") (number_literal "0") (, ",") (string_literal ""multiple versions [`%s\'|`%s\'] for symbol `%s\'"" (" """) (string_content "multiple versions [`%s") (escape_sequence "\'") (string_content "|`%s") (escape_sequence "\'") (string_content "] for symbol `%s") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);" (call_expression "FUN_0011e700(uVar8,local_30[0],uVar4,uVar7)" (identifier "FUN_0011e700") (argument_list "(uVar8,local_30[0],uVar4,uVar7)" (( "(") (identifier "uVar8") (, ",") (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "uVar4") (, ",") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "FUN_00120850();" (call_expression "FUN_00120850()" (identifier "FUN_00120850") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_001174e0((int)cVar2);" (call_expression "FUN_001174e0((int)cVar2)" (identifier "FUN_001174e0") (argument_list "((int)cVar2)" (( "(") (cast_expression "(int)cVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar2")) () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_00120a70();" (call_expression "FUN_00120a70()" (identifier "FUN_00120a70") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar7 = FUN_00129e50(uVar4);" (assignment_expression "uVar7 = FUN_00129e50(uVar4)" (identifier "uVar7") (= "=") (call_expression "FUN_00129e50(uVar4)" (identifier "FUN_00129e50") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "pcVar6 = "`%s\' can\'t be versioned to common symbol \'%s\'";" (assignment_expression "pcVar6 = "`%s\' can\'t be versioned to common symbol \'%s\'"" (identifier "pcVar6") (= "=") (string_literal ""`%s\' can\'t be versioned to common symbol \'%s\'"" (" """) (string_content "`%s") (escape_sequence "\'") (string_content " can") (escape_sequence "\'") (string_content "t be versioned to common symbol ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (" """))) (; ";")) (labeled_statement "LAB_0013cbe9:\n  uVar4 = dcgettext(0,pcVar6,5);" (statement_identifier "LAB_0013cbe9") (: ":") (expression_statement "uVar4 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar6,5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,pcVar6,5)" (identifier "dcgettext") (argument_list "(0,pcVar6,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar6") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0011e700(uVar4,local_30[0],uVar7);" (call_expression "FUN_0011e700(uVar4,local_30[0],uVar7)" (identifier "FUN_0011e700") (argument_list "(uVar4,local_30[0],uVar7)" (( "(") (identifier "uVar4") (, ",") (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "FUN_00120850();" (call_expression "FUN_00120850()" (identifier "FUN_00120850") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(int ignore)

{
  type_1 bVar1;
  char c;
  int var_8;
  type_2 *s;
  type_3 *peVar3;
  char *var_13;
  char *pcVar5;
  char *format;
  char *name;
  
  s = var_1();
  bVar1 = lex_type[0x40];
  if (*var_5 != ',') {
    var_13 = (char *)var_2(0,"expected comma after name in .symver",5);
    var_3(var_13);
    var_4();
    return;
  }
  var_13 = var_5 + 1;
  if (var_5[1] == ' ') {
    var_13 = var_5 + 2;
  }
  var_5 = var_13;
  lex_type[0x40] = lex_type[0x40] | 1;
  c = var_6(&name);
  lex_type[0x40] = bVar1;
  var_8 = var_7(s);
  if (var_8 == 0) {
    peVar3 = var_9(s);
    var_13 = name;
    if (peVar3->versioned_name == (char *)0x0) {
      peVar3 = var_9(s);
      var_13 = (char *)var_10(name);
      peVar3->versioned_name = var_13;
      var_11(c);
      peVar3 = var_9(s);
      var_13 = var_12(peVar3->versioned_name,0x40);
      if (var_13 == (char *)0x0) {
        var_13 = var_14(s);
        peVar3 = var_9(s);
        pcVar5 = "missing version name in `%s\' for symbol `%s\'";
        name = peVar3->versioned_name;
        goto LAB_0013cbe9;
      }
    }
    else {
      peVar3 = var_9(s);
      var_8 = var_15(peVar3->versioned_name,var_13);
      if (var_8 != 0) {
        pcVar5 = var_14(s);
        peVar3 = var_9(s);
        var_13 = peVar3->versioned_name;
        format = (char *)var_2(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);
        var_3(format,name,var_13,pcVar5);
        var_4();
        return;
      }
      var_11(c);
    }
    var_16();
    return;
  }
  var_13 = var_14(s);
  pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'";
LAB_0013cbe9:
  pcVar5 = (char *)var_2(0,pcVar5,5);
  var_3(pcVar5,name,var_13);
  var_4();
  return;
}


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

void MASKED(void)

{
  byte bVar1;
  char cVar2;
  int iVar3;
  undefined8 uVar4;
  long lVar5;
  char *pcVar6;
  undefined8 uVar7;
  undefined8 uVar8;
  char *local_30 [2];
  
  uVar4 = FUN_0013ca70();
  bVar1 = DAT_0015f620;
  if (*DAT_00168ae0 != ',') {
    uVar4 = dcgettext(0,"expected comma after name in .symver",5);
    FUN_0011e700(uVar4);
    FUN_00120850();
    return;
  }
  pcVar6 = DAT_00168ae0 + 1;
  if (DAT_00168ae0[1] == ' ') {
    pcVar6 = DAT_00168ae0 + 2;
  }
  DAT_00168ae0 = pcVar6;
  DAT_0015f620 = DAT_0015f620 | 1;
  cVar2 = FUN_00115b70(local_30);
  DAT_0015f620 = bVar1;
  iVar3 = FUN_00129b20(uVar4);
  if (iVar3 == 0) {
    lVar5 = FUN_0012cb30();
    pcVar6 = local_30[0];
    if (*(long *)(lVar5 + 0x10) == 0) {
      lVar5 = FUN_0012cb30(uVar4);
      uVar7 = xstrdup(local_30[0]);
      *(undefined8 *)(lVar5 + 0x10) = uVar7;
      FUN_001174e0((int)cVar2);
      lVar5 = FUN_0012cb30(uVar4);
      pcVar6 = strchr(*(char **)(lVar5 + 0x10),0x40);
      if (pcVar6 == (char *)0x0) {
        uVar7 = FUN_00129e50(uVar4);
        lVar5 = FUN_0012cb30(uVar4);
        pcVar6 = "missing version name in `%s\' for symbol `%s\'";
        local_30[0] = *(char **)(lVar5 + 0x10);
        goto LAB_0013cbe9;
      }
    }
    else {
      lVar5 = FUN_0012cb30(uVar4);
      iVar3 = strcmp(*(char **)(lVar5 + 0x10),pcVar6);
      if (iVar3 != 0) {
        uVar7 = FUN_00129e50(uVar4);
        lVar5 = FUN_0012cb30(uVar4);
        uVar4 = *(undefined8 *)(lVar5 + 0x10);
        uVar8 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);
        FUN_0011e700(uVar8,local_30[0],uVar4,uVar7);
        FUN_00120850();
        return;
      }
      FUN_001174e0((int)cVar2);
    }
    FUN_00120a70();
    return;
  }
  uVar7 = FUN_00129e50(uVar4);
  pcVar6 = "`%s\' can\'t be versioned to common symbol \'%s\'";
LAB_0013cbe9:
  uVar4 = dcgettext(0,pcVar6,5);
  FUN_0011e700(uVar4,local_30[0],uVar7);
  FUN_00120850();
  return;
}

