
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void obj_elf_symver(int ignore)

{
  byte bVar1;
  char c;
  symbolS *s;
  int iVar2;
  elf_obj_sy *peVar3;
  char *pcVar4;
  char *pcVar5;
  char *format;
  char *name;
  undefined4 uStack_14;
  
  uStack_14 = 0x509d9;
  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) {
        pcVar5 = S_GET_NAME(s);
        peVar3 = symbol_get_obj(s);
        pcVar4 = "missing version name in `%s\' for symbol `%s\'";
        name = peVar3->versioned_name;
        goto LAB_00050aba;
      }
    }
    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;
  }
  pcVar5 = S_GET_NAME(s);
  pcVar4 = "`%s\' can\'t be versioned to common symbol \'%s\'";
LAB_00050aba:
  pcVar4 = (char *)dcgettext(0,pcVar4,5);
  as_bad(pcVar4,name,pcVar5);
  ignore_rest_of_line();
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_000509d0(void)

{
  byte bVar1;
  char cVar2;
  undefined4 uVar3;
  int iVar4;
  char *pcVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  char *local_20 [3];
  undefined4 uStack_14;
  
  uStack_14 = 0x509d9;
  uVar3 = FUN_00050930();
  bVar1 = DAT_00078440;
  if (*DAT_00081578 != ',') {
    uVar3 = dcgettext(0,"expected comma after name in .symver",5);
    FUN_00031620(uVar3);
    FUN_000339c0();
    return;
  }
  pcVar5 = DAT_00081578 + 1;
  if (DAT_00081578[1] == ' ') {
    pcVar5 = DAT_00081578 + 2;
  }
  DAT_00081578 = pcVar5;
  DAT_00078440 = DAT_00078440 | 1;
  cVar2 = FUN_000279b0(local_20);
  DAT_00078440 = bVar1;
  iVar4 = FUN_0003dd80(uVar3);
  if (iVar4 == 0) {
    iVar4 = FUN_00041590(uVar3);
    pcVar5 = local_20[0];
    if (*(int *)(iVar4 + 8) == 0) {
      iVar4 = FUN_00041590(uVar3);
      uVar6 = xstrdup(local_20[0]);
      *(undefined4 *)(iVar4 + 8) = uVar6;
      FUN_00029a60((int)cVar2);
      iVar4 = FUN_00041590(uVar3);
      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);
      if (pcVar5 == (char *)0x0) {
        uVar6 = FUN_0003e190(uVar3);
        iVar4 = FUN_00041590(uVar3);
        pcVar5 = "missing version name in `%s\' for symbol `%s\'";
        local_20[0] = *(char **)(iVar4 + 8);
        goto LAB_00050aba;
      }
    }
    else {
      iVar4 = FUN_00041590(uVar3);
      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);
      if (iVar4 != 0) {
        uVar6 = FUN_0003e190(uVar3);
        iVar4 = FUN_00041590(uVar3);
        uVar3 = *(undefined4 *)(iVar4 + 8);
        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);
        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);
        FUN_000339c0();
        return;
      }
      FUN_00029a60((int)cVar2);
    }
    FUN_00033c40();
    return;
  }
  uVar6 = FUN_0003e190(uVar3);
  pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'";
