
uchar * display_s390_gnu_attribute(uchar *p,uint tag,uchar *end)

{
  uchar *puVar1;
  dwarf_vma dVar2;
  int iVar3;
  char *pcVar4;
  uint len;
  
  if (tag != 8) {
    puVar1 = display_tag_value(tag & 1,p,end);
    return puVar1;
  }
  dVar2 = read_leb128(p,&len,0,end);
  printf("  Tag_GNU_S390_ABI_Vector: ");
  iVar3 = (int)dVar2;
  if (iVar3 == 1) {
    pcVar4 = "software\n";
  }
  else if (iVar3 == 2) {
    pcVar4 = "hardware\n";
  }
  else {
    pcVar4 = "any\n";
    if (iVar3 != 0) {
      printf("??? (%d)\n",dVar2 & 0xffffffff);
      return p + len;
    }
  }
  pcVar4 = (char *)dcgettext(0,pcVar4,5);
  printf(pcVar4);
  return p + len;
}



long FUN_0012a170(long param_1,uint param_2,undefined8 param_3)

{
  uint uVar1;
  long lVar2;
  char *pcVar3;
  uint local_1c [3];
  
  if (param_2 != 8) {
    lVar2 = FUN_001124d0(param_2 & 1,param_1);
    return lVar2;
  }
  uVar1 = FUN_0013fb20(param_1,local_1c,0,param_3);
  printf("  Tag_GNU_S390_ABI_Vector: ");
  if (uVar1 == 1) {
    pcVar3 = "software\n";
  }
  else if (uVar1 == 2) {
    pcVar3 = "hardware\n";
  }
  else {
    pcVar3 = "any\n";
    if (uVar1 != 0) {
      printf("??? (%d)\n",(ulong)uVar1);
      return param_1 + (ulong)local_1c[0];
    }
  }
  pcVar3 = (char *)dcgettext(0,pcVar3,5);
  printf(pcVar3);
  return param_1 + (ulong)local_1c[0];
}