LAB_00050aba:
  uVar3 = dcgettext(0,pcVar5,5);
  FUN_00031620(uVar3,local_20[0],uVar6);
  FUN_000339c0();
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016070
ADD EBX,0x27627
SUB ESP,0x2c
CALL 0x00050930
MOV ESI,EAX
LEA EDX,[EBX + 0x9578]
MOV EAX,dword ptr [EDX]
CMP byte ptr [EAX],0x2c
JNZ 0x00050af0
LEA ECX,[EAX + 0x1]
MOV dword ptr [EDX],ECX
CMP byte ptr [EAX + 0x1],0x20
JZ 0x00050ae0
LEA EBP,[EBX + 0x400]
SUB ESP,0xc
MOVZX EDI,byte ptr [EBP + 0x40]
MOV EAX,EDI
OR EAX,0x1
MOV byte ptr [EBP + 0x40],AL
LEA EAX,[ESP + 0x28]
PUSH EAX
CALL 0x000279b0
MOV byte ptr [ESP + 0x1b],AL
MOV EAX,EDI
MOV byte ptr [EBP + 0x40],AL
MOV dword ptr [ESP],ESI
CALL 0x0003dd80
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00050aa0
SUB ESP,0xc
PUSH ESI
CALL 0x00041590
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x00050b20
MOV EBP,dword ptr [ESP + 0x1c]
SUB ESP,0xc
PUSH ESI
CALL 0x00041590
POP EDX
POP ECX
PUSH EBP
PUSH dword ptr [EAX + 0x8]
CALL 0x00014090
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00050b98
SUB ESP,0xc
MOVSX EDI,byte ptr [ESP + 0x17]
PUSH EDI
CALL 0x00029a60
ADD ESP,0x10
CALL 0x00033c40
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH ESI
CALL 0x0003e190
MOV ESI,dword ptr [ESP + 0x2c]
ADD ESP,0xc
PUSH 0x5
MOV EDI,EAX
LEA EAX,[EBX + 0xfffe63b4]
PUSH EAX
PUSH 0x0
CALL 0x000141e0
ADD ESP,0xc
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x00031620
CALL 0x000339c0
ADD ESP,0x10
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD EAX,0x2
MOV dword ptr [EDX],EAX
JMP 0x00050a09
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe64b0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
MOV dword ptr [ESP],EAX
CALL 0x00031620
CALL 0x000339c0
ADD ESP,0x10
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDX,dword ptr [ESP + 0x1c]
SUB ESP,0xc
MOV dword ptr [ESP + 0x18],EDX
PUSH ESI
CALL 0x00041590
MOV EDX,dword ptr [ESP + 0x1c]
MOV EBP,EAX
MOV dword ptr [ESP],EDX
CALL 0x00014320
MOVSX EDI,byte ptr [ESP + 0x1b]
MOV dword ptr [EBP + 0x8],EAX
MOV dword ptr [ESP],EDI
CALL 0x00029a60
MOV dword ptr [ESP],ESI
CALL 0x00041590
POP EDI
POP EBP
PUSH 0x40
PUSH dword ptr [EAX + 0x8]
CALL 0x00014470
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00050a8b
SUB ESP,0xc
PUSH ESI
CALL 0x0003e190
MOV dword ptr [ESP],ESI
MOV EDI,EAX
CALL 0x00041590
ADD ESP,0xc
MOV ESI,dword ptr [EAX + 0x8]
PUSH 0x5
LEA EAX,[EBX + 0xfffe64d8]
JMP 0x00050aba
SUB ESP,0xc
PUSH ESI
CALL 0x0003e190
MOV dword ptr [ESP],ESI
MOV EDI,EAX
CALL 0x00041590
MOV ESI,dword ptr [ESP + 0x2c]
ADD ESP,0xc
MOV EBP,dword ptr [EAX + 0x8]
LEA EAX,[EBX + 0xfffe6508]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
PUSH EDI
PUSH EBP
PUSH ESI
PUSH EAX
CALL 0x00031620
ADD ESP,0x20
CALL 0x000339c0
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000509d0(void)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x509d9;\n  uVar3 = FUN_00050930();\n  bVar1 = DAT_00078440;\n  if (*DAT_00081578 != ',') {\n    uVar3 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_00031620(uVar3);\n    FUN_000339c0();\n    return;\n  }\n  pcVar5 = DAT_00081578 + 1;\n  if (DAT_00081578[1] == ' ') {\n    pcVar5 = DAT_00081578 + 2;\n  }\n  DAT_00081578 = pcVar5;\n  DAT_00078440 = DAT_00078440 | 1;\n  cVar2 = FUN_000279b0(local_20);\n  DAT_00078440 = bVar1;\n  iVar4 = FUN_0003dd80(uVar3);\n  if (iVar4 == 0) {\n    iVar4 = FUN_00041590(uVar3);\n    pcVar5 = local_20[0];\n    if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }\n    FUN_00033c40();\n    return;\n  }\n  uVar6 = FUN_0003e190(uVar3);\n  pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_00050aba:\n  uVar3 = dcgettext(0,pcVar5,5);\n  FUN_00031620(uVar3,local_20[0],uVar6);\n  FUN_000339c0();\n  return;\n}\n\n" comment (function_definition "void FUN_000509d0(void)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x509d9;\n  uVar3 = FUN_00050930();\n  bVar1 = DAT_00078440;\n  if (*DAT_00081578 != ',') {\n    uVar3 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_00031620(uVar3);\n    FUN_000339c0();\n    return;\n  }\n  pcVar5 = DAT_00081578 + 1;\n  if (DAT_00081578[1] == ' ') {\n    pcVar5 = DAT_00081578 + 2;\n  }\n  DAT_00081578 = pcVar5;\n  DAT_00078440 = DAT_00078440 | 1;\n  cVar2 = FUN_000279b0(local_20);\n  DAT_00078440 = bVar1;\n  iVar4 = FUN_0003dd80(uVar3);\n  if (iVar4 == 0) {\n    iVar4 = FUN_00041590(uVar3);\n    pcVar5 = local_20[0];\n    if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }\n    FUN_00033c40();\n    return;\n  }\n  uVar6 = FUN_0003e190(uVar3);\n  pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_00050aba:\n  uVar3 = dcgettext(0,pcVar5,5);\n  FUN_00031620(uVar3,local_20[0],uVar6);\n  FUN_000339c0();\n  return;\n}" primitive_type (function_declarator "FUN_000509d0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x509d9;\n  uVar3 = FUN_00050930();\n  bVar1 = DAT_00078440;\n  if (*DAT_00081578 != ',') {\n    uVar3 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_00031620(uVar3);\n    FUN_000339c0();\n    return;\n  }\n  pcVar5 = DAT_00081578 + 1;\n  if (DAT_00081578[1] == ' ') {\n    pcVar5 = DAT_00081578 + 2;\n  }\n  DAT_00081578 = pcVar5;\n  DAT_00078440 = DAT_00078440 | 1;\n  cVar2 = FUN_000279b0(local_20);\n  DAT_00078440 = bVar1;\n  iVar4 = FUN_0003dd80(uVar3);\n  if (iVar4 == 0) {\n    iVar4 = FUN_00041590(uVar3);\n    pcVar5 = local_20[0];\n    if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }\n    FUN_00033c40();\n    return;\n  }\n  uVar6 = FUN_0003e190(uVar3);\n  pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_00050aba:\n  uVar3 = dcgettext(0,pcVar5,5);\n  FUN_00031620(uVar3,local_20[0],uVar6);\n  FUN_000339c0();\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char *local_20 [3];" primitive_type (pointer_declarator "*local_20 [3]" * (array_declarator "local_20 [3]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x509d9;" (assignment_expression "uStack_14 = 0x509d9" identifier = number_literal) ;) (expression_statement "uVar3 = FUN_00050930();" (assignment_expression "uVar3 = FUN_00050930()" identifier = (call_expression "FUN_00050930()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar1 = DAT_00078440;" (assignment_expression "bVar1 = DAT_00078440" identifier = identifier) ;) (if_statement "if (*DAT_00081578 != ',') {\n    uVar3 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_00031620(uVar3);\n    FUN_000339c0();\n    return;\n  }" if (parenthesized_expression "(*DAT_00081578 != ',')" ( (binary_expression "*DAT_00081578 != ','" (pointer_expression "*DAT_00081578" * identifier) != (char_literal "','" ' character ')) )) (compound_statement "{\n    uVar3 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_00031620(uVar3);\n    FUN_000339c0();\n    return;\n  }" { (expression_statement "uVar3 = dcgettext(0,"expected comma after name in .symver",5);" (assignment_expression "uVar3 = 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_00031620(uVar3);" (call_expression "FUN_00031620(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (expression_statement "FUN_000339c0();" (call_expression "FUN_000339c0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar5 = DAT_00081578 + 1;" (assignment_expression "pcVar5 = DAT_00081578 + 1" identifier = (binary_expression "DAT_00081578 + 1" identifier + number_literal)) ;) (if_statement "if (DAT_00081578[1] == ' ') {\n    pcVar5 = DAT_00081578 + 2;\n  }" if (parenthesized_expression "(DAT_00081578[1] == ' ')" ( (binary_expression "DAT_00081578[1] == ' '" (subscript_expression "DAT_00081578[1]" identifier [ number_literal ]) == (char_literal "' '" ' character ')) )) (compound_statement "{\n    pcVar5 = DAT_00081578 + 2;\n  }" { (expression_statement "pcVar5 = DAT_00081578 + 2;" (assignment_expression "pcVar5 = DAT_00081578 + 2" identifier = (binary_expression "DAT_00081578 + 2" identifier + number_literal)) ;) })) (expression_statement "DAT_00081578 = pcVar5;" (assignment_expression "DAT_00081578 = pcVar5" identifier = identifier) ;) (expression_statement "DAT_00078440 = DAT_00078440 | 1;" (assignment_expression "DAT_00078440 = DAT_00078440 | 1" identifier = (binary_expression "DAT_00078440 | 1" identifier | number_literal)) ;) (expression_statement "cVar2 = FUN_000279b0(local_20);" (assignment_expression "cVar2 = FUN_000279b0(local_20)" identifier = (call_expression "FUN_000279b0(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;) (expression_statement "DAT_00078440 = bVar1;" (assignment_expression "DAT_00078440 = bVar1" identifier = identifier) ;) (expression_statement "iVar4 = FUN_0003dd80(uVar3);" (assignment_expression "iVar4 = FUN_0003dd80(uVar3)" identifier = (call_expression "FUN_0003dd80(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n    iVar4 = FUN_00041590(uVar3);\n    pcVar5 = local_20[0];\n    if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }\n    FUN_00033c40();\n    return;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar4 = FUN_00041590(uVar3);\n    pcVar5 = local_20[0];\n    if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }\n    FUN_00033c40();\n    return;\n  }" { (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" identifier = (call_expression "FUN_00041590(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "pcVar5 = local_20[0];" (assignment_expression "pcVar5 = local_20[0]" identifier = (subscript_expression "local_20[0]" identifier [ number_literal ])) ;) (if_statement "if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 8) == 0)" ( (binary_expression "*(int *)(iVar4 + 8) == 0" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }" { (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" identifier = (call_expression "FUN_00041590(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "uVar6 = xstrdup(local_20[0]);" (assignment_expression "uVar6 = xstrdup(local_20[0])" identifier = (call_expression "xstrdup(local_20[0])" identifier (argument_list "(local_20[0])" ( (subscript_expression "local_20[0]" identifier [ number_literal ]) )))) ;) (expression_statement "*(undefined4 *)(iVar4 + 8) = uVar6;" (assignment_expression "*(undefined4 *)(iVar4 + 8) = uVar6" (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00029a60((int)cVar2);" (call_expression "FUN_00029a60((int)cVar2)" identifier (argument_list "((int)cVar2)" ( (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" identifier = (call_expression "FUN_00041590(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);" (assignment_expression "pcVar5 = strchr(*(char **)(iVar4 + 8),0x40)" identifier = (call_expression "strchr(*(char **)(iVar4 + 8),0x40)" identifier (argument_list "(*(char **)(iVar4 + 8),0x40)" ( (pointer_expression "*(char **)(iVar4 + 8)" * (cast_expression "(char **)(iVar4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }" { (expression_statement "uVar6 = FUN_0003e190(uVar3);" (assignment_expression "uVar6 = FUN_0003e190(uVar3)" identifier = (call_expression "FUN_0003e190(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" identifier = (call_expression "FUN_00041590(uVar3)" identifier (argument_list "(uVar3)" ( 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 "local_20[0] = *(char **)(iVar4 + 8);" (assignment_expression "local_20[0] = *(char **)(iVar4 + 8)" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (pointer_expression "*(char **)(iVar4 + 8)" * (cast_expression "(char **)(iVar4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00050aba;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }" else (compound_statement "{\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }" { (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" identifier = (call_expression "FUN_00041590(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);" (assignment_expression "iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5)" identifier = (call_expression "strcmp(*(char **)(iVar4 + 8),pcVar5)" identifier (argument_list "(*(char **)(iVar4 + 8),pcVar5)" ( (pointer_expression "*(char **)(iVar4 + 8)" * (cast_expression "(char **)(iVar4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }" { (expression_statement "uVar6 = FUN_0003e190(uVar3);" (assignment_expression "uVar6 = FUN_0003e190(uVar3)" identifier = (call_expression "FUN_0003e190(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" identifier = (call_expression "FUN_00041590(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar4 + 8);" (assignment_expression "uVar3 = *(undefined4 *)(iVar4 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);" (assignment_expression "uVar7 = 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_00031620(uVar7,local_20[0],uVar3,uVar6);" (call_expression "FUN_00031620(uVar7,local_20[0],uVar3,uVar6)" identifier (argument_list "(uVar7,local_20[0],uVar3,uVar6)" ( identifier , (subscript_expression "local_20[0]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "FUN_000339c0();" (call_expression "FUN_000339c0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_00029a60((int)cVar2);" (call_expression "FUN_00029a60((int)cVar2)" identifier (argument_list "((int)cVar2)" ( (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))) (expression_statement "FUN_00033c40();" (call_expression "FUN_00033c40()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar6 = FUN_0003e190(uVar3);" (assignment_expression "uVar6 = FUN_0003e190(uVar3)" identifier = (call_expression "FUN_0003e190(uVar3)" identifier (argument_list "(uVar3)" ( 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_00050aba:\n  uVar3 = dcgettext(0,pcVar5,5);" statement_identifier : (expression_statement "uVar3 = dcgettext(0,pcVar5,5);" (assignment_expression "uVar3 = dcgettext(0,pcVar5,5)" identifier = (call_expression "dcgettext(0,pcVar5,5)" identifier (argument_list "(0,pcVar5,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_00031620(uVar3,local_20[0],uVar6);" (call_expression "FUN_00031620(uVar3,local_20[0],uVar6)" identifier (argument_list "(uVar3,local_20[0],uVar6)" ( identifier , (subscript_expression "local_20[0]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "FUN_000339c0();" (call_expression "FUN_000339c0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid obj_elf_symver(int ignore)\n\n{\n  byte bVar1;\n  char c;\n  symbolS *s;\n  int iVar2;\n  elf_obj_sy *peVar3;\n  char *pcVar4;\n  char *pcVar5;\n  char *format;\n  char *name;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x509d9;\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        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_00050aba;\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  pcVar5 = S_GET_NAME(s);\n  pcVar4 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_00050aba:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  as_bad(pcVar4,name,pcVar5);\n  ignore_rest_of_line();\n  return;\n}\n\n" comment comment (function_definition "void obj_elf_symver(int ignore)\n\n{\n  byte bVar1;\n  char c;\n  symbolS *s;\n  int iVar2;\n  elf_obj_sy *peVar3;\n  char *pcVar4;\n  char *pcVar5;\n  char *format;\n  char *name;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x509d9;\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        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_00050aba;\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  pcVar5 = S_GET_NAME(s);\n  pcVar4 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_00050aba:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  as_bad(pcVar4,name,pcVar5);\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  symbolS *s;\n  int iVar2;\n  elf_obj_sy *peVar3;\n  char *pcVar4;\n  char *pcVar5;\n  char *format;\n  char *name;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x509d9;\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        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_00050aba;\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  pcVar5 = S_GET_NAME(s);\n  pcVar4 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_00050aba:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  as_bad(pcVar4,name,pcVar5);\n  ignore_rest_of_line();\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char c;" primitive_type identifier ;) (declaration "symbolS *s;" type_identifier (pointer_declarator "*s" * identifier) ;) (declaration "int iVar2;" primitive_type 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) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x509d9;" (assignment_expression "uStack_14 = 0x509d9" identifier = number_literal) ;) (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        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_00050aba;\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        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_00050aba;\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        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_00050aba;\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        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_00050aba;\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        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_00050aba;\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        pcVar5 = S_GET_NAME(s);\n        peVar3 = symbol_get_obj(s);\n        pcVar4 = "missing version name in `%s\' for symbol `%s\'";\n        name = peVar3->versioned_name;\n        goto LAB_00050aba;\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 = "missing version name in `%s\' for symbol `%s\'";" (assignment_expression "pcVar4 = "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_00050aba;" 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 "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 "pcVar4 = "`%s\' can\'t be versioned to common symbol \'%s\'";" (assignment_expression "pcVar4 = "`%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_00050aba:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);" statement_identifier : (expression_statement "pcVar4 = (char *)dcgettext(0,pcVar4,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,pcVar4,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar4,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar4,5)" identifier (argument_list "(0,pcVar4,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "as_bad(pcVar4,name,pcVar5);" (call_expression "as_bad(pcVar4,name,pcVar5)" identifier (argument_list "(pcVar4,name,pcVar5)" ( 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_000509d0(void)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x509d9;\n  uVar3 = FUN_00050930();\n  bVar1 = DAT_00078440;\n  if (*DAT_00081578 != ',') {\n    uVar3 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_00031620(uVar3);\n    FUN_000339c0();\n    return;\n  }\n  pcVar5 = DAT_00081578 + 1;\n  if (DAT_00081578[1] == ' ') {\n    pcVar5 = DAT_00081578 + 2;\n  }\n  DAT_00081578 = pcVar5;\n  DAT_00078440 = DAT_00078440 | 1;\n  cVar2 = FUN_000279b0(local_20);\n  DAT_00078440 = bVar1;\n  iVar4 = FUN_0003dd80(uVar3);\n  if (iVar4 == 0) {\n    iVar4 = FUN_00041590(uVar3);\n    pcVar5 = local_20[0];\n    if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }\n    FUN_00033c40();\n    return;\n  }\n  uVar6 = FUN_0003e190(uVar3);\n  pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_00050aba:\n  uVar3 = dcgettext(0,pcVar5,5);\n  FUN_00031620(uVar3,local_20[0],uVar6);\n  FUN_000339c0();\n  return;\n}\n\n" (function_definition "void FUN_000509d0(void)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x509d9;\n  uVar3 = FUN_00050930();\n  bVar1 = DAT_00078440;\n  if (*DAT_00081578 != ',') {\n    uVar3 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_00031620(uVar3);\n    FUN_000339c0();\n    return;\n  }\n  pcVar5 = DAT_00081578 + 1;\n  if (DAT_00081578[1] == ' ') {\n    pcVar5 = DAT_00081578 + 2;\n  }\n  DAT_00081578 = pcVar5;\n  DAT_00078440 = DAT_00078440 | 1;\n  cVar2 = FUN_000279b0(local_20);\n  DAT_00078440 = bVar1;\n  iVar4 = FUN_0003dd80(uVar3);\n  if (iVar4 == 0) {\n    iVar4 = FUN_00041590(uVar3);\n    pcVar5 = local_20[0];\n    if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }\n    FUN_00033c40();\n    return;\n  }\n  uVar6 = FUN_0003e190(uVar3);\n  pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_00050aba:\n  uVar3 = dcgettext(0,pcVar5,5);\n  FUN_00031620(uVar3,local_20[0],uVar6);\n  FUN_000339c0();\n  return;\n}" primitive_type (function_declarator "FUN_000509d0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x509d9;\n  uVar3 = FUN_00050930();\n  bVar1 = DAT_00078440;\n  if (*DAT_00081578 != ',') {\n    uVar3 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_00031620(uVar3);\n    FUN_000339c0();\n    return;\n  }\n  pcVar5 = DAT_00081578 + 1;\n  if (DAT_00081578[1] == ' ') {\n    pcVar5 = DAT_00081578 + 2;\n  }\n  DAT_00081578 = pcVar5;\n  DAT_00078440 = DAT_00078440 | 1;\n  cVar2 = FUN_000279b0(local_20);\n  DAT_00078440 = bVar1;\n  iVar4 = FUN_0003dd80(uVar3);\n  if (iVar4 == 0) {\n    iVar4 = FUN_00041590(uVar3);\n    pcVar5 = local_20[0];\n    if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }\n    FUN_00033c40();\n    return;\n  }\n  uVar6 = FUN_0003e190(uVar3);\n  pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_00050aba:\n  uVar3 = dcgettext(0,pcVar5,5);\n  FUN_00031620(uVar3,local_20[0],uVar6);\n  FUN_000339c0();\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char *local_20 [3];" primitive_type (pointer_declarator "*local_20 [3]" * (array_declarator "local_20 [3]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x509d9;" (assignment_expression "uStack_14 = 0x509d9" identifier = number_literal) ;) (expression_statement "uVar3 = FUN_00050930();" (assignment_expression "uVar3 = FUN_00050930()" identifier = (call_expression "FUN_00050930()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar1 = DAT_00078440;" (assignment_expression "bVar1 = DAT_00078440" identifier = identifier) ;) (if_statement "if (*DAT_00081578 != ',') {\n    uVar3 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_00031620(uVar3);\n    FUN_000339c0();\n    return;\n  }" if (parenthesized_expression "(*DAT_00081578 != ',')" ( (binary_expression "*DAT_00081578 != ','" (pointer_expression "*DAT_00081578" * identifier) != (char_literal "','" ' character ')) )) (compound_statement "{\n    uVar3 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_00031620(uVar3);\n    FUN_000339c0();\n    return;\n  }" { (expression_statement "uVar3 = dcgettext(0,"expected comma after name in .symver",5);" (assignment_expression "uVar3 = 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_00031620(uVar3);" (call_expression "FUN_00031620(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (expression_statement "FUN_000339c0();" (call_expression "FUN_000339c0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar5 = DAT_00081578 + 1;" (assignment_expression "pcVar5 = DAT_00081578 + 1" identifier = (binary_expression "DAT_00081578 + 1" identifier + number_literal)) ;) (if_statement "if (DAT_00081578[1] == ' ') {\n    pcVar5 = DAT_00081578 + 2;\n  }" if (parenthesized_expression "(DAT_00081578[1] == ' ')" ( (binary_expression "DAT_00081578[1] == ' '" (subscript_expression "DAT_00081578[1]" identifier [ number_literal ]) == (char_literal "' '" ' character ')) )) (compound_statement "{\n    pcVar5 = DAT_00081578 + 2;\n  }" { (expression_statement "pcVar5 = DAT_00081578 + 2;" (assignment_expression "pcVar5 = DAT_00081578 + 2" identifier = (binary_expression "DAT_00081578 + 2" identifier + number_literal)) ;) })) (expression_statement "DAT_00081578 = pcVar5;" (assignment_expression "DAT_00081578 = pcVar5" identifier = identifier) ;) (expression_statement "DAT_00078440 = DAT_00078440 | 1;" (assignment_expression "DAT_00078440 = DAT_00078440 | 1" identifier = (binary_expression "DAT_00078440 | 1" identifier | number_literal)) ;) (expression_statement "cVar2 = FUN_000279b0(local_20);" (assignment_expression "cVar2 = FUN_000279b0(local_20)" identifier = (call_expression "FUN_000279b0(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;) (expression_statement "DAT_00078440 = bVar1;" (assignment_expression "DAT_00078440 = bVar1" identifier = identifier) ;) (expression_statement "iVar4 = FUN_0003dd80(uVar3);" (assignment_expression "iVar4 = FUN_0003dd80(uVar3)" identifier = (call_expression "FUN_0003dd80(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n    iVar4 = FUN_00041590(uVar3);\n    pcVar5 = local_20[0];\n    if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }\n    FUN_00033c40();\n    return;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar4 = FUN_00041590(uVar3);\n    pcVar5 = local_20[0];\n    if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }\n    FUN_00033c40();\n    return;\n  }" { (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" identifier = (call_expression "FUN_00041590(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "pcVar5 = local_20[0];" (assignment_expression "pcVar5 = local_20[0]" identifier = (subscript_expression "local_20[0]" identifier [ number_literal ])) ;) (if_statement "if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 8) == 0)" ( (binary_expression "*(int *)(iVar4 + 8) == 0" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }" { (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" identifier = (call_expression "FUN_00041590(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "uVar6 = xstrdup(local_20[0]);" (assignment_expression "uVar6 = xstrdup(local_20[0])" identifier = (call_expression "xstrdup(local_20[0])" identifier (argument_list "(local_20[0])" ( (subscript_expression "local_20[0]" identifier [ number_literal ]) )))) ;) (expression_statement "*(undefined4 *)(iVar4 + 8) = uVar6;" (assignment_expression "*(undefined4 *)(iVar4 + 8) = uVar6" (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00029a60((int)cVar2);" (call_expression "FUN_00029a60((int)cVar2)" identifier (argument_list "((int)cVar2)" ( (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" identifier = (call_expression "FUN_00041590(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);" (assignment_expression "pcVar5 = strchr(*(char **)(iVar4 + 8),0x40)" identifier = (call_expression "strchr(*(char **)(iVar4 + 8),0x40)" identifier (argument_list "(*(char **)(iVar4 + 8),0x40)" ( (pointer_expression "*(char **)(iVar4 + 8)" * (cast_expression "(char **)(iVar4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }" { (expression_statement "uVar6 = FUN_0003e190(uVar3);" (assignment_expression "uVar6 = FUN_0003e190(uVar3)" identifier = (call_expression "FUN_0003e190(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" identifier = (call_expression "FUN_00041590(uVar3)" identifier (argument_list "(uVar3)" ( 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 "local_20[0] = *(char **)(iVar4 + 8);" (assignment_expression "local_20[0] = *(char **)(iVar4 + 8)" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (pointer_expression "*(char **)(iVar4 + 8)" * (cast_expression "(char **)(iVar4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00050aba;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }" else (compound_statement "{\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }" { (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" identifier = (call_expression "FUN_00041590(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);" (assignment_expression "iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5)" identifier = (call_expression "strcmp(*(char **)(iVar4 + 8),pcVar5)" identifier (argument_list "(*(char **)(iVar4 + 8),pcVar5)" ( (pointer_expression "*(char **)(iVar4 + 8)" * (cast_expression "(char **)(iVar4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }" { (expression_statement "uVar6 = FUN_0003e190(uVar3);" (assignment_expression "uVar6 = FUN_0003e190(uVar3)" identifier = (call_expression "FUN_0003e190(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" identifier = (call_expression "FUN_00041590(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar4 + 8);" (assignment_expression "uVar3 = *(undefined4 *)(iVar4 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);" (assignment_expression "uVar7 = 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_00031620(uVar7,local_20[0],uVar3,uVar6);" (call_expression "FUN_00031620(uVar7,local_20[0],uVar3,uVar6)" identifier (argument_list "(uVar7,local_20[0],uVar3,uVar6)" ( identifier , (subscript_expression "local_20[0]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "FUN_000339c0();" (call_expression "FUN_000339c0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_00029a60((int)cVar2);" (call_expression "FUN_00029a60((int)cVar2)" identifier (argument_list "((int)cVar2)" ( (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))) (expression_statement "FUN_00033c40();" (call_expression "FUN_00033c40()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar6 = FUN_0003e190(uVar3);" (assignment_expression "uVar6 = FUN_0003e190(uVar3)" identifier = (call_expression "FUN_0003e190(uVar3)" identifier (argument_list "(uVar3)" ( 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_00050aba:\n  uVar3 = dcgettext(0,pcVar5,5);" statement_identifier : (expression_statement "uVar3 = dcgettext(0,pcVar5,5);" (assignment_expression "uVar3 = dcgettext(0,pcVar5,5)" identifier = (call_expression "dcgettext(0,pcVar5,5)" identifier (argument_list "(0,pcVar5,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_00031620(uVar3,local_20[0],uVar6);" (call_expression "FUN_00031620(uVar3,local_20[0],uVar6)" identifier (argument_list "(uVar3,local_20[0],uVar6)" ( identifier , (subscript_expression "local_20[0]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "FUN_000339c0();" (call_expression "FUN_000339c0()" 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 TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression 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 ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (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_000509d0(void)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x509d9;\n  uVar3 = FUN_00050930();\n  bVar1 = DAT_00078440;\n  if (*DAT_00081578 != ',') {\n    uVar3 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_00031620(uVar3);\n    FUN_000339c0();\n    return;\n  }\n  pcVar5 = DAT_00081578 + 1;\n  if (DAT_00081578[1] == ' ') {\n    pcVar5 = DAT_00081578 + 2;\n  }\n  DAT_00081578 = pcVar5;\n  DAT_00078440 = DAT_00078440 | 1;\n  cVar2 = FUN_000279b0(local_20);\n  DAT_00078440 = bVar1;\n  iVar4 = FUN_0003dd80(uVar3);\n  if (iVar4 == 0) {\n    iVar4 = FUN_00041590(uVar3);\n    pcVar5 = local_20[0];\n    if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }\n    FUN_00033c40();\n    return;\n  }\n  uVar6 = FUN_0003e190(uVar3);\n  pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_00050aba:\n  uVar3 = dcgettext(0,pcVar5,5);\n  FUN_00031620(uVar3,local_20[0],uVar6);\n  FUN_000339c0();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000509d0(void)" (identifier "FUN_000509d0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x509d9;\n  uVar3 = FUN_00050930();\n  bVar1 = DAT_00078440;\n  if (*DAT_00081578 != ',') {\n    uVar3 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_00031620(uVar3);\n    FUN_000339c0();\n    return;\n  }\n  pcVar5 = DAT_00081578 + 1;\n  if (DAT_00081578[1] == ' ') {\n    pcVar5 = DAT_00081578 + 2;\n  }\n  DAT_00081578 = pcVar5;\n  DAT_00078440 = DAT_00078440 | 1;\n  cVar2 = FUN_000279b0(local_20);\n  DAT_00078440 = bVar1;\n  iVar4 = FUN_0003dd80(uVar3);\n  if (iVar4 == 0) {\n    iVar4 = FUN_00041590(uVar3);\n    pcVar5 = local_20[0];\n    if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }\n    FUN_00033c40();\n    return;\n  }\n  uVar6 = FUN_0003e190(uVar3);\n  pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'";\nLAB_00050aba:\n  uVar3 = dcgettext(0,pcVar5,5);\n  FUN_00031620(uVar3,local_20[0],uVar6);\n  FUN_000339c0();\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "char *local_20 [3];" (primitive_type "char") (pointer_declarator "*local_20 [3]" (* "*") (array_declarator "local_20 [3]" (identifier "local_20") ([ "[") (number_literal "3") (] "]"))) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x509d9;" (assignment_expression "uStack_14 = 0x509d9" (identifier "uStack_14") (= "=") (number_literal "0x509d9")) (; ";")) (expression_statement "uVar3 = FUN_00050930();" (assignment_expression "uVar3 = FUN_00050930()" (identifier "uVar3") (= "=") (call_expression "FUN_00050930()" (identifier "FUN_00050930") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar1 = DAT_00078440;" (assignment_expression "bVar1 = DAT_00078440" (identifier "bVar1") (= "=") (identifier "DAT_00078440")) (; ";")) (if_statement "if (*DAT_00081578 != ',') {\n    uVar3 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_00031620(uVar3);\n    FUN_000339c0();\n    return;\n  }" (if "if") (parenthesized_expression "(*DAT_00081578 != ',')" (( "(") (binary_expression "*DAT_00081578 != ','" (pointer_expression "*DAT_00081578" (* "*") (identifier "DAT_00081578")) (!= "!=") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n    uVar3 = dcgettext(0,"expected comma after name in .symver",5);\n    FUN_00031620(uVar3);\n    FUN_000339c0();\n    return;\n  }" ({ "{") (expression_statement "uVar3 = dcgettext(0,"expected comma after name in .symver",5);" (assignment_expression "uVar3 = dcgettext(0,"expected comma after name in .symver",5)" (identifier "uVar3") (= "=") (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_00031620(uVar3);" (call_expression "FUN_00031620(uVar3)" (identifier "FUN_00031620") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "FUN_000339c0();" (call_expression "FUN_000339c0()" (identifier "FUN_000339c0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar5 = DAT_00081578 + 1;" (assignment_expression "pcVar5 = DAT_00081578 + 1" (identifier "pcVar5") (= "=") (binary_expression "DAT_00081578 + 1" (identifier "DAT_00081578") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (DAT_00081578[1] == ' ') {\n    pcVar5 = DAT_00081578 + 2;\n  }" (if "if") (parenthesized_expression "(DAT_00081578[1] == ' ')" (( "(") (binary_expression "DAT_00081578[1] == ' '" (subscript_expression "DAT_00081578[1]" (identifier "DAT_00081578") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (compound_statement "{\n    pcVar5 = DAT_00081578 + 2;\n  }" ({ "{") (expression_statement "pcVar5 = DAT_00081578 + 2;" (assignment_expression "pcVar5 = DAT_00081578 + 2" (identifier "pcVar5") (= "=") (binary_expression "DAT_00081578 + 2" (identifier "DAT_00081578") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "DAT_00081578 = pcVar5;" (assignment_expression "DAT_00081578 = pcVar5" (identifier "DAT_00081578") (= "=") (identifier "pcVar5")) (; ";")) (expression_statement "DAT_00078440 = DAT_00078440 | 1;" (assignment_expression "DAT_00078440 = DAT_00078440 | 1" (identifier "DAT_00078440") (= "=") (binary_expression "DAT_00078440 | 1" (identifier "DAT_00078440") (| "|") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = FUN_000279b0(local_20);" (assignment_expression "cVar2 = FUN_000279b0(local_20)" (identifier "cVar2") (= "=") (call_expression "FUN_000279b0(local_20)" (identifier "FUN_000279b0") (argument_list "(local_20)" (( "(") (identifier "local_20") () ")")))) (; ";")) (expression_statement "DAT_00078440 = bVar1;" (assignment_expression "DAT_00078440 = bVar1" (identifier "DAT_00078440") (= "=") (identifier "bVar1")) (; ";")) (expression_statement "iVar4 = FUN_0003dd80(uVar3);" (assignment_expression "iVar4 = FUN_0003dd80(uVar3)" (identifier "iVar4") (= "=") (call_expression "FUN_0003dd80(uVar3)" (identifier "FUN_0003dd80") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n    iVar4 = FUN_00041590(uVar3);\n    pcVar5 = local_20[0];\n    if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }\n    FUN_00033c40();\n    return;\n  }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar4 = FUN_00041590(uVar3);\n    pcVar5 = local_20[0];\n    if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }\n    FUN_00033c40();\n    return;\n  }" ({ "{") (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" (identifier "iVar4") (= "=") (call_expression "FUN_00041590(uVar3)" (identifier "FUN_00041590") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "pcVar5 = local_20[0];" (assignment_expression "pcVar5 = local_20[0]" (identifier "pcVar5") (= "=") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (*(int *)(iVar4 + 8) == 0) {\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }\n    else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 8) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 8) == 0" (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar4 = FUN_00041590(uVar3);\n      uVar6 = xstrdup(local_20[0]);\n      *(undefined4 *)(iVar4 + 8) = uVar6;\n      FUN_00029a60((int)cVar2);\n      iVar4 = FUN_00041590(uVar3);\n      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);\n      if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }\n    }" ({ "{") (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" (identifier "iVar4") (= "=") (call_expression "FUN_00041590(uVar3)" (identifier "FUN_00041590") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "uVar6 = xstrdup(local_20[0]);" (assignment_expression "uVar6 = xstrdup(local_20[0])" (identifier "uVar6") (= "=") (call_expression "xstrdup(local_20[0])" (identifier "xstrdup") (argument_list "(local_20[0])" (( "(") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 8) = uVar6;" (assignment_expression "*(undefined4 *)(iVar4 + 8) = uVar6" (pointer_expression "*(undefined4 *)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "FUN_00029a60((int)cVar2);" (call_expression "FUN_00029a60((int)cVar2)" (identifier "FUN_00029a60") (argument_list "((int)cVar2)" (( "(") (cast_expression "(int)cVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar2")) () ")"))) (; ";")) (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" (identifier "iVar4") (= "=") (call_expression "FUN_00041590(uVar3)" (identifier "FUN_00041590") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);" (assignment_expression "pcVar5 = strchr(*(char **)(iVar4 + 8),0x40)" (identifier "pcVar5") (= "=") (call_expression "strchr(*(char **)(iVar4 + 8),0x40)" (identifier "strchr") (argument_list "(*(char **)(iVar4 + 8),0x40)" (( "(") (pointer_expression "*(char **)(iVar4 + 8)" (* "*") (cast_expression "(char **)(iVar4 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "0x40") () ")")))) (; ";")) (if_statement "if (pcVar5 == (char *)0x0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }" (if "if") (parenthesized_expression "(pcVar5 == (char *)0x0)" (( "(") (binary_expression "pcVar5 == (char *)0x0" (identifier "pcVar5") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        pcVar5 = "missing version name in `%s\' for symbol `%s\'";\n        local_20[0] = *(char **)(iVar4 + 8);\n        goto LAB_00050aba;\n      }" ({ "{") (expression_statement "uVar6 = FUN_0003e190(uVar3);" (assignment_expression "uVar6 = FUN_0003e190(uVar3)" (identifier "uVar6") (= "=") (call_expression "FUN_0003e190(uVar3)" (identifier "FUN_0003e190") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" (identifier "iVar4") (= "=") (call_expression "FUN_00041590(uVar3)" (identifier "FUN_00041590") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "pcVar5 = "missing version name in `%s\' for symbol `%s\'";" (assignment_expression "pcVar5 = "missing version name in `%s\' for symbol `%s\'"" (identifier "pcVar5") (= "=") (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_20[0] = *(char **)(iVar4 + 8);" (assignment_expression "local_20[0] = *(char **)(iVar4 + 8)" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "*(char **)(iVar4 + 8)" (* "*") (cast_expression "(char **)(iVar4 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (goto_statement "goto LAB_00050aba;" (goto "goto") (statement_identifier "LAB_00050aba") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }" (else "else") (compound_statement "{\n      iVar4 = FUN_00041590(uVar3);\n      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);\n      if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }\n      FUN_00029a60((int)cVar2);\n    }" ({ "{") (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" (identifier "iVar4") (= "=") (call_expression "FUN_00041590(uVar3)" (identifier "FUN_00041590") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);" (assignment_expression "iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5)" (identifier "iVar4") (= "=") (call_expression "strcmp(*(char **)(iVar4 + 8),pcVar5)" (identifier "strcmp") (argument_list "(*(char **)(iVar4 + 8),pcVar5)" (( "(") (pointer_expression "*(char **)(iVar4 + 8)" (* "*") (cast_expression "(char **)(iVar4 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "pcVar5") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar6 = FUN_0003e190(uVar3);\n        iVar4 = FUN_00041590(uVar3);\n        uVar3 = *(undefined4 *)(iVar4 + 8);\n        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);\n        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);\n        FUN_000339c0();\n        return;\n      }" ({ "{") (expression_statement "uVar6 = FUN_0003e190(uVar3);" (assignment_expression "uVar6 = FUN_0003e190(uVar3)" (identifier "uVar6") (= "=") (call_expression "FUN_0003e190(uVar3)" (identifier "FUN_0003e190") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "iVar4 = FUN_00041590(uVar3);" (assignment_expression "iVar4 = FUN_00041590(uVar3)" (identifier "iVar4") (= "=") (call_expression "FUN_00041590(uVar3)" (identifier "FUN_00041590") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "uVar3 = *(undefined4 *)(iVar4 + 8);" (assignment_expression "uVar3 = *(undefined4 *)(iVar4 + 8)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);" (assignment_expression "uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5)" (identifier "uVar7") (= "=") (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_00031620(uVar7,local_20[0],uVar3,uVar6);" (call_expression "FUN_00031620(uVar7,local_20[0],uVar3,uVar6)" (identifier "FUN_00031620") (argument_list "(uVar7,local_20[0],uVar3,uVar6)" (( "(") (identifier "uVar7") (, ",") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "uVar3") (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "FUN_000339c0();" (call_expression "FUN_000339c0()" (identifier "FUN_000339c0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00029a60((int)cVar2);" (call_expression "FUN_00029a60((int)cVar2)" (identifier "FUN_00029a60") (argument_list "((int)cVar2)" (( "(") (cast_expression "(int)cVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar2")) () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_00033c40();" (call_expression "FUN_00033c40()" (identifier "FUN_00033c40") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar6 = FUN_0003e190(uVar3);" (assignment_expression "uVar6 = FUN_0003e190(uVar3)" (identifier "uVar6") (= "=") (call_expression "FUN_0003e190(uVar3)" (identifier "FUN_0003e190") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (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 "pcVar5") (= "=") (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_00050aba:\n  uVar3 = dcgettext(0,pcVar5,5);" (statement_identifier "LAB_00050aba") (: ":") (expression_statement "uVar3 = dcgettext(0,pcVar5,5);" (assignment_expression "uVar3 = dcgettext(0,pcVar5,5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,pcVar5,5)" (identifier "dcgettext") (argument_list "(0,pcVar5,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar5") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_00031620(uVar3,local_20[0],uVar6);" (call_expression "FUN_00031620(uVar3,local_20[0],uVar6)" (identifier "FUN_00031620") (argument_list "(uVar3,local_20[0],uVar6)" (( "(") (identifier "uVar3") (, ",") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "FUN_000339c0();" (call_expression "FUN_000339c0()" (identifier "FUN_000339c0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void function_1(int ignore)

{
  type_1 bVar1;
  char c;
  type_2 *s;
  int var_8;
  type_3 *peVar3;
  char *var_13;
  char *pcVar5;
  char *format;
  char *name;
  type_4 uStack_14;
  
  uStack_14 = 0x509d9;
  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) {
        pcVar5 = var_14(s);
        peVar3 = var_9(s);
        var_13 = "missing version name in `%s\' for symbol `%s\'";
        name = peVar3->versioned_name;
        goto LAB_00050aba;
      }
    }
    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;
  }
  pcVar5 = var_14(s);
  var_13 = "`%s\' can\'t be versioned to common symbol \'%s\'";
LAB_00050aba:
  var_13 = (char *)var_2(0,var_13,5);
  var_3(var_13,name,pcVar5);
  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: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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)))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (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 (identifier))))) (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: (primitive_type) 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))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(void)

{
  byte bVar1;
  char cVar2;
  undefined4 uVar3;
  int iVar4;
  char *pcVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  char *local_20 [3];
  undefined4 uStack_14;
  
  uStack_14 = 0x509d9;
  uVar3 = FUN_00050930();
  bVar1 = DAT_00078440;
  if (*DAT_00081578 != ',') {
    uVar3 = dcgettext(0,"expected comma after name in .symver",5);
    FUN_00031620(uVar3);
    FUN_000339c0();
    return;
  }
  pcVar5 = DAT_00081578 + 1;
  if (DAT_00081578[1] == ' ') {
    pcVar5 = DAT_00081578 + 2;
  }
  DAT_00081578 = pcVar5;
  DAT_00078440 = DAT_00078440 | 1;
  cVar2 = FUN_000279b0(local_20);
  DAT_00078440 = bVar1;
  iVar4 = FUN_0003dd80(uVar3);
  if (iVar4 == 0) {
    iVar4 = FUN_00041590(uVar3);
    pcVar5 = local_20[0];
    if (*(int *)(iVar4 + 8) == 0) {
      iVar4 = FUN_00041590(uVar3);
      uVar6 = xstrdup(local_20[0]);
      *(undefined4 *)(iVar4 + 8) = uVar6;
      FUN_00029a60((int)cVar2);
      iVar4 = FUN_00041590(uVar3);
      pcVar5 = strchr(*(char **)(iVar4 + 8),0x40);
      if (pcVar5 == (char *)0x0) {
        uVar6 = FUN_0003e190(uVar3);
        iVar4 = FUN_00041590(uVar3);
        pcVar5 = "missing version name in `%s\' for symbol `%s\'";
        local_20[0] = *(char **)(iVar4 + 8);
        goto LAB_00050aba;
      }
    }
    else {
      iVar4 = FUN_00041590(uVar3);
      iVar4 = strcmp(*(char **)(iVar4 + 8),pcVar5);
      if (iVar4 != 0) {
        uVar6 = FUN_0003e190(uVar3);
        iVar4 = FUN_00041590(uVar3);
        uVar3 = *(undefined4 *)(iVar4 + 8);
        uVar7 = dcgettext(0,"multiple versions [`%s\'|`%s\'] for symbol `%s\'",5);
        FUN_00031620(uVar7,local_20[0],uVar3,uVar6);
        FUN_000339c0();
        return;
      }
      FUN_00029a60((int)cVar2);
    }
    FUN_00033c40();
    return;
  }
  uVar6 = FUN_0003e190(uVar3);
  pcVar5 = "`%s\' can\'t be versioned to common symbol \'%s\'";
LAB_00050aba:
  uVar3 = dcgettext(0,pcVar5,5);
  FUN_00031620(uVar3,local_20[0],uVar6);
  FUN_000339c0();
  return;
}