PUSH RBP
PUSH RBX
MOV RBX,RDI
SUB RSP,0x18
CMP ESI,0x8
JZ 0x0012a1a0
MOV EDI,ESI
MOV RSI,RBX
AND EDI,0x1
CALL 0x001124d0
MOV RBX,RAX
ADD RSP,0x18
MOV RAX,RBX
POP RBX
POP RBP
RET
MOV RCX,RDX
LEA RSI,[RSP + 0xc]
XOR EDX,EDX
CALL 0x0013fb20
LEA RDI,[0x16a1c7]
MOV RBP,RAX
MOV EAX,dword ptr [RSP + 0xc]
ADD RBX,RAX
XOR EAX,EAX
CALL 0x00107190
CMP EBP,0x1
JZ 0x0012a220
CMP EBP,0x2
JZ 0x0012a1f8
MOV EDX,0x5
LEA RSI,[0x16a1e3]
TEST EBP,EBP
JZ 0x0012a204
MOV ESI,EBP
LEA RDI,[0x164862]
XOR EAX,EAX
CALL 0x00107190
JMP 0x0012a18e
MOV EDX,0x5
LEA RSI,[0x16a1f2]
XOR EDI,EDI
CALL 0x00107130
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107190
ADD RSP,0x18
MOV RAX,RBX
POP RBX
POP RBP
RET
MOV EDX,0x5
LEA RSI,[0x16a1e8]
JMP 0x0012a204
(translation_unit "long FUN_0012a170(long param_1,uint param_2,undefined8 param_3)\n\n{\n  uint uVar1;\n  long lVar2;\n  char *pcVar3;\n  uint local_1c [3];\n  \n  if (param_2 != 8) {\n    lVar2 = FUN_001124d0(param_2 & 1,param_1);\n    return lVar2;\n  }\n  uVar1 = FUN_0013fb20(param_1,local_1c,0,param_3);\n  printf("  Tag_GNU_S390_ABI_Vector: ");\n  if (uVar1 == 1) {\n    pcVar3 = "software\n";\n  }\n  else if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }\n  pcVar3 = (char *)dcgettext(0,pcVar3,5);\n  printf(pcVar3);\n  return param_1 + (ulong)local_1c[0];\n}\n\n" (function_definition "long FUN_0012a170(long param_1,uint param_2,undefined8 param_3)\n\n{\n  uint uVar1;\n  long lVar2;\n  char *pcVar3;\n  uint local_1c [3];\n  \n  if (param_2 != 8) {\n    lVar2 = FUN_001124d0(param_2 & 1,param_1);\n    return lVar2;\n  }\n  uVar1 = FUN_0013fb20(param_1,local_1c,0,param_3);\n  printf("  Tag_GNU_S390_ABI_Vector: ");\n  if (uVar1 == 1) {\n    pcVar3 = "software\n";\n  }\n  else if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }\n  pcVar3 = (char *)dcgettext(0,pcVar3,5);\n  printf(pcVar3);\n  return param_1 + (ulong)local_1c[0];\n}" (sized_type_specifier "long" long) (function_declarator "FUN_0012a170(long param_1,uint param_2,undefined8 param_3)" identifier (parameter_list "(long param_1,uint param_2,undefined8 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  long lVar2;\n  char *pcVar3;\n  uint local_1c [3];\n  \n  if (param_2 != 8) {\n    lVar2 = FUN_001124d0(param_2 & 1,param_1);\n    return lVar2;\n  }\n  uVar1 = FUN_0013fb20(param_1,local_1c,0,param_3);\n  printf("  Tag_GNU_S390_ABI_Vector: ");\n  if (uVar1 == 1) {\n    pcVar3 = "software\n";\n  }\n  else if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }\n  pcVar3 = (char *)dcgettext(0,pcVar3,5);\n  printf(pcVar3);\n  return param_1 + (ulong)local_1c[0];\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint local_1c [3];" type_identifier (array_declarator "local_1c [3]" identifier [ number_literal ]) ;) (if_statement "if (param_2 != 8) {\n    lVar2 = FUN_001124d0(param_2 & 1,param_1);\n    return lVar2;\n  }" if (parenthesized_expression "(param_2 != 8)" ( (binary_expression "param_2 != 8" identifier != number_literal) )) (compound_statement "{\n    lVar2 = FUN_001124d0(param_2 & 1,param_1);\n    return lVar2;\n  }" { (expression_statement "lVar2 = FUN_001124d0(param_2 & 1,param_1);" (assignment_expression "lVar2 = FUN_001124d0(param_2 & 1,param_1)" identifier = (call_expression "FUN_001124d0(param_2 & 1,param_1)" identifier (argument_list "(param_2 & 1,param_1)" ( (binary_expression "param_2 & 1" identifier & number_literal) , identifier )))) ;) (return_statement "return lVar2;" return identifier ;) })) (expression_statement "uVar1 = FUN_0013fb20(param_1,local_1c,0,param_3);" (assignment_expression "uVar1 = FUN_0013fb20(param_1,local_1c,0,param_3)" identifier = (call_expression "FUN_0013fb20(param_1,local_1c,0,param_3)" identifier (argument_list "(param_1,local_1c,0,param_3)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "printf("  Tag_GNU_S390_ABI_Vector: ");" (call_expression "printf("  Tag_GNU_S390_ABI_Vector: ")" identifier (argument_list "("  Tag_GNU_S390_ABI_Vector: ")" ( (string_literal ""  Tag_GNU_S390_ABI_Vector: "" " string_content ") ))) ;) (if_statement "if (uVar1 == 1) {\n    pcVar3 = "software\n";\n  }\n  else if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }" if (parenthesized_expression "(uVar1 == 1)" ( (binary_expression "uVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    pcVar3 = "software\n";\n  }" { (expression_statement "pcVar3 = "software\n";" (assignment_expression "pcVar3 = "software\n"" identifier = (string_literal ""software\n"" " string_content escape_sequence ")) ;) }) (else_clause "else if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }" else (if_statement "if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }" if (parenthesized_expression "(uVar1 == 2)" ( (binary_expression "uVar1 == 2" identifier == number_literal) )) (compound_statement "{\n    pcVar3 = "hardware\n";\n  }" { (expression_statement "pcVar3 = "hardware\n";" (assignment_expression "pcVar3 = "hardware\n"" identifier = (string_literal ""hardware\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }" else (compound_statement "{\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }" { (expression_statement "pcVar3 = "any\n";" (assignment_expression "pcVar3 = "any\n"" identifier = (string_literal ""any\n"" " string_content escape_sequence ")) ;) (if_statement "if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }" { (expression_statement "printf("??? (%d)\n",(ulong)uVar1);" (call_expression "printf("??? (%d)\n",(ulong)uVar1)" identifier (argument_list "("??? (%d)\n",(ulong)uVar1)" ( (string_literal ""??? (%d)\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (return_statement "return param_1 + (ulong)local_1c[0];" return (binary_expression "param_1 + (ulong)local_1c[0]" identifier + (cast_expression "(ulong)local_1c[0]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_1c[0]" identifier [ number_literal ]))) ;) })) }))))) (expression_statement "pcVar3 = (char *)dcgettext(0,pcVar3,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,pcVar3,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar3,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "printf(pcVar3);" (call_expression "printf(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (return_statement "return param_1 + (ulong)local_1c[0];" return (binary_expression "param_1 + (ulong)local_1c[0]" identifier + (cast_expression "(ulong)local_1c[0]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_1c[0]" identifier [ number_literal ]))) ;) })))
(translation_unit "uchar * display_s390_gnu_attribute(uchar *p,uint tag,uchar *end)\n\n{\n  uchar *puVar1;\n  dwarf_vma dVar2;\n  int iVar3;\n  char *pcVar4;\n  uint len;\n  \n  if (tag != 8) {\n    puVar1 = display_tag_value(tag & 1,p,end);\n    return puVar1;\n  }\n  dVar2 = read_leb128(p,&len,0,end);\n  printf("  Tag_GNU_S390_ABI_Vector: ");\n  iVar3 = (int)dVar2;\n  if (iVar3 == 1) {\n    pcVar4 = "software\n";\n  }\n  else if (iVar3 == 2) {\n    pcVar4 = "hardware\n";\n  }\n  else {\n    pcVar4 = "any\n";\n    if (iVar3 != 0) {\n      printf("??? (%d)\n",dVar2 & 0xffffffff);\n      return p + len;\n    }\n  }\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  printf(pcVar4);\n  return p + len;\n}\n\n" (function_definition "uchar * display_s390_gnu_attribute(uchar *p,uint tag,uchar *end)\n\n{\n  uchar *puVar1;\n  dwarf_vma dVar2;\n  int iVar3;\n  char *pcVar4;\n  uint len;\n  \n  if (tag != 8) {\n    puVar1 = display_tag_value(tag & 1,p,end);\n    return puVar1;\n  }\n  dVar2 = read_leb128(p,&len,0,end);\n  printf("  Tag_GNU_S390_ABI_Vector: ");\n  iVar3 = (int)dVar2;\n  if (iVar3 == 1) {\n    pcVar4 = "software\n";\n  }\n  else if (iVar3 == 2) {\n    pcVar4 = "hardware\n";\n  }\n  else {\n    pcVar4 = "any\n";\n    if (iVar3 != 0) {\n      printf("??? (%d)\n",dVar2 & 0xffffffff);\n      return p + len;\n    }\n  }\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  printf(pcVar4);\n  return p + len;\n}" type_identifier (pointer_declarator "* display_s390_gnu_attribute(uchar *p,uint tag,uchar *end)" * (function_declarator "display_s390_gnu_attribute(uchar *p,uint tag,uchar *end)" identifier (parameter_list "(uchar *p,uint tag,uchar *end)" ( (parameter_declaration "uchar *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "uint tag" type_identifier identifier) , (parameter_declaration "uchar *end" type_identifier (pointer_declarator "*end" * identifier)) )))) (compound_statement "{\n  uchar *puVar1;\n  dwarf_vma dVar2;\n  int iVar3;\n  char *pcVar4;\n  uint len;\n  \n  if (tag != 8) {\n    puVar1 = display_tag_value(tag & 1,p,end);\n    return puVar1;\n  }\n  dVar2 = read_leb128(p,&len,0,end);\n  printf("  Tag_GNU_S390_ABI_Vector: ");\n  iVar3 = (int)dVar2;\n  if (iVar3 == 1) {\n    pcVar4 = "software\n";\n  }\n  else if (iVar3 == 2) {\n    pcVar4 = "hardware\n";\n  }\n  else {\n    pcVar4 = "any\n";\n    if (iVar3 != 0) {\n      printf("??? (%d)\n",dVar2 & 0xffffffff);\n      return p + len;\n    }\n  }\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  printf(pcVar4);\n  return p + len;\n}" { (declaration "uchar *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "dwarf_vma dVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "uint len;" type_identifier identifier ;) (if_statement "if (tag != 8) {\n    puVar1 = display_tag_value(tag & 1,p,end);\n    return puVar1;\n  }" if (parenthesized_expression "(tag != 8)" ( (binary_expression "tag != 8" identifier != number_literal) )) (compound_statement "{\n    puVar1 = display_tag_value(tag & 1,p,end);\n    return puVar1;\n  }" { (expression_statement "puVar1 = display_tag_value(tag & 1,p,end);" (assignment_expression "puVar1 = display_tag_value(tag & 1,p,end)" identifier = (call_expression "display_tag_value(tag & 1,p,end)" identifier (argument_list "(tag & 1,p,end)" ( (binary_expression "tag & 1" identifier & number_literal) , identifier , identifier )))) ;) (return_statement "return puVar1;" return identifier ;) })) (expression_statement "dVar2 = read_leb128(p,&len,0,end);" (assignment_expression "dVar2 = read_leb128(p,&len,0,end)" identifier = (call_expression "read_leb128(p,&len,0,end)" identifier (argument_list "(p,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "printf("  Tag_GNU_S390_ABI_Vector: ");" (call_expression "printf("  Tag_GNU_S390_ABI_Vector: ")" identifier (argument_list "("  Tag_GNU_S390_ABI_Vector: ")" ( (string_literal ""  Tag_GNU_S390_ABI_Vector: "" " string_content ") ))) ;) (expression_statement "iVar3 = (int)dVar2;" (assignment_expression "iVar3 = (int)dVar2" identifier = (cast_expression "(int)dVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar3 == 1) {\n    pcVar4 = "software\n";\n  }\n  else if (iVar3 == 2) {\n    pcVar4 = "hardware\n";\n  }\n  else {\n    pcVar4 = "any\n";\n    if (iVar3 != 0) {\n      printf("??? (%d)\n",dVar2 & 0xffffffff);\n      return p + len;\n    }\n  }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n    pcVar4 = "software\n";\n  }" { (expression_statement "pcVar4 = "software\n";" (assignment_expression "pcVar4 = "software\n"" identifier = (string_literal ""software\n"" " string_content escape_sequence ")) ;) }) (else_clause "else if (iVar3 == 2) {\n    pcVar4 = "hardware\n";\n  }\n  else {\n    pcVar4 = "any\n";\n    if (iVar3 != 0) {\n      printf("??? (%d)\n",dVar2 & 0xffffffff);\n      return p + len;\n    }\n  }" else (if_statement "if (iVar3 == 2) {\n    pcVar4 = "hardware\n";\n  }\n  else {\n    pcVar4 = "any\n";\n    if (iVar3 != 0) {\n      printf("??? (%d)\n",dVar2 & 0xffffffff);\n      return p + len;\n    }\n  }" if (parenthesized_expression "(iVar3 == 2)" ( (binary_expression "iVar3 == 2" identifier == number_literal) )) (compound_statement "{\n    pcVar4 = "hardware\n";\n  }" { (expression_statement "pcVar4 = "hardware\n";" (assignment_expression "pcVar4 = "hardware\n"" identifier = (string_literal ""hardware\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n    pcVar4 = "any\n";\n    if (iVar3 != 0) {\n      printf("??? (%d)\n",dVar2 & 0xffffffff);\n      return p + len;\n    }\n  }" else (compound_statement "{\n    pcVar4 = "any\n";\n    if (iVar3 != 0) {\n      printf("??? (%d)\n",dVar2 & 0xffffffff);\n      return p + len;\n    }\n  }" { (expression_statement "pcVar4 = "any\n";" (assignment_expression "pcVar4 = "any\n"" identifier = (string_literal ""any\n"" " string_content escape_sequence ")) ;) (if_statement "if (iVar3 != 0) {\n      printf("??? (%d)\n",dVar2 & 0xffffffff);\n      return p + len;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      printf("??? (%d)\n",dVar2 & 0xffffffff);\n      return p + len;\n    }" { (expression_statement "printf("??? (%d)\n",dVar2 & 0xffffffff);" (call_expression "printf("??? (%d)\n",dVar2 & 0xffffffff)" identifier (argument_list "("??? (%d)\n",dVar2 & 0xffffffff)" ( (string_literal ""??? (%d)\n"" " string_content escape_sequence ") , (binary_expression "dVar2 & 0xffffffff" identifier & number_literal) ))) ;) (return_statement "return p + len;" return (binary_expression "p + len" identifier + 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 "printf(pcVar4);" (call_expression "printf(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (return_statement "return p + len;" return (binary_expression "p + len" identifier + identifier) ;) })))
(translation_unit "long FUN_0012a170(long param_1,uint param_2,undefined8 param_3)\n\n{\n  uint uVar1;\n  long lVar2;\n  char *pcVar3;\n  uint local_1c [3];\n  \n  if (param_2 != 8) {\n    lVar2 = FUN_001124d0(param_2 & 1,param_1);\n    return lVar2;\n  }\n  uVar1 = FUN_0013fb20(param_1,local_1c,0,param_3);\n  printf("  Tag_GNU_S390_ABI_Vector: ");\n  if (uVar1 == 1) {\n    pcVar3 = "software\n";\n  }\n  else if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }\n  pcVar3 = (char *)dcgettext(0,pcVar3,5);\n  printf(pcVar3);\n  return param_1 + (ulong)local_1c[0];\n}\n\n" (function_definition "long FUN_0012a170(long param_1,uint param_2,undefined8 param_3)\n\n{\n  uint uVar1;\n  long lVar2;\n  char *pcVar3;\n  uint local_1c [3];\n  \n  if (param_2 != 8) {\n    lVar2 = FUN_001124d0(param_2 & 1,param_1);\n    return lVar2;\n  }\n  uVar1 = FUN_0013fb20(param_1,local_1c,0,param_3);\n  printf("  Tag_GNU_S390_ABI_Vector: ");\n  if (uVar1 == 1) {\n    pcVar3 = "software\n";\n  }\n  else if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }\n  pcVar3 = (char *)dcgettext(0,pcVar3,5);\n  printf(pcVar3);\n  return param_1 + (ulong)local_1c[0];\n}" (sized_type_specifier "long" long) (function_declarator "FUN_0012a170(long param_1,uint param_2,undefined8 param_3)" identifier (parameter_list "(long param_1,uint param_2,undefined8 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  long lVar2;\n  char *pcVar3;\n  uint local_1c [3];\n  \n  if (param_2 != 8) {\n    lVar2 = FUN_001124d0(param_2 & 1,param_1);\n    return lVar2;\n  }\n  uVar1 = FUN_0013fb20(param_1,local_1c,0,param_3);\n  printf("  Tag_GNU_S390_ABI_Vector: ");\n  if (uVar1 == 1) {\n    pcVar3 = "software\n";\n  }\n  else if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }\n  pcVar3 = (char *)dcgettext(0,pcVar3,5);\n  printf(pcVar3);\n  return param_1 + (ulong)local_1c[0];\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint local_1c [3];" type_identifier (array_declarator "local_1c [3]" identifier [ number_literal ]) ;) (if_statement "if (param_2 != 8) {\n    lVar2 = FUN_001124d0(param_2 & 1,param_1);\n    return lVar2;\n  }" if (parenthesized_expression "(param_2 != 8)" ( (binary_expression "param_2 != 8" identifier != number_literal) )) (compound_statement "{\n    lVar2 = FUN_001124d0(param_2 & 1,param_1);\n    return lVar2;\n  }" { (expression_statement "lVar2 = FUN_001124d0(param_2 & 1,param_1);" (assignment_expression "lVar2 = FUN_001124d0(param_2 & 1,param_1)" identifier = (call_expression "FUN_001124d0(param_2 & 1,param_1)" identifier (argument_list "(param_2 & 1,param_1)" ( (binary_expression "param_2 & 1" identifier & number_literal) , identifier )))) ;) (return_statement "return lVar2;" return identifier ;) })) (expression_statement "uVar1 = FUN_0013fb20(param_1,local_1c,0,param_3);" (assignment_expression "uVar1 = FUN_0013fb20(param_1,local_1c,0,param_3)" identifier = (call_expression "FUN_0013fb20(param_1,local_1c,0,param_3)" identifier (argument_list "(param_1,local_1c,0,param_3)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "printf("  Tag_GNU_S390_ABI_Vector: ");" (call_expression "printf("  Tag_GNU_S390_ABI_Vector: ")" identifier (argument_list "("  Tag_GNU_S390_ABI_Vector: ")" ( (string_literal ""  Tag_GNU_S390_ABI_Vector: "" " string_content ") ))) ;) (if_statement "if (uVar1 == 1) {\n    pcVar3 = "software\n";\n  }\n  else if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }" if (parenthesized_expression "(uVar1 == 1)" ( (binary_expression "uVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    pcVar3 = "software\n";\n  }" { (expression_statement "pcVar3 = "software\n";" (assignment_expression "pcVar3 = "software\n"" identifier = (string_literal ""software\n"" " string_content escape_sequence ")) ;) }) (else_clause "else if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }" else (if_statement "if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }" if (parenthesized_expression "(uVar1 == 2)" ( (binary_expression "uVar1 == 2" identifier == number_literal) )) (compound_statement "{\n    pcVar3 = "hardware\n";\n  }" { (expression_statement "pcVar3 = "hardware\n";" (assignment_expression "pcVar3 = "hardware\n"" identifier = (string_literal ""hardware\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }" else (compound_statement "{\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }" { (expression_statement "pcVar3 = "any\n";" (assignment_expression "pcVar3 = "any\n"" identifier = (string_literal ""any\n"" " string_content escape_sequence ")) ;) (if_statement "if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }" { (expression_statement "printf("??? (%d)\n",(ulong)uVar1);" (call_expression "printf("??? (%d)\n",(ulong)uVar1)" identifier (argument_list "("??? (%d)\n",(ulong)uVar1)" ( (string_literal ""??? (%d)\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (return_statement "return param_1 + (ulong)local_1c[0];" return (binary_expression "param_1 + (ulong)local_1c[0]" identifier + (cast_expression "(ulong)local_1c[0]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_1c[0]" identifier [ number_literal ]))) ;) })) }))))) (expression_statement "pcVar3 = (char *)dcgettext(0,pcVar3,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,pcVar3,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar3,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "printf(pcVar3);" (call_expression "printf(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (return_statement "return param_1 + (ulong)local_1c[0];" return (binary_expression "param_1 + (ulong)local_1c[0]" identifier + (cast_expression "(ulong)local_1c[0]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_1c[0]" identifier [ number_literal ]))) ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT & LIT) , IDENT )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (return_statement return (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) })) }))))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , IDENT , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) })))
(function_definition "long FUN_0012a170(long param_1,uint param_2,undefined8 param_3)\n\n{\n  uint uVar1;\n  long lVar2;\n  char *pcVar3;\n  uint local_1c [3];\n  \n  if (param_2 != 8) {\n    lVar2 = FUN_001124d0(param_2 & 1,param_1);\n    return lVar2;\n  }\n  uVar1 = FUN_0013fb20(param_1,local_1c,0,param_3);\n  printf("  Tag_GNU_S390_ABI_Vector: ");\n  if (uVar1 == 1) {\n    pcVar3 = "software\n";\n  }\n  else if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }\n  pcVar3 = (char *)dcgettext(0,pcVar3,5);\n  printf(pcVar3);\n  return param_1 + (ulong)local_1c[0];\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_0012a170(long param_1,uint param_2,undefined8 param_3)" (identifier "FUN_0012a170") (parameter_list "(long param_1,uint param_2,undefined8 param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) () ")"))) (compound_statement "{\n  uint uVar1;\n  long lVar2;\n  char *pcVar3;\n  uint local_1c [3];\n  \n  if (param_2 != 8) {\n    lVar2 = FUN_001124d0(param_2 & 1,param_1);\n    return lVar2;\n  }\n  uVar1 = FUN_0013fb20(param_1,local_1c,0,param_3);\n  printf("  Tag_GNU_S390_ABI_Vector: ");\n  if (uVar1 == 1) {\n    pcVar3 = "software\n";\n  }\n  else if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }\n  pcVar3 = (char *)dcgettext(0,pcVar3,5);\n  printf(pcVar3);\n  return param_1 + (ulong)local_1c[0];\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "uint local_1c [3];" (type_identifier "uint") (array_declarator "local_1c [3]" (identifier "local_1c") ([ "[") (number_literal "3") (] "]")) (; ";")) (if_statement "if (param_2 != 8) {\n    lVar2 = FUN_001124d0(param_2 & 1,param_1);\n    return lVar2;\n  }" (if "if") (parenthesized_expression "(param_2 != 8)" (( "(") (binary_expression "param_2 != 8" (identifier "param_2") (!= "!=") (number_literal "8")) () ")")) (compound_statement "{\n    lVar2 = FUN_001124d0(param_2 & 1,param_1);\n    return lVar2;\n  }" ({ "{") (expression_statement "lVar2 = FUN_001124d0(param_2 & 1,param_1);" (assignment_expression "lVar2 = FUN_001124d0(param_2 & 1,param_1)" (identifier "lVar2") (= "=") (call_expression "FUN_001124d0(param_2 & 1,param_1)" (identifier "FUN_001124d0") (argument_list "(param_2 & 1,param_1)" (( "(") (binary_expression "param_2 & 1" (identifier "param_2") (& "&") (number_literal "1")) (, ",") (identifier "param_1") () ")")))) (; ";")) (return_statement "return lVar2;" (return "return") (identifier "lVar2") (; ";")) (} "}"))) (expression_statement "uVar1 = FUN_0013fb20(param_1,local_1c,0,param_3);" (assignment_expression "uVar1 = FUN_0013fb20(param_1,local_1c,0,param_3)" (identifier "uVar1") (= "=") (call_expression "FUN_0013fb20(param_1,local_1c,0,param_3)" (identifier "FUN_0013fb20") (argument_list "(param_1,local_1c,0,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "local_1c") (, ",") (number_literal "0") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "printf("  Tag_GNU_S390_ABI_Vector: ");" (call_expression "printf("  Tag_GNU_S390_ABI_Vector: ")" (identifier "printf") (argument_list "("  Tag_GNU_S390_ABI_Vector: ")" (( "(") (string_literal ""  Tag_GNU_S390_ABI_Vector: "" (" """) (string_content "  Tag_GNU_S390_ABI_Vector: ") (" """)) () ")"))) (; ";")) (if_statement "if (uVar1 == 1) {\n    pcVar3 = "software\n";\n  }\n  else if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }" (if "if") (parenthesized_expression "(uVar1 == 1)" (( "(") (binary_expression "uVar1 == 1" (identifier "uVar1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    pcVar3 = "software\n";\n  }" ({ "{") (expression_statement "pcVar3 = "software\n";" (assignment_expression "pcVar3 = "software\n"" (identifier "pcVar3") (= "=") (string_literal ""software\n"" (" """) (string_content "software") (escape_sequence "\n") (" """))) (; ";")) (} "}")) (else_clause "else if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }" (else "else") (if_statement "if (uVar1 == 2) {\n    pcVar3 = "hardware\n";\n  }\n  else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }" (if "if") (parenthesized_expression "(uVar1 == 2)" (( "(") (binary_expression "uVar1 == 2" (identifier "uVar1") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    pcVar3 = "hardware\n";\n  }" ({ "{") (expression_statement "pcVar3 = "hardware\n";" (assignment_expression "pcVar3 = "hardware\n"" (identifier "pcVar3") (= "=") (string_literal ""hardware\n"" (" """) (string_content "hardware") (escape_sequence "\n") (" """))) (; ";")) (} "}")) (else_clause "else {\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }" (else "else") (compound_statement "{\n    pcVar3 = "any\n";\n    if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }\n  }" ({ "{") (expression_statement "pcVar3 = "any\n";" (assignment_expression "pcVar3 = "any\n"" (identifier "pcVar3") (= "=") (string_literal ""any\n"" (" """) (string_content "any") (escape_sequence "\n") (" """))) (; ";")) (if_statement "if (uVar1 != 0) {\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }" (if "if") (parenthesized_expression "(uVar1 != 0)" (( "(") (binary_expression "uVar1 != 0" (identifier "uVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      printf("??? (%d)\n",(ulong)uVar1);\n      return param_1 + (ulong)local_1c[0];\n    }" ({ "{") (expression_statement "printf("??? (%d)\n",(ulong)uVar1);" (call_expression "printf("??? (%d)\n",(ulong)uVar1)" (identifier "printf") (argument_list "("??? (%d)\n",(ulong)uVar1)" (( "(") (string_literal ""??? (%d)\n"" (" """) (string_content "??? (%d)") (escape_sequence "\n") (" """)) (, ",") (cast_expression "(ulong)uVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar1")) () ")"))) (; ";")) (return_statement "return param_1 + (ulong)local_1c[0];" (return "return") (binary_expression "param_1 + (ulong)local_1c[0]" (identifier "param_1") (+ "+") (cast_expression "(ulong)local_1c[0]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "local_1c[0]" (identifier "local_1c") ([ "[") (number_literal "0") (] "]")))) (; ";")) (} "}"))) (} "}")))))) (expression_statement "pcVar3 = (char *)dcgettext(0,pcVar3,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,pcVar3,5)" (identifier "pcVar3") (= "=") (cast_expression "(char *)dcgettext(0,pcVar3,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,pcVar3,5)" (identifier "dcgettext") (argument_list "(0,pcVar3,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar3") (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar3);" (call_expression "printf(pcVar3)" (identifier "printf") (argument_list "(pcVar3)" (( "(") (identifier "pcVar3") () ")"))) (; ";")) (return_statement "return param_1 + (ulong)local_1c[0];" (return "return") (binary_expression "param_1 + (ulong)local_1c[0]" (identifier "param_1") (+ "+") (cast_expression "(ulong)local_1c[0]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "local_1c[0]" (identifier "local_1c") ([ "[") (number_literal "0") (] "]")))) (; ";")) (} "}")))

type_1 * function_1(type_1 *var_7,type_2 var_1,type_1 *end)

{
  type_1 *puVar1;
  type_3 var_6;
  int var_5;
  char *pcVar4;
  type_2 var_8;
  
  if (var_1 != 8) {
    puVar1 = var_2(var_1 & 1,var_7,end);
    return puVar1;
  }
  var_6 = var_3(var_7,&var_8,0,end);
  var_4("  Tag_GNU_S390_ABI_Vector: ");
  var_5 = (int)var_6;
  if (var_5 == 1) {
    pcVar4 = "software\n";
  }
  else if (var_5 == 2) {
    pcVar4 = "hardware\n";
  }
  else {
    pcVar4 = "any\n";
    if (var_5 != 0) {
      var_4("??? (%d)\n",var_6 & 0xffffffff);
      return var_7 + var_8;
    }
  }
  pcVar4 = (char *)var_9(0,pcVar4,5);
  var_4(pcVar4);
  return var_7 + var_8;
}


(translation_unit (function_definition type: (sized_type_specifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (return_statement (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))

long MASKED(long param_1,uint param_2,undefined8 param_3)

{
  uint uVar1;
  long lVar2;
  char *pcVar3;
  uint local_1c [3];
  
  if (param_2 != 8) {
    lVar2 = FUN_001124d0(param_2 & 1,param_1);
    return lVar2;
  }
  uVar1 = FUN_0013fb20(param_1,local_1c,0,param_3);
  printf("  Tag_GNU_S390_ABI_Vector: ");
  if (uVar1 == 1) {
    pcVar3 = "software\n";
  }
  else if (uVar1 == 2) {
    pcVar3 = "hardware\n";
  }
  else {
    pcVar3 = "any\n";
    if (uVar1 != 0) {
      printf("??? (%d)\n",(ulong)uVar1);
      return param_1 + (ulong)local_1c[0];
    }
  }
  pcVar3 = (char *)dcgettext(0,pcVar3,5);
  printf(pcVar3);
  return param_1 + (ulong)local_1c[0];
}

