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

void __regparm3 make_mapping_symbol(mstate state,valueT value,fragS *frag)

{
  symbolS *psVar1;
  char *name;
  symbolS *s;
  asymbol *paVar2;
  int in_ECX;
  uint uVar3;
  uint uVar4;
  valueT vVar5;
  valueT vVar6;
  
  if (state == MAP_DATA) {
    name = "$d";
  }
  else {
    if (state != MAP_INSN) {
                    /* WARNING: Subroutine does not return */
      as_abort("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol");
    }
    name = "$x";
  }
  s = symbol_new(name,now_seg,CONCAT44(in_ECX,frag),(fragS *)value);
  paVar2 = symbol_get_bfdsym(s);
  paVar2->flags = paVar2->flags | 1;
  if (in_ECX == 0 && frag == (fragS *)0x0) {
    psVar1 = (((fragS *)value)->tc_frag_data).first_map;
    if (psVar1 != (symbolS *)0x0) {
      vVar5 = S_GET_VALUE(psVar1);
      if (vVar5 != 0) {
                    /* WARNING: Subroutine does not return */
        as_abort("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol");
      }
      symbol_remove((((fragS *)value)->tc_frag_data).first_map,(symbolS **)PTR_symbol_rootP_00077f68
                    ,(symbolS **)PTR_symbol_lastP_00077fd0);
    }
    (((fragS *)value)->tc_frag_data).first_map = s;
  }
  psVar1 = (((fragS *)value)->tc_frag_data).last_map;
  if (psVar1 != (symbolS *)0x0) {
    vVar5 = S_GET_VALUE(psVar1);
    uVar3 = (uint)(vVar5 >> 0x20);
    vVar6 = S_GET_VALUE(s);
    uVar4 = (uint)(vVar6 >> 0x20);
    if (uVar4 < uVar3 || uVar4 - uVar3 < (uint)((uint)vVar6 < (uint)vVar5)) {
                    /* WARNING: Subroutine does not return */
      as_abort("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol");
    }
    vVar5 = S_GET_VALUE((((fragS *)value)->tc_frag_data).last_map);
    vVar6 = S_GET_VALUE(s);
    if (vVar6 == vVar5) {
      symbol_remove((((fragS *)value)->tc_frag_data).last_map,(symbolS **)PTR_symbol_rootP_00077f68,
                    (symbolS **)PTR_symbol_lastP_00077fd0);
      (((fragS *)value)->tc_frag_data).last_map = s;
      return;
    }
  }
  (((fragS *)value)->tc_frag_data).last_map = s;
  return;
}



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

void __regparm3 FUN_00042200(int param_1,int param_2,int param_3,int param_4)

{
  uint uVar1;
  undefined *puVar2;
  undefined4 uVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined8 uVar8;
  undefined8 uVar9;
  longlong lVar10;
  longlong lVar11;
  
  if (param_1 == 1) {
    puVar2 = &DAT_0005ac41;
  }
  else {
    if (param_1 != 2) {
                    /* WARNING: Subroutine does not return */
      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);
    }
    puVar2 = &DAT_0005ac44;
  }
  uVar3 = FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4);
  iVar4 = FUN_0003ca60(uVar3);
  *(uint *)(iVar4 + 0x10) = *(uint *)(iVar4 + 0x10) | 1;
  if (param_3 == 0 && param_2 == 0) {
    if (*(int *)(param_4 + 0x50) != 0) {
      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));
      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;
      if (uVar5 != 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);
      }
      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);
    }
    *(undefined4 *)(param_4 + 0x50) = uVar3;
  }
  if (*(int *)(param_4 + 0x54) != 0) {
    uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));
    uVar6 = (uint)((ulonglong)uVar8 >> 0x20);
    uVar9 = FUN_0003aff0(uVar3);
    uVar7 = (uint)((ulonglong)uVar9 >> 0x20);
    uVar5 = (uint)((uint)uVar9 < (uint)uVar8);
    uVar1 = uVar7 - uVar6;
    if (uVar7 < uVar6 || uVar1 < uVar5) {
                    /* WARNING: Subroutine does not return */
      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);
    }
    lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));
    lVar11 = FUN_0003aff0(uVar3);
    if (lVar10 == lVar11) {
      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);
      *(undefined4 *)(param_4 + 0x54) = uVar3;
      return;
    }
  }
  *(undefined4 *)(param_4 + 0x54) = uVar3;
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00017140
ADD EBX,0x35df7
SUB ESP,0x1c
MOV ESI,dword ptr [ESP + 0x30]
CMP EAX,0x1
JZ 0x00042300
CMP EAX,0x2
JNZ 0x00042335
LEA EAX,[EBX + 0xfffe2c44]
SUB ESP,0xc
LEA EDI,[EBX + 0x97bc]
PUSH ESI
PUSH ECX
PUSH EDX
MOV dword ptr [ESP + 0x20],EDX
MOV dword ptr [ESP + 0x24],ECX
PUSH dword ptr [EDI]
PUSH EAX
CALL 0x00039930
ADD ESP,0x14
PUSH EAX
MOV EDI,EAX
CALL 0x0003ca60
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xc]
OR dword ptr [EAX + 0x10],0x1
MOV EAX,EDX
MOV EDX,ECX
OR EDX,EAX
JNZ 0x000422a4
MOV EAX,dword ptr [ESI + 0x50]
TEST EAX,EAX
JZ 0x000422a1
SUB ESP,0xc
PUSH EAX
CALL 0x0003aff0
ADD ESP,0x10
OR EDX,EAX
JNZ 0x00042367
SUB ESP,0x4
PUSH dword ptr [EBX + 0xffffffd0]
PUSH dword ptr [EBX + 0xffffff68]
PUSH dword ptr [ESI + 0x50]
CALL 0x000382f0
ADD ESP,0x10
MOV dword ptr [ESI + 0x50],EDI
MOV EAX,dword ptr [ESI + 0x54]
TEST EAX,EAX
JZ 0x000422f5
SUB ESP,0xc
PUSH EAX
CALL 0x0003aff0
MOV dword ptr [ESP],EDI
MOV dword ptr [ESP + 0x18],EDX
MOV EBP,EAX
CALL 0x0003aff0
ADD ESP,0x10
CMP EAX,EBP
MOV EAX,EDX
SBB EAX,dword ptr [ESP + 0x8]
JC 0x0004234e
SUB ESP,0xc
PUSH dword ptr [ESI + 0x54]
CALL 0x0003aff0
MOV dword ptr [ESP],EDI
MOV dword ptr [ESP + 0x18],EDX
MOV EBP,EAX
CALL 0x0003aff0
ADD ESP,0x10
XOR EDX,dword ptr [ESP + 0x8]
XOR EBP,EAX
OR EDX,EBP
JZ 0x00042310
MOV dword ptr [ESI + 0x54],EDI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBX + 0xfffe2c41]
JMP 0x0004222e
SUB ESP,0x4
PUSH dword ptr [EBX + 0xffffffd0]
PUSH dword ptr [EBX + 0xffffff68]
PUSH dword ptr [ESI + 0x54]
CALL 0x000382f0
ADD ESP,0x10
MOV dword ptr [ESI + 0x54],EDI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBX + 0xfffe64bc]
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xfffe2c47]
PUSH 0x5c7
PUSH EAX
CALL 0x0002cfc0
PUSH EAX
LEA EAX,[EBX + 0xfffe64bc]
PUSH EAX
LEA EAX,[EBX + 0xfffe2c47]
PUSH 0x5e3
PUSH EAX
CALL 0x0002cfc0
LEA EAX,[EBX + 0xfffe64bc]
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xfffe2c47]
PUSH 0x5da
PUSH EAX
CALL 0x0002cfc0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_00042200(int param_1,int param_2,int param_3,int param_4)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  longlong lVar10;\n  longlong lVar11;\n  \n  if (param_1 == 1) {\n    puVar2 = &DAT_0005ac41;\n  }\n  else {\n    if (param_1 != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }\n  uVar3 = FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4);\n  iVar4 = FUN_0003ca60(uVar3);\n  *(uint *)(iVar4 + 0x10) = *(uint *)(iVar4 + 0x10) | 1;\n  if (param_3 == 0 && param_2 == 0) {\n    if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }\n    *(undefined4 *)(param_4 + 0x50) = uVar3;\n  }\n  if (*(int *)(param_4 + 0x54) != 0) {\n    uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));\n    uVar6 = (uint)((ulonglong)uVar8 >> 0x20);\n    uVar9 = FUN_0003aff0(uVar3);\n    uVar7 = (uint)((ulonglong)uVar9 >> 0x20);\n    uVar5 = (uint)((uint)uVar9 < (uint)uVar8);\n    uVar1 = uVar7 - uVar6;\n    if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }\n    lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));\n    lVar11 = FUN_0003aff0(uVar3);\n    if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }\n  }\n  *(undefined4 *)(param_4 + 0x54) = uVar3;\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_00042200(int param_1,int param_2,int param_3,int param_4)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  longlong lVar10;\n  longlong lVar11;\n  \n  if (param_1 == 1) {\n    puVar2 = &DAT_0005ac41;\n  }\n  else {\n    if (param_1 != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }\n  uVar3 = FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4);\n  iVar4 = FUN_0003ca60(uVar3);\n  *(uint *)(iVar4 + 0x10) = *(uint *)(iVar4 + 0x10) | 1;\n  if (param_3 == 0 && param_2 == 0) {\n    if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }\n    *(undefined4 *)(param_4 + 0x50) = uVar3;\n  }\n  if (*(int *)(param_4 + 0x54) != 0) {\n    uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));\n    uVar6 = (uint)((ulonglong)uVar8 >> 0x20);\n    uVar9 = FUN_0003aff0(uVar3);\n    uVar7 = (uint)((ulonglong)uVar9 >> 0x20);\n    uVar5 = (uint)((uint)uVar9 < (uint)uVar8);\n    uVar1 = uVar7 - uVar6;\n    if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }\n    lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));\n    lVar11 = FUN_0003aff0(uVar3);\n    if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }\n  }\n  *(undefined4 *)(param_4 + 0x54) = uVar3;\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00042200(int param_1,int param_2,int param_3,int param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  longlong lVar10;\n  longlong lVar11;\n  \n  if (param_1 == 1) {\n    puVar2 = &DAT_0005ac41;\n  }\n  else {\n    if (param_1 != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }\n  uVar3 = FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4);\n  iVar4 = FUN_0003ca60(uVar3);\n  *(uint *)(iVar4 + 0x10) = *(uint *)(iVar4 + 0x10) | 1;\n  if (param_3 == 0 && param_2 == 0) {\n    if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }\n    *(undefined4 *)(param_4 + 0x50) = uVar3;\n  }\n  if (*(int *)(param_4 + 0x54) != 0) {\n    uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));\n    uVar6 = (uint)((ulonglong)uVar8 >> 0x20);\n    uVar9 = FUN_0003aff0(uVar3);\n    uVar7 = (uint)((ulonglong)uVar9 >> 0x20);\n    uVar5 = (uint)((uint)uVar9 < (uint)uVar8);\n    uVar1 = uVar7 - uVar6;\n    if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }\n    lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));\n    lVar11 = FUN_0003aff0(uVar3);\n    if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }\n  }\n  *(undefined4 *)(param_4 + 0x54) = uVar3;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "longlong lVar10;" type_identifier identifier ;) (declaration "longlong lVar11;" type_identifier identifier ;) (if_statement "if (param_1 == 1) {\n    puVar2 = &DAT_0005ac41;\n  }\n  else {\n    if (param_1 != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }" if (parenthesized_expression "(param_1 == 1)" ( (binary_expression "param_1 == 1" identifier == number_literal) )) (compound_statement "{\n    puVar2 = &DAT_0005ac41;\n  }" { (expression_statement "puVar2 = &DAT_0005ac41;" (assignment_expression "puVar2 = &DAT_0005ac41" identifier = (pointer_expression "&DAT_0005ac41" & identifier)) ;) }) (else_clause "else {\n    if (param_1 != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }" else (compound_statement "{\n    if (param_1 != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }" { (if_statement "if (param_1 != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }" if (parenthesized_expression "(param_1 != 2)" ( (binary_expression "param_1 != 2" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }" { comment (expression_statement "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);" (call_expression "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3)" identifier (argument_list "("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3)" ( (string_literal ""../../gas/config/tc-aarch64.c"" " string_content ") , number_literal , (string_literal ""make_mapping_symbol"" " string_content ") , identifier ))) ;) })) (expression_statement "puVar2 = &DAT_0005ac44;" (assignment_expression "puVar2 = &DAT_0005ac44" identifier = (pointer_expression "&DAT_0005ac44" & identifier)) ;) }))) (expression_statement "uVar3 = FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4);" (assignment_expression "uVar3 = FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4)" identifier = (call_expression "FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4)" identifier (argument_list "(puVar2,DAT_000817bc,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar4 = FUN_0003ca60(uVar3);" (assignment_expression "iVar4 = FUN_0003ca60(uVar3)" identifier = (call_expression "FUN_0003ca60(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "*(uint *)(iVar4 + 0x10) = *(uint *)(iVar4 + 0x10) | 1;" (assignment_expression "*(uint *)(iVar4 + 0x10) = *(uint *)(iVar4 + 0x10) | 1" (pointer_expression "*(uint *)(iVar4 + 0x10)" * (cast_expression "(uint *)(iVar4 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar4 + 0x10) | 1" (pointer_expression "*(uint *)(iVar4 + 0x10)" * (cast_expression "(uint *)(iVar4 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) | number_literal)) ;) (if_statement "if (param_3 == 0 && param_2 == 0) {\n    if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }\n    *(undefined4 *)(param_4 + 0x50) = uVar3;\n  }" if (parenthesized_expression "(param_3 == 0 && param_2 == 0)" ( (binary_expression "param_3 == 0 && param_2 == 0" (binary_expression "param_3 == 0" identifier == number_literal) && (binary_expression "param_2 == 0" identifier == number_literal)) )) (compound_statement "{\n    if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }\n    *(undefined4 *)(param_4 + 0x50) = uVar3;\n  }" { (if_statement "if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }" if (parenthesized_expression "(*(int *)(param_4 + 0x50) != 0)" ( (binary_expression "*(int *)(param_4 + 0x50) != 0" (pointer_expression "*(int *)(param_4 + 0x50)" * (cast_expression "(int *)(param_4 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x50)" ( (binary_expression "param_4 + 0x50" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }" { (expression_statement "uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));" (assignment_expression "uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50))" identifier = (call_expression "FUN_0003aff0(*(int *)(param_4 + 0x50))" identifier (argument_list "(*(int *)(param_4 + 0x50))" ( (pointer_expression "*(int *)(param_4 + 0x50)" * (cast_expression "(int *)(param_4 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x50)" ( (binary_expression "param_4 + 0x50" identifier + number_literal) )))) )))) ;) (expression_statement "uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;" (assignment_expression "uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8" identifier = (binary_expression "(uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8" (call_expression "(uint)((ulonglong)uVar8 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar8 >> 0x20)" ( (binary_expression "(ulonglong)uVar8 >> 0x20" (cast_expression "(ulonglong)uVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) | (cast_expression "(uint)uVar8" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (uVar5 != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }" { comment (expression_statement "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);" (call_expression "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5)" identifier (argument_list "("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5)" ( (string_literal ""../../gas/config/tc-aarch64.c"" " string_content ") , number_literal , (string_literal ""make_mapping_symbol"" " string_content ") , identifier ))) ;) })) (expression_statement "FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);" (call_expression "FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0)" identifier (argument_list "(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0)" ( (pointer_expression "*(undefined4 *)(param_4 + 0x50)" * (cast_expression "(undefined4 *)(param_4 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x50)" ( (binary_expression "param_4 + 0x50" identifier + number_literal) )))) , identifier , identifier ))) ;) })) (expression_statement "*(undefined4 *)(param_4 + 0x50) = uVar3;" (assignment_expression "*(undefined4 *)(param_4 + 0x50) = uVar3" (pointer_expression "*(undefined4 *)(param_4 + 0x50)" * (cast_expression "(undefined4 *)(param_4 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x50)" ( (binary_expression "param_4 + 0x50" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(int *)(param_4 + 0x54) != 0) {\n    uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));\n    uVar6 = (uint)((ulonglong)uVar8 >> 0x20);\n    uVar9 = FUN_0003aff0(uVar3);\n    uVar7 = (uint)((ulonglong)uVar9 >> 0x20);\n    uVar5 = (uint)((uint)uVar9 < (uint)uVar8);\n    uVar1 = uVar7 - uVar6;\n    if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }\n    lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));\n    lVar11 = FUN_0003aff0(uVar3);\n    if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }\n  }" if (parenthesized_expression "(*(int *)(param_4 + 0x54) != 0)" ( (binary_expression "*(int *)(param_4 + 0x54) != 0" (pointer_expression "*(int *)(param_4 + 0x54)" * (cast_expression "(int *)(param_4 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));\n    uVar6 = (uint)((ulonglong)uVar8 >> 0x20);\n    uVar9 = FUN_0003aff0(uVar3);\n    uVar7 = (uint)((ulonglong)uVar9 >> 0x20);\n    uVar5 = (uint)((uint)uVar9 < (uint)uVar8);\n    uVar1 = uVar7 - uVar6;\n    if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }\n    lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));\n    lVar11 = FUN_0003aff0(uVar3);\n    if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }\n  }" { (expression_statement "uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));" (assignment_expression "uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54))" identifier = (call_expression "FUN_0003aff0(*(int *)(param_4 + 0x54))" identifier (argument_list "(*(int *)(param_4 + 0x54))" ( (pointer_expression "*(int *)(param_4 + 0x54)" * (cast_expression "(int *)(param_4 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) )))) )))) ;) (expression_statement "uVar6 = (uint)((ulonglong)uVar8 >> 0x20);" (assignment_expression "uVar6 = (uint)((ulonglong)uVar8 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar8 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar8 >> 0x20)" ( (binary_expression "(ulonglong)uVar8 >> 0x20" (cast_expression "(ulonglong)uVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar9 = FUN_0003aff0(uVar3);" (assignment_expression "uVar9 = FUN_0003aff0(uVar3)" identifier = (call_expression "FUN_0003aff0(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "uVar7 = (uint)((ulonglong)uVar9 >> 0x20);" (assignment_expression "uVar7 = (uint)((ulonglong)uVar9 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar9 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar5 = (uint)((uint)uVar9 < (uint)uVar8);" (assignment_expression "uVar5 = (uint)((uint)uVar9 < (uint)uVar8)" identifier = (call_expression "(uint)((uint)uVar9 < (uint)uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar9 < (uint)uVar8)" ( (binary_expression "(uint)uVar9 < (uint)uVar8" (cast_expression "(uint)uVar9" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(uint)uVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "uVar1 = uVar7 - uVar6;" (assignment_expression "uVar1 = uVar7 - uVar6" identifier = (binary_expression "uVar7 - uVar6" identifier - identifier)) ;) (if_statement "if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }" if (parenthesized_expression "(uVar7 < uVar6 || uVar1 < uVar5)" ( (binary_expression "uVar7 < uVar6 || uVar1 < uVar5" (binary_expression "uVar7 < uVar6" identifier < identifier) || (binary_expression "uVar1 < uVar5" identifier < identifier)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }" { comment (expression_statement "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);" (call_expression "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5)" identifier (argument_list "("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5)" ( (string_literal ""../../gas/config/tc-aarch64.c"" " string_content ") , number_literal , (string_literal ""make_mapping_symbol"" " string_content ") , (binary_expression "uVar1 - uVar5" identifier - identifier) ))) ;) })) (expression_statement "lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));" (assignment_expression "lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54))" identifier = (call_expression "FUN_0003aff0(*(undefined4 *)(param_4 + 0x54))" identifier (argument_list "(*(undefined4 *)(param_4 + 0x54))" ( (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) )))) )))) ;) (expression_statement "lVar11 = FUN_0003aff0(uVar3);" (assignment_expression "lVar11 = FUN_0003aff0(uVar3)" identifier = (call_expression "FUN_0003aff0(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (if_statement "if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }" if (parenthesized_expression "(lVar10 == lVar11)" ( (binary_expression "lVar10 == lVar11" identifier == identifier) )) (compound_statement "{\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }" { (expression_statement "FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);" (call_expression "FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0)" identifier (argument_list "(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0)" ( (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x54) = uVar3;" (assignment_expression "*(undefined4 *)(param_4 + 0x54) = uVar3" (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) })) (expression_statement "*(undefined4 *)(param_4 + 0x54) = uVar3;" (assignment_expression "*(undefined4 *)(param_4 + 0x54) = uVar3" (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 make_mapping_symbol(mstate state,valueT value,fragS *frag)\n\n{\n  symbolS *psVar1;\n  char *name;\n  symbolS *s;\n  asymbol *paVar2;\n  int in_ECX;\n  uint uVar3;\n  uint uVar4;\n  valueT vVar5;\n  valueT vVar6;\n  \n  if (state == MAP_DATA) {\n    name = "$d";\n  }\n  else {\n    if (state != MAP_INSN) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol");\n    }\n    name = "$x";\n  }\n  s = symbol_new(name,now_seg,CONCAT44(in_ECX,frag),(fragS *)value);\n  paVar2 = symbol_get_bfdsym(s);\n  paVar2->flags = paVar2->flags | 1;\n  if (in_ECX == 0 && frag == (fragS *)0x0) {\n    psVar1 = (((fragS *)value)->tc_frag_data).first_map;\n    if (psVar1 != (symbolS *)0x0) {\n      vVar5 = S_GET_VALUE(psVar1);\n      if (vVar5 != 0) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol");\n      }\n      symbol_remove((((fragS *)value)->tc_frag_data).first_map,(symbolS **)PTR_symbol_rootP_00077f68\n                    ,(symbolS **)PTR_symbol_lastP_00077fd0);\n    }\n    (((fragS *)value)->tc_frag_data).first_map = s;\n  }\n  psVar1 = (((fragS *)value)->tc_frag_data).last_map;\n  if (psVar1 != (symbolS *)0x0) {\n    vVar5 = S_GET_VALUE(psVar1);\n    uVar3 = (uint)(vVar5 >> 0x20);\n    vVar6 = S_GET_VALUE(s);\n    uVar4 = (uint)(vVar6 >> 0x20);\n    if (uVar4 < uVar3 || uVar4 - uVar3 < (uint)((uint)vVar6 < (uint)vVar5)) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol");\n    }\n    vVar5 = S_GET_VALUE((((fragS *)value)->tc_frag_data).last_map);\n    vVar6 = S_GET_VALUE(s);\n    if (vVar6 == vVar5) {\n      symbol_remove((((fragS *)value)->tc_frag_data).last_map,(symbolS **)PTR_symbol_rootP_00077f68,\n                    (symbolS **)PTR_symbol_lastP_00077fd0);\n      (((fragS *)value)->tc_frag_data).last_map = s;\n      return;\n    }\n  }\n  (((fragS *)value)->tc_frag_data).last_map = s;\n  return;\n}\n\n" comment (function_definition "void __regparm3 make_mapping_symbol(mstate state,valueT value,fragS *frag)\n\n{\n  symbolS *psVar1;\n  char *name;\n  symbolS *s;\n  asymbol *paVar2;\n  int in_ECX;\n  uint uVar3;\n  uint uVar4;\n  valueT vVar5;\n  valueT vVar6;\n  \n  if (state == MAP_DATA) {\n    name = "$d";\n  }\n  else {\n    if (state != MAP_INSN) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol");\n    }\n    name = "$x";\n  }\n  s = symbol_new(name,now_seg,CONCAT44(in_ECX,frag),(fragS *)value);\n  paVar2 = symbol_get_bfdsym(s);\n  paVar2->flags = paVar2->flags | 1;\n  if (in_ECX == 0 && frag == (fragS *)0x0) {\n    psVar1 = (((fragS *)value)->tc_frag_data).first_map;\n    if (psVar1 != (symbolS *)0x0) {\n      vVar5 = S_GET_VALUE(psVar1);\n      if (vVar5 != 0) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol");\n      }\n      symbol_remove((((fragS *)value)->tc_frag_data).first_map,(symbolS **)PTR_symbol_rootP_00077f68\n                    ,(symbolS **)PTR_symbol_lastP_00077fd0);\n    }\n    (((fragS *)value)->tc_frag_data).first_map = s;\n  }\n  psVar1 = (((fragS *)value)->tc_frag_data).last_map;\n  if (psVar1 != (symbolS *)0x0) {\n    vVar5 = S_GET_VALUE(psVar1);\n    uVar3 = (uint)(vVar5 >> 0x20);\n    vVar6 = S_GET_VALUE(s);\n    uVar4 = (uint)(vVar6 >> 0x20);\n    if (uVar4 < uVar3 || uVar4 - uVar3 < (uint)((uint)vVar6 < (uint)vVar5)) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol");\n    }\n    vVar5 = S_GET_VALUE((((fragS *)value)->tc_frag_data).last_map);\n    vVar6 = S_GET_VALUE(s);\n    if (vVar6 == vVar5) {\n      symbol_remove((((fragS *)value)->tc_frag_data).last_map,(symbolS **)PTR_symbol_rootP_00077f68,\n                    (symbolS **)PTR_symbol_lastP_00077fd0);\n      (((fragS *)value)->tc_frag_data).last_map = s;\n      return;\n    }\n  }\n  (((fragS *)value)->tc_frag_data).last_map = s;\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "make_mapping_symbol(mstate state,valueT value,fragS *frag)" identifier (parameter_list "(mstate state,valueT value,fragS *frag)" ( (parameter_declaration "mstate state" type_identifier identifier) , (parameter_declaration "valueT value" type_identifier identifier) , (parameter_declaration "fragS *frag" type_identifier (pointer_declarator "*frag" * identifier)) ))) (compound_statement "{\n  symbolS *psVar1;\n  char *name;\n  symbolS *s;\n  asymbol *paVar2;\n  int in_ECX;\n  uint uVar3;\n  uint uVar4;\n  valueT vVar5;\n  valueT vVar6;\n  \n  if (state == MAP_DATA) {\n    name = "$d";\n  }\n  else {\n    if (state != MAP_INSN) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol");\n    }\n    name = "$x";\n  }\n  s = symbol_new(name,now_seg,CONCAT44(in_ECX,frag),(fragS *)value);\n  paVar2 = symbol_get_bfdsym(s);\n  paVar2->flags = paVar2->flags | 1;\n  if (in_ECX == 0 && frag == (fragS *)0x0) {\n    psVar1 = (((fragS *)value)->tc_frag_data).first_map;\n    if (psVar1 != (symbolS *)0x0) {\n      vVar5 = S_GET_VALUE(psVar1);\n      if (vVar5 != 0) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol");\n      }\n      symbol_remove((((fragS *)value)->tc_frag_data).first_map,(symbolS **)PTR_symbol_rootP_00077f68\n                    ,(symbolS **)PTR_symbol_lastP_00077fd0);\n    }\n    (((fragS *)value)->tc_frag_data).first_map = s;\n  }\n  psVar1 = (((fragS *)value)->tc_frag_data).last_map;\n  if (psVar1 != (symbolS *)0x0) {\n    vVar5 = S_GET_VALUE(psVar1);\n    uVar3 = (uint)(vVar5 >> 0x20);\n    vVar6 = S_GET_VALUE(s);\n    uVar4 = (uint)(vVar6 >> 0x20);\n    if (uVar4 < uVar3 || uVar4 - uVar3 < (uint)((uint)vVar6 < (uint)vVar5)) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol");\n    }\n    vVar5 = S_GET_VALUE((((fragS *)value)->tc_frag_data).last_map);\n    vVar6 = S_GET_VALUE(s);\n    if (vVar6 == vVar5) {\n      symbol_remove((((fragS *)value)->tc_frag_data).last_map,(symbolS **)PTR_symbol_rootP_00077f68,\n                    (symbolS **)PTR_symbol_lastP_00077fd0);\n      (((fragS *)value)->tc_frag_data).last_map = s;\n      return;\n    }\n  }\n  (((fragS *)value)->tc_frag_data).last_map = s;\n  return;\n}" { (declaration "symbolS *psVar1;" type_identifier (pointer_declarator "*psVar1" * identifier) ;) (declaration "char *name;" primitive_type (pointer_declarator "*name" * identifier) ;) (declaration "symbolS *s;" type_identifier (pointer_declarator "*s" * identifier) ;) (declaration "asymbol *paVar2;" type_identifier (pointer_declarator "*paVar2" * identifier) ;) (declaration "int in_ECX;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "valueT vVar5;" type_identifier identifier ;) (declaration "valueT vVar6;" type_identifier identifier ;) (if_statement "if (state == MAP_DATA) {\n    name = "$d";\n  }\n  else {\n    if (state != MAP_INSN) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol");\n    }\n    name = "$x";\n  }" if (parenthesized_expression "(state == MAP_DATA)" ( (binary_expression "state == MAP_DATA" identifier == identifier) )) (compound_statement "{\n    name = "$d";\n  }" { (expression_statement "name = "$d";" (assignment_expression "name = "$d"" identifier = (string_literal ""$d"" " string_content ")) ;) }) (else_clause "else {\n    if (state != MAP_INSN) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol");\n    }\n    name = "$x";\n  }" else (compound_statement "{\n    if (state != MAP_INSN) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol");\n    }\n    name = "$x";\n  }" { (if_statement "if (state != MAP_INSN) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol");\n    }" if (parenthesized_expression "(state != MAP_INSN)" ( (binary_expression "state != MAP_INSN" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol");\n    }" { comment (expression_statement "as_abort("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol");" (call_expression "as_abort("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol")" identifier (argument_list "("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol")" ( (string_literal ""../../gas/config/tc-aarch64.c"" " string_content ") , number_literal , (string_literal ""make_mapping_symbol"" " string_content ") ))) ;) })) (expression_statement "name = "$x";" (assignment_expression "name = "$x"" identifier = (string_literal ""$x"" " string_content ")) ;) }))) (expression_statement "s = symbol_new(name,now_seg,CONCAT44(in_ECX,frag),(fragS *)value);" (assignment_expression "s = symbol_new(name,now_seg,CONCAT44(in_ECX,frag),(fragS *)value)" identifier = (call_expression "symbol_new(name,now_seg,CONCAT44(in_ECX,frag),(fragS *)value)" identifier (argument_list "(name,now_seg,CONCAT44(in_ECX,frag),(fragS *)value)" ( identifier , identifier , (call_expression "CONCAT44(in_ECX,frag)" identifier (argument_list "(in_ECX,frag)" ( identifier , identifier ))) , (cast_expression "(fragS *)value" ( (type_descriptor "fragS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "paVar2 = symbol_get_bfdsym(s);" (assignment_expression "paVar2 = symbol_get_bfdsym(s)" identifier = (call_expression "symbol_get_bfdsym(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "paVar2->flags = paVar2->flags | 1;" (assignment_expression "paVar2->flags = paVar2->flags | 1" (field_expression "paVar2->flags" identifier -> field_identifier) = (binary_expression "paVar2->flags | 1" (field_expression "paVar2->flags" identifier -> field_identifier) | number_literal)) ;) (if_statement "if (in_ECX == 0 && frag == (fragS *)0x0) {\n    psVar1 = (((fragS *)value)->tc_frag_data).first_map;\n    if (psVar1 != (symbolS *)0x0) {\n      vVar5 = S_GET_VALUE(psVar1);\n      if (vVar5 != 0) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol");\n      }\n      symbol_remove((((fragS *)value)->tc_frag_data).first_map,(symbolS **)PTR_symbol_rootP_00077f68\n                    ,(symbolS **)PTR_symbol_lastP_00077fd0);\n    }\n    (((fragS *)value)->tc_frag_data).first_map = s;\n  }" if (parenthesized_expression "(in_ECX == 0 && frag == (fragS *)0x0)" ( (binary_expression "in_ECX == 0 && frag == (fragS *)0x0" (binary_expression "in_ECX == 0" identifier == number_literal) && (binary_expression "frag == (fragS *)0x0" identifier == (cast_expression "(fragS *)0x0" ( (type_descriptor "fragS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n    psVar1 = (((fragS *)value)->tc_frag_data).first_map;\n    if (psVar1 != (symbolS *)0x0) {\n      vVar5 = S_GET_VALUE(psVar1);\n      if (vVar5 != 0) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol");\n      }\n      symbol_remove((((fragS *)value)->tc_frag_data).first_map,(symbolS **)PTR_symbol_rootP_00077f68\n                    ,(symbolS **)PTR_symbol_lastP_00077fd0);\n    }\n    (((fragS *)value)->tc_frag_data).first_map = s;\n  }" { (expression_statement "psVar1 = (((fragS *)value)->tc_frag_data).first_map;" (assignment_expression "psVar1 = (((fragS *)value)->tc_frag_data).first_map" identifier = (field_expression "(((fragS *)value)->tc_frag_data).first_map" (parenthesized_expression "(((fragS *)value)->tc_frag_data)" ( (field_expression "((fragS *)value)->tc_frag_data" (parenthesized_expression "((fragS *)value)" ( (cast_expression "(fragS *)value" ( (type_descriptor "fragS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier)) ;) (if_statement "if (psVar1 != (symbolS *)0x0) {\n      vVar5 = S_GET_VALUE(psVar1);\n      if (vVar5 != 0) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol");\n      }\n      symbol_remove((((fragS *)value)->tc_frag_data).first_map,(symbolS **)PTR_symbol_rootP_00077f68\n                    ,(symbolS **)PTR_symbol_lastP_00077fd0);\n    }" if (parenthesized_expression "(psVar1 != (symbolS *)0x0)" ( (binary_expression "psVar1 != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      vVar5 = S_GET_VALUE(psVar1);\n      if (vVar5 != 0) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol");\n      }\n      symbol_remove((((fragS *)value)->tc_frag_data).first_map,(symbolS **)PTR_symbol_rootP_00077f68\n                    ,(symbolS **)PTR_symbol_lastP_00077fd0);\n    }" { (expression_statement "vVar5 = S_GET_VALUE(psVar1);" (assignment_expression "vVar5 = S_GET_VALUE(psVar1)" identifier = (call_expression "S_GET_VALUE(psVar1)" identifier (argument_list "(psVar1)" ( identifier )))) ;) (if_statement "if (vVar5 != 0) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol");\n      }" if (parenthesized_expression "(vVar5 != 0)" ( (binary_expression "vVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol");\n      }" { comment (expression_statement "as_abort("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol");" (call_expression "as_abort("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol")" identifier (argument_list "("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol")" ( (string_literal ""../../gas/config/tc-aarch64.c"" " string_content ") , number_literal , (string_literal ""make_mapping_symbol"" " string_content ") ))) ;) })) (expression_statement "symbol_remove((((fragS *)value)->tc_frag_data).first_map,(symbolS **)PTR_symbol_rootP_00077f68\n                    ,(symbolS **)PTR_symbol_lastP_00077fd0);" (call_expression "symbol_remove((((fragS *)value)->tc_frag_data).first_map,(symbolS **)PTR_symbol_rootP_00077f68\n                    ,(symbolS **)PTR_symbol_lastP_00077fd0)" identifier (argument_list "((((fragS *)value)->tc_frag_data).first_map,(symbolS **)PTR_symbol_rootP_00077f68\n                    ,(symbolS **)PTR_symbol_lastP_00077fd0)" ( (field_expression "(((fragS *)value)->tc_frag_data).first_map" (parenthesized_expression "(((fragS *)value)->tc_frag_data)" ( (field_expression "((fragS *)value)->tc_frag_data" (parenthesized_expression "((fragS *)value)" ( (cast_expression "(fragS *)value" ( (type_descriptor "fragS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier) , (cast_expression "(symbolS **)PTR_symbol_rootP_00077f68" ( (type_descriptor "symbolS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) , (cast_expression "(symbolS **)PTR_symbol_lastP_00077fd0" ( (type_descriptor "symbolS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) ))) ;) })) (expression_statement "(((fragS *)value)->tc_frag_data).first_map = s;" (assignment_expression "(((fragS *)value)->tc_frag_data).first_map = s" (field_expression "(((fragS *)value)->tc_frag_data).first_map" (parenthesized_expression "(((fragS *)value)->tc_frag_data)" ( (field_expression "((fragS *)value)->tc_frag_data" (parenthesized_expression "((fragS *)value)" ( (cast_expression "(fragS *)value" ( (type_descriptor "fragS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier) = identifier) ;) })) (expression_statement "psVar1 = (((fragS *)value)->tc_frag_data).last_map;" (assignment_expression "psVar1 = (((fragS *)value)->tc_frag_data).last_map" identifier = (field_expression "(((fragS *)value)->tc_frag_data).last_map" (parenthesized_expression "(((fragS *)value)->tc_frag_data)" ( (field_expression "((fragS *)value)->tc_frag_data" (parenthesized_expression "((fragS *)value)" ( (cast_expression "(fragS *)value" ( (type_descriptor "fragS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier)) ;) (if_statement "if (psVar1 != (symbolS *)0x0) {\n    vVar5 = S_GET_VALUE(psVar1);\n    uVar3 = (uint)(vVar5 >> 0x20);\n    vVar6 = S_GET_VALUE(s);\n    uVar4 = (uint)(vVar6 >> 0x20);\n    if (uVar4 < uVar3 || uVar4 - uVar3 < (uint)((uint)vVar6 < (uint)vVar5)) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol");\n    }\n    vVar5 = S_GET_VALUE((((fragS *)value)->tc_frag_data).last_map);\n    vVar6 = S_GET_VALUE(s);\n    if (vVar6 == vVar5) {\n      symbol_remove((((fragS *)value)->tc_frag_data).last_map,(symbolS **)PTR_symbol_rootP_00077f68,\n                    (symbolS **)PTR_symbol_lastP_00077fd0);\n      (((fragS *)value)->tc_frag_data).last_map = s;\n      return;\n    }\n  }" if (parenthesized_expression "(psVar1 != (symbolS *)0x0)" ( (binary_expression "psVar1 != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    vVar5 = S_GET_VALUE(psVar1);\n    uVar3 = (uint)(vVar5 >> 0x20);\n    vVar6 = S_GET_VALUE(s);\n    uVar4 = (uint)(vVar6 >> 0x20);\n    if (uVar4 < uVar3 || uVar4 - uVar3 < (uint)((uint)vVar6 < (uint)vVar5)) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol");\n    }\n    vVar5 = S_GET_VALUE((((fragS *)value)->tc_frag_data).last_map);\n    vVar6 = S_GET_VALUE(s);\n    if (vVar6 == vVar5) {\n      symbol_remove((((fragS *)value)->tc_frag_data).last_map,(symbolS **)PTR_symbol_rootP_00077f68,\n                    (symbolS **)PTR_symbol_lastP_00077fd0);\n      (((fragS *)value)->tc_frag_data).last_map = s;\n      return;\n    }\n  }" { (expression_statement "vVar5 = S_GET_VALUE(psVar1);" (assignment_expression "vVar5 = S_GET_VALUE(psVar1)" identifier = (call_expression "S_GET_VALUE(psVar1)" identifier (argument_list "(psVar1)" ( identifier )))) ;) (expression_statement "uVar3 = (uint)(vVar5 >> 0x20);" (assignment_expression "uVar3 = (uint)(vVar5 >> 0x20)" identifier = (call_expression "(uint)(vVar5 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(vVar5 >> 0x20)" ( (binary_expression "vVar5 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "vVar6 = S_GET_VALUE(s);" (assignment_expression "vVar6 = S_GET_VALUE(s)" identifier = (call_expression "S_GET_VALUE(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "uVar4 = (uint)(vVar6 >> 0x20);" (assignment_expression "uVar4 = (uint)(vVar6 >> 0x20)" identifier = (call_expression "(uint)(vVar6 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(vVar6 >> 0x20)" ( (binary_expression "vVar6 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (uVar4 < uVar3 || uVar4 - uVar3 < (uint)((uint)vVar6 < (uint)vVar5)) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol");\n    }" if (parenthesized_expression "(uVar4 < uVar3 || uVar4 - uVar3 < (uint)((uint)vVar6 < (uint)vVar5))" ( (binary_expression "uVar4 < uVar3 || uVar4 - uVar3 < (uint)((uint)vVar6 < (uint)vVar5)" (binary_expression "uVar4 < uVar3" identifier < identifier) || (binary_expression "uVar4 - uVar3 < (uint)((uint)vVar6 < (uint)vVar5)" (binary_expression "uVar4 - uVar3" identifier - identifier) < (call_expression "(uint)((uint)vVar6 < (uint)vVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)vVar6 < (uint)vVar5)" ( (binary_expression "(uint)vVar6 < (uint)vVar5" (cast_expression "(uint)vVar6" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(uint)vVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol");\n    }" { comment (expression_statement "as_abort("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol");" (call_expression "as_abort("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol")" identifier (argument_list "("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol")" ( (string_literal ""../../gas/config/tc-aarch64.c"" " string_content ") , number_literal , (string_literal ""make_mapping_symbol"" " string_content ") ))) ;) })) (expression_statement "vVar5 = S_GET_VALUE((((fragS *)value)->tc_frag_data).last_map);" (assignment_expression "vVar5 = S_GET_VALUE((((fragS *)value)->tc_frag_data).last_map)" identifier = (call_expression "S_GET_VALUE((((fragS *)value)->tc_frag_data).last_map)" identifier (argument_list "((((fragS *)value)->tc_frag_data).last_map)" ( (field_expression "(((fragS *)value)->tc_frag_data).last_map" (parenthesized_expression "(((fragS *)value)->tc_frag_data)" ( (field_expression "((fragS *)value)->tc_frag_data" (parenthesized_expression "((fragS *)value)" ( (cast_expression "(fragS *)value" ( (type_descriptor "fragS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier) )))) ;) (expression_statement "vVar6 = S_GET_VALUE(s);" (assignment_expression "vVar6 = S_GET_VALUE(s)" identifier = (call_expression "S_GET_VALUE(s)" identifier (argument_list "(s)" ( identifier )))) ;) (if_statement "if (vVar6 == vVar5) {\n      symbol_remove((((fragS *)value)->tc_frag_data).last_map,(symbolS **)PTR_symbol_rootP_00077f68,\n                    (symbolS **)PTR_symbol_lastP_00077fd0);\n      (((fragS *)value)->tc_frag_data).last_map = s;\n      return;\n    }" if (parenthesized_expression "(vVar6 == vVar5)" ( (binary_expression "vVar6 == vVar5" identifier == identifier) )) (compound_statement "{\n      symbol_remove((((fragS *)value)->tc_frag_data).last_map,(symbolS **)PTR_symbol_rootP_00077f68,\n                    (symbolS **)PTR_symbol_lastP_00077fd0);\n      (((fragS *)value)->tc_frag_data).last_map = s;\n      return;\n    }" { (expression_statement "symbol_remove((((fragS *)value)->tc_frag_data).last_map,(symbolS **)PTR_symbol_rootP_00077f68,\n                    (symbolS **)PTR_symbol_lastP_00077fd0);" (call_expression "symbol_remove((((fragS *)value)->tc_frag_data).last_map,(symbolS **)PTR_symbol_rootP_00077f68,\n                    (symbolS **)PTR_symbol_lastP_00077fd0)" identifier (argument_list "((((fragS *)value)->tc_frag_data).last_map,(symbolS **)PTR_symbol_rootP_00077f68,\n                    (symbolS **)PTR_symbol_lastP_00077fd0)" ( (field_expression "(((fragS *)value)->tc_frag_data).last_map" (parenthesized_expression "(((fragS *)value)->tc_frag_data)" ( (field_expression "((fragS *)value)->tc_frag_data" (parenthesized_expression "((fragS *)value)" ( (cast_expression "(fragS *)value" ( (type_descriptor "fragS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier) , (cast_expression "(symbolS **)PTR_symbol_rootP_00077f68" ( (type_descriptor "symbolS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) , (cast_expression "(symbolS **)PTR_symbol_lastP_00077fd0" ( (type_descriptor "symbolS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) ))) ;) (expression_statement "(((fragS *)value)->tc_frag_data).last_map = s;" (assignment_expression "(((fragS *)value)->tc_frag_data).last_map = s" (field_expression "(((fragS *)value)->tc_frag_data).last_map" (parenthesized_expression "(((fragS *)value)->tc_frag_data)" ( (field_expression "((fragS *)value)->tc_frag_data" (parenthesized_expression "((fragS *)value)" ( (cast_expression "(fragS *)value" ( (type_descriptor "fragS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier) = identifier) ;) (return_statement "return;" return ;) })) })) (expression_statement "(((fragS *)value)->tc_frag_data).last_map = s;" (assignment_expression "(((fragS *)value)->tc_frag_data).last_map = s" (field_expression "(((fragS *)value)->tc_frag_data).last_map" (parenthesized_expression "(((fragS *)value)->tc_frag_data)" ( (field_expression "((fragS *)value)->tc_frag_data" (parenthesized_expression "((fragS *)value)" ( (cast_expression "(fragS *)value" ( (type_descriptor "fragS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_00042200(int param_1,int param_2,int param_3,int param_4)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  longlong lVar10;\n  longlong lVar11;\n  \n  if (param_1 == 1) {\n    puVar2 = &DAT_0005ac41;\n  }\n  else {\n    if (param_1 != 2) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }\n  uVar3 = FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4);\n  iVar4 = FUN_0003ca60(uVar3);\n  *(uint *)(iVar4 + 0x10) = *(uint *)(iVar4 + 0x10) | 1;\n  if (param_3 == 0 && param_2 == 0) {\n    if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }\n    *(undefined4 *)(param_4 + 0x50) = uVar3;\n  }\n  if (*(int *)(param_4 + 0x54) != 0) {\n    uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));\n    uVar6 = (uint)((ulonglong)uVar8 >> 0x20);\n    uVar9 = FUN_0003aff0(uVar3);\n    uVar7 = (uint)((ulonglong)uVar9 >> 0x20);\n    uVar5 = (uint)((uint)uVar9 < (uint)uVar8);\n    uVar1 = uVar7 - uVar6;\n    if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }\n    lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));\n    lVar11 = FUN_0003aff0(uVar3);\n    if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }\n  }\n  *(undefined4 *)(param_4 + 0x54) = uVar3;\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_00042200(int param_1,int param_2,int param_3,int param_4)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  longlong lVar10;\n  longlong lVar11;\n  \n  if (param_1 == 1) {\n    puVar2 = &DAT_0005ac41;\n  }\n  else {\n    if (param_1 != 2) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }\n  uVar3 = FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4);\n  iVar4 = FUN_0003ca60(uVar3);\n  *(uint *)(iVar4 + 0x10) = *(uint *)(iVar4 + 0x10) | 1;\n  if (param_3 == 0 && param_2 == 0) {\n    if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }\n    *(undefined4 *)(param_4 + 0x50) = uVar3;\n  }\n  if (*(int *)(param_4 + 0x54) != 0) {\n    uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));\n    uVar6 = (uint)((ulonglong)uVar8 >> 0x20);\n    uVar9 = FUN_0003aff0(uVar3);\n    uVar7 = (uint)((ulonglong)uVar9 >> 0x20);\n    uVar5 = (uint)((uint)uVar9 < (uint)uVar8);\n    uVar1 = uVar7 - uVar6;\n    if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }\n    lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));\n    lVar11 = FUN_0003aff0(uVar3);\n    if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }\n  }\n  *(undefined4 *)(param_4 + 0x54) = uVar3;\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00042200(int param_1,int param_2,int param_3,int param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  longlong lVar10;\n  longlong lVar11;\n  \n  if (param_1 == 1) {\n    puVar2 = &DAT_0005ac41;\n  }\n  else {\n    if (param_1 != 2) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }\n  uVar3 = FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4);\n  iVar4 = FUN_0003ca60(uVar3);\n  *(uint *)(iVar4 + 0x10) = *(uint *)(iVar4 + 0x10) | 1;\n  if (param_3 == 0 && param_2 == 0) {\n    if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }\n    *(undefined4 *)(param_4 + 0x50) = uVar3;\n  }\n  if (*(int *)(param_4 + 0x54) != 0) {\n    uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));\n    uVar6 = (uint)((ulonglong)uVar8 >> 0x20);\n    uVar9 = FUN_0003aff0(uVar3);\n    uVar7 = (uint)((ulonglong)uVar9 >> 0x20);\n    uVar5 = (uint)((uint)uVar9 < (uint)uVar8);\n    uVar1 = uVar7 - uVar6;\n    if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }\n    lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));\n    lVar11 = FUN_0003aff0(uVar3);\n    if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }\n  }\n  *(undefined4 *)(param_4 + 0x54) = uVar3;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "longlong lVar10;" type_identifier identifier ;) (declaration "longlong lVar11;" type_identifier identifier ;) (if_statement "if (param_1 == 1) {\n    puVar2 = &DAT_0005ac41;\n  }\n  else {\n    if (param_1 != 2) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }" if (parenthesized_expression "(param_1 == 1)" ( (binary_expression "param_1 == 1" identifier == number_literal) )) (compound_statement "{\n    puVar2 = &DAT_0005ac41;\n  }" { (expression_statement "puVar2 = &DAT_0005ac41;" (assignment_expression "puVar2 = &DAT_0005ac41" identifier = (pointer_expression "&DAT_0005ac41" & identifier)) ;) }) (else_clause "else {\n    if (param_1 != 2) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }" else (compound_statement "{\n    if (param_1 != 2) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }" { (if_statement "if (param_1 != 2) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }" if (parenthesized_expression "(param_1 != 2)" ( (binary_expression "param_1 != 2" identifier != number_literal) )) (compound_statement "{\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }" { (expression_statement "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);" (call_expression "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3)" identifier (argument_list "("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3)" ( (string_literal ""../../gas/config/tc-aarch64.c"" " string_content ") , number_literal , (string_literal ""make_mapping_symbol"" " string_content ") , identifier ))) ;) })) (expression_statement "puVar2 = &DAT_0005ac44;" (assignment_expression "puVar2 = &DAT_0005ac44" identifier = (pointer_expression "&DAT_0005ac44" & identifier)) ;) }))) (expression_statement "uVar3 = FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4);" (assignment_expression "uVar3 = FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4)" identifier = (call_expression "FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4)" identifier (argument_list "(puVar2,DAT_000817bc,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar4 = FUN_0003ca60(uVar3);" (assignment_expression "iVar4 = FUN_0003ca60(uVar3)" identifier = (call_expression "FUN_0003ca60(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "*(uint *)(iVar4 + 0x10) = *(uint *)(iVar4 + 0x10) | 1;" (assignment_expression "*(uint *)(iVar4 + 0x10) = *(uint *)(iVar4 + 0x10) | 1" (pointer_expression "*(uint *)(iVar4 + 0x10)" * (cast_expression "(uint *)(iVar4 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar4 + 0x10) | 1" (pointer_expression "*(uint *)(iVar4 + 0x10)" * (cast_expression "(uint *)(iVar4 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) | number_literal)) ;) (if_statement "if (param_3 == 0 && param_2 == 0) {\n    if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }\n    *(undefined4 *)(param_4 + 0x50) = uVar3;\n  }" if (parenthesized_expression "(param_3 == 0 && param_2 == 0)" ( (binary_expression "param_3 == 0 && param_2 == 0" (binary_expression "param_3 == 0" identifier == number_literal) && (binary_expression "param_2 == 0" identifier == number_literal)) )) (compound_statement "{\n    if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }\n    *(undefined4 *)(param_4 + 0x50) = uVar3;\n  }" { (if_statement "if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }" if (parenthesized_expression "(*(int *)(param_4 + 0x50) != 0)" ( (binary_expression "*(int *)(param_4 + 0x50) != 0" (pointer_expression "*(int *)(param_4 + 0x50)" * (cast_expression "(int *)(param_4 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x50)" ( (binary_expression "param_4 + 0x50" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }" { (expression_statement "uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));" (assignment_expression "uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50))" identifier = (call_expression "FUN_0003aff0(*(int *)(param_4 + 0x50))" identifier (argument_list "(*(int *)(param_4 + 0x50))" ( (pointer_expression "*(int *)(param_4 + 0x50)" * (cast_expression "(int *)(param_4 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x50)" ( (binary_expression "param_4 + 0x50" identifier + number_literal) )))) )))) ;) (expression_statement "uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;" (assignment_expression "uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8" identifier = (binary_expression "(uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8" (call_expression "(uint)((ulonglong)uVar8 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar8 >> 0x20)" ( (binary_expression "(ulonglong)uVar8 >> 0x20" (cast_expression "(ulonglong)uVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) | (cast_expression "(uint)uVar8" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (uVar5 != 0) {\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }" { (expression_statement "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);" (call_expression "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5)" identifier (argument_list "("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5)" ( (string_literal ""../../gas/config/tc-aarch64.c"" " string_content ") , number_literal , (string_literal ""make_mapping_symbol"" " string_content ") , identifier ))) ;) })) (expression_statement "FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);" (call_expression "FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0)" identifier (argument_list "(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0)" ( (pointer_expression "*(undefined4 *)(param_4 + 0x50)" * (cast_expression "(undefined4 *)(param_4 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x50)" ( (binary_expression "param_4 + 0x50" identifier + number_literal) )))) , identifier , identifier ))) ;) })) (expression_statement "*(undefined4 *)(param_4 + 0x50) = uVar3;" (assignment_expression "*(undefined4 *)(param_4 + 0x50) = uVar3" (pointer_expression "*(undefined4 *)(param_4 + 0x50)" * (cast_expression "(undefined4 *)(param_4 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x50)" ( (binary_expression "param_4 + 0x50" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(int *)(param_4 + 0x54) != 0) {\n    uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));\n    uVar6 = (uint)((ulonglong)uVar8 >> 0x20);\n    uVar9 = FUN_0003aff0(uVar3);\n    uVar7 = (uint)((ulonglong)uVar9 >> 0x20);\n    uVar5 = (uint)((uint)uVar9 < (uint)uVar8);\n    uVar1 = uVar7 - uVar6;\n    if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }\n    lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));\n    lVar11 = FUN_0003aff0(uVar3);\n    if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }\n  }" if (parenthesized_expression "(*(int *)(param_4 + 0x54) != 0)" ( (binary_expression "*(int *)(param_4 + 0x54) != 0" (pointer_expression "*(int *)(param_4 + 0x54)" * (cast_expression "(int *)(param_4 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));\n    uVar6 = (uint)((ulonglong)uVar8 >> 0x20);\n    uVar9 = FUN_0003aff0(uVar3);\n    uVar7 = (uint)((ulonglong)uVar9 >> 0x20);\n    uVar5 = (uint)((uint)uVar9 < (uint)uVar8);\n    uVar1 = uVar7 - uVar6;\n    if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }\n    lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));\n    lVar11 = FUN_0003aff0(uVar3);\n    if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }\n  }" { (expression_statement "uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));" (assignment_expression "uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54))" identifier = (call_expression "FUN_0003aff0(*(int *)(param_4 + 0x54))" identifier (argument_list "(*(int *)(param_4 + 0x54))" ( (pointer_expression "*(int *)(param_4 + 0x54)" * (cast_expression "(int *)(param_4 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) )))) )))) ;) (expression_statement "uVar6 = (uint)((ulonglong)uVar8 >> 0x20);" (assignment_expression "uVar6 = (uint)((ulonglong)uVar8 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar8 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar8 >> 0x20)" ( (binary_expression "(ulonglong)uVar8 >> 0x20" (cast_expression "(ulonglong)uVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar9 = FUN_0003aff0(uVar3);" (assignment_expression "uVar9 = FUN_0003aff0(uVar3)" identifier = (call_expression "FUN_0003aff0(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "uVar7 = (uint)((ulonglong)uVar9 >> 0x20);" (assignment_expression "uVar7 = (uint)((ulonglong)uVar9 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar9 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar5 = (uint)((uint)uVar9 < (uint)uVar8);" (assignment_expression "uVar5 = (uint)((uint)uVar9 < (uint)uVar8)" identifier = (call_expression "(uint)((uint)uVar9 < (uint)uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar9 < (uint)uVar8)" ( (binary_expression "(uint)uVar9 < (uint)uVar8" (cast_expression "(uint)uVar9" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(uint)uVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "uVar1 = uVar7 - uVar6;" (assignment_expression "uVar1 = uVar7 - uVar6" identifier = (binary_expression "uVar7 - uVar6" identifier - identifier)) ;) (if_statement "if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }" if (parenthesized_expression "(uVar7 < uVar6 || uVar1 < uVar5)" ( (binary_expression "uVar7 < uVar6 || uVar1 < uVar5" (binary_expression "uVar7 < uVar6" identifier < identifier) || (binary_expression "uVar1 < uVar5" identifier < identifier)) )) (compound_statement "{\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }" { (expression_statement "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);" (call_expression "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5)" identifier (argument_list "("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5)" ( (string_literal ""../../gas/config/tc-aarch64.c"" " string_content ") , number_literal , (string_literal ""make_mapping_symbol"" " string_content ") , (binary_expression "uVar1 - uVar5" identifier - identifier) ))) ;) })) (expression_statement "lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));" (assignment_expression "lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54))" identifier = (call_expression "FUN_0003aff0(*(undefined4 *)(param_4 + 0x54))" identifier (argument_list "(*(undefined4 *)(param_4 + 0x54))" ( (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) )))) )))) ;) (expression_statement "lVar11 = FUN_0003aff0(uVar3);" (assignment_expression "lVar11 = FUN_0003aff0(uVar3)" identifier = (call_expression "FUN_0003aff0(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (if_statement "if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }" if (parenthesized_expression "(lVar10 == lVar11)" ( (binary_expression "lVar10 == lVar11" identifier == identifier) )) (compound_statement "{\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }" { (expression_statement "FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);" (call_expression "FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0)" identifier (argument_list "(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0)" ( (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x54) = uVar3;" (assignment_expression "*(undefined4 *)(param_4 + 0x54) = uVar3" (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) })) (expression_statement "*(undefined4 *)(param_4 + 0x54) = uVar3;" (assignment_expression "*(undefined4 *)(param_4 + 0x54) = uVar3" (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression IDENT < IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , (binary_expression IDENT - IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_00042200(int param_1,int param_2,int param_3,int param_4)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  longlong lVar10;\n  longlong lVar11;\n  \n  if (param_1 == 1) {\n    puVar2 = &DAT_0005ac41;\n  }\n  else {\n    if (param_1 != 2) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }\n  uVar3 = FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4);\n  iVar4 = FUN_0003ca60(uVar3);\n  *(uint *)(iVar4 + 0x10) = *(uint *)(iVar4 + 0x10) | 1;\n  if (param_3 == 0 && param_2 == 0) {\n    if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }\n    *(undefined4 *)(param_4 + 0x50) = uVar3;\n  }\n  if (*(int *)(param_4 + 0x54) != 0) {\n    uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));\n    uVar6 = (uint)((ulonglong)uVar8 >> 0x20);\n    uVar9 = FUN_0003aff0(uVar3);\n    uVar7 = (uint)((ulonglong)uVar9 >> 0x20);\n    uVar5 = (uint)((uint)uVar9 < (uint)uVar8);\n    uVar1 = uVar7 - uVar6;\n    if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }\n    lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));\n    lVar11 = FUN_0003aff0(uVar3);\n    if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }\n  }\n  *(undefined4 *)(param_4 + 0x54) = uVar3;\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00042200(int param_1,int param_2,int param_3,int param_4)" (identifier "FUN_00042200") (parameter_list "(int param_1,int param_2,int param_3,int param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  uint uVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  longlong lVar10;\n  longlong lVar11;\n  \n  if (param_1 == 1) {\n    puVar2 = &DAT_0005ac41;\n  }\n  else {\n    if (param_1 != 2) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }\n  uVar3 = FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4);\n  iVar4 = FUN_0003ca60(uVar3);\n  *(uint *)(iVar4 + 0x10) = *(uint *)(iVar4 + 0x10) | 1;\n  if (param_3 == 0 && param_2 == 0) {\n    if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }\n    *(undefined4 *)(param_4 + 0x50) = uVar3;\n  }\n  if (*(int *)(param_4 + 0x54) != 0) {\n    uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));\n    uVar6 = (uint)((ulonglong)uVar8 >> 0x20);\n    uVar9 = FUN_0003aff0(uVar3);\n    uVar7 = (uint)((ulonglong)uVar9 >> 0x20);\n    uVar5 = (uint)((uint)uVar9 < (uint)uVar8);\n    uVar1 = uVar7 - uVar6;\n    if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }\n    lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));\n    lVar11 = FUN_0003aff0(uVar3);\n    if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }\n  }\n  *(undefined4 *)(param_4 + 0x54) = uVar3;\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "undefined8 uVar9;" (type_identifier "undefined8") (identifier "uVar9") (; ";")) (declaration "longlong lVar10;" (type_identifier "longlong") (identifier "lVar10") (; ";")) (declaration "longlong lVar11;" (type_identifier "longlong") (identifier "lVar11") (; ";")) (if_statement "if (param_1 == 1) {\n    puVar2 = &DAT_0005ac41;\n  }\n  else {\n    if (param_1 != 2) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }" (if "if") (parenthesized_expression "(param_1 == 1)" (( "(") (binary_expression "param_1 == 1" (identifier "param_1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    puVar2 = &DAT_0005ac41;\n  }" ({ "{") (expression_statement "puVar2 = &DAT_0005ac41;" (assignment_expression "puVar2 = &DAT_0005ac41" (identifier "puVar2") (= "=") (pointer_expression "&DAT_0005ac41" (& "&") (identifier "DAT_0005ac41"))) (; ";")) (} "}")) (else_clause "else {\n    if (param_1 != 2) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }" (else "else") (compound_statement "{\n    if (param_1 != 2) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }\n    puVar2 = &DAT_0005ac44;\n  }" ({ "{") (if_statement "if (param_1 != 2) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }" (if "if") (parenthesized_expression "(param_1 != 2)" (( "(") (binary_expression "param_1 != 2" (identifier "param_1") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);\n    }" ({ "{") (expression_statement "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);" (call_expression "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3)" (identifier "FUN_0002cfc0") (argument_list "("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3)" (( "(") (string_literal ""../../gas/config/tc-aarch64.c"" (" """) (string_content "../../gas/config/tc-aarch64.c") (" """)) (, ",") (number_literal "0x5c7") (, ",") (string_literal ""make_mapping_symbol"" (" """) (string_content "make_mapping_symbol") (" """)) (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar2 = &DAT_0005ac44;" (assignment_expression "puVar2 = &DAT_0005ac44" (identifier "puVar2") (= "=") (pointer_expression "&DAT_0005ac44" (& "&") (identifier "DAT_0005ac44"))) (; ";")) (} "}")))) (expression_statement "uVar3 = FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4);" (assignment_expression "uVar3 = FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4)" (identifier "uVar3") (= "=") (call_expression "FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4)" (identifier "FUN_00039930") (argument_list "(puVar2,DAT_000817bc,param_2,param_3,param_4)" (( "(") (identifier "puVar2") (, ",") (identifier "DAT_000817bc") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "iVar4 = FUN_0003ca60(uVar3);" (assignment_expression "iVar4 = FUN_0003ca60(uVar3)" (identifier "iVar4") (= "=") (call_expression "FUN_0003ca60(uVar3)" (identifier "FUN_0003ca60") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "*(uint *)(iVar4 + 0x10) = *(uint *)(iVar4 + 0x10) | 1;" (assignment_expression "*(uint *)(iVar4 + 0x10) = *(uint *)(iVar4 + 0x10) | 1" (pointer_expression "*(uint *)(iVar4 + 0x10)" (* "*") (cast_expression "(uint *)(iVar4 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar4 + 0x10) | 1" (pointer_expression "*(uint *)(iVar4 + 0x10)" (* "*") (cast_expression "(uint *)(iVar4 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (if_statement "if (param_3 == 0 && param_2 == 0) {\n    if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }\n    *(undefined4 *)(param_4 + 0x50) = uVar3;\n  }" (if "if") (parenthesized_expression "(param_3 == 0 && param_2 == 0)" (( "(") (binary_expression "param_3 == 0 && param_2 == 0" (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) (&& "&&") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n    if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }\n    *(undefined4 *)(param_4 + 0x50) = uVar3;\n  }" ({ "{") (if_statement "if (*(int *)(param_4 + 0x50) != 0) {\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }" (if "if") (parenthesized_expression "(*(int *)(param_4 + 0x50) != 0)" (( "(") (binary_expression "*(int *)(param_4 + 0x50) != 0" (pointer_expression "*(int *)(param_4 + 0x50)" (* "*") (cast_expression "(int *)(param_4 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x50)" (( "(") (binary_expression "param_4 + 0x50" (identifier "param_4") (+ "+") (number_literal "0x50")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));\n      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;\n      if (uVar5 != 0) {\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n    }" ({ "{") (expression_statement "uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));" (assignment_expression "uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50))" (identifier "uVar8") (= "=") (call_expression "FUN_0003aff0(*(int *)(param_4 + 0x50))" (identifier "FUN_0003aff0") (argument_list "(*(int *)(param_4 + 0x50))" (( "(") (pointer_expression "*(int *)(param_4 + 0x50)" (* "*") (cast_expression "(int *)(param_4 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x50)" (( "(") (binary_expression "param_4 + 0x50" (identifier "param_4") (+ "+") (number_literal "0x50")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;" (assignment_expression "uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8" (identifier "uVar5") (= "=") (binary_expression "(uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8" (call_expression "(uint)((ulonglong)uVar8 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar8 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar8 >> 0x20" (cast_expression "(ulonglong)uVar8" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "0x20")) () ")"))) (| "|") (cast_expression "(uint)uVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar8")))) (; ";")) (if_statement "if (uVar5 != 0) {\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);\n      }" ({ "{") (expression_statement "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);" (call_expression "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5)" (identifier "FUN_0002cfc0") (argument_list "("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5)" (( "(") (string_literal ""../../gas/config/tc-aarch64.c"" (" """) (string_content "../../gas/config/tc-aarch64.c") (" """)) (, ",") (number_literal "0x5da") (, ",") (string_literal ""make_mapping_symbol"" (" """) (string_content "make_mapping_symbol") (" """)) (, ",") (identifier "uVar5") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);" (call_expression "FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0)" (identifier "FUN_000382f0") (argument_list "(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0)" (( "(") (pointer_expression "*(undefined4 *)(param_4 + 0x50)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x50)" (( "(") (binary_expression "param_4 + 0x50" (identifier "param_4") (+ "+") (number_literal "0x50")) () ")")))) (, ",") (identifier "PTR_DAT_00077f68") (, ",") (identifier "PTR_DAT_00077fd0") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(param_4 + 0x50) = uVar3;" (assignment_expression "*(undefined4 *)(param_4 + 0x50) = uVar3" (pointer_expression "*(undefined4 *)(param_4 + 0x50)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x50)" (( "(") (binary_expression "param_4 + 0x50" (identifier "param_4") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_4 + 0x54) != 0) {\n    uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));\n    uVar6 = (uint)((ulonglong)uVar8 >> 0x20);\n    uVar9 = FUN_0003aff0(uVar3);\n    uVar7 = (uint)((ulonglong)uVar9 >> 0x20);\n    uVar5 = (uint)((uint)uVar9 < (uint)uVar8);\n    uVar1 = uVar7 - uVar6;\n    if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }\n    lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));\n    lVar11 = FUN_0003aff0(uVar3);\n    if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(param_4 + 0x54) != 0)" (( "(") (binary_expression "*(int *)(param_4 + 0x54) != 0" (pointer_expression "*(int *)(param_4 + 0x54)" (* "*") (cast_expression "(int *)(param_4 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x54)" (( "(") (binary_expression "param_4 + 0x54" (identifier "param_4") (+ "+") (number_literal "0x54")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));\n    uVar6 = (uint)((ulonglong)uVar8 >> 0x20);\n    uVar9 = FUN_0003aff0(uVar3);\n    uVar7 = (uint)((ulonglong)uVar9 >> 0x20);\n    uVar5 = (uint)((uint)uVar9 < (uint)uVar8);\n    uVar1 = uVar7 - uVar6;\n    if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }\n    lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));\n    lVar11 = FUN_0003aff0(uVar3);\n    if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }\n  }" ({ "{") (expression_statement "uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));" (assignment_expression "uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54))" (identifier "uVar8") (= "=") (call_expression "FUN_0003aff0(*(int *)(param_4 + 0x54))" (identifier "FUN_0003aff0") (argument_list "(*(int *)(param_4 + 0x54))" (( "(") (pointer_expression "*(int *)(param_4 + 0x54)" (* "*") (cast_expression "(int *)(param_4 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x54)" (( "(") (binary_expression "param_4 + 0x54" (identifier "param_4") (+ "+") (number_literal "0x54")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar6 = (uint)((ulonglong)uVar8 >> 0x20);" (assignment_expression "uVar6 = (uint)((ulonglong)uVar8 >> 0x20)" (identifier "uVar6") (= "=") (call_expression "(uint)((ulonglong)uVar8 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar8 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar8 >> 0x20" (cast_expression "(ulonglong)uVar8" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar9 = FUN_0003aff0(uVar3);" (assignment_expression "uVar9 = FUN_0003aff0(uVar3)" (identifier "uVar9") (= "=") (call_expression "FUN_0003aff0(uVar3)" (identifier "FUN_0003aff0") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "uVar7 = (uint)((ulonglong)uVar9 >> 0x20);" (assignment_expression "uVar7 = (uint)((ulonglong)uVar9 >> 0x20)" (identifier "uVar7") (= "=") (call_expression "(uint)((ulonglong)uVar9 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar9 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar9")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar5 = (uint)((uint)uVar9 < (uint)uVar8);" (assignment_expression "uVar5 = (uint)((uint)uVar9 < (uint)uVar8)" (identifier "uVar5") (= "=") (call_expression "(uint)((uint)uVar9 < (uint)uVar8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)uVar9 < (uint)uVar8)" (( "(") (binary_expression "(uint)uVar9 < (uint)uVar8" (cast_expression "(uint)uVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar9")) (< "<") (cast_expression "(uint)uVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar8"))) () ")")))) (; ";")) (expression_statement "uVar1 = uVar7 - uVar6;" (assignment_expression "uVar1 = uVar7 - uVar6" (identifier "uVar1") (= "=") (binary_expression "uVar7 - uVar6" (identifier "uVar7") (- "-") (identifier "uVar6"))) (; ";")) (if_statement "if (uVar7 < uVar6 || uVar1 < uVar5) {\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }" (if "if") (parenthesized_expression "(uVar7 < uVar6 || uVar1 < uVar5)" (( "(") (binary_expression "uVar7 < uVar6 || uVar1 < uVar5" (binary_expression "uVar7 < uVar6" (identifier "uVar7") (< "<") (identifier "uVar6")) (|| "||") (binary_expression "uVar1 < uVar5" (identifier "uVar1") (< "<") (identifier "uVar5"))) () ")")) (compound_statement "{\n                    \n      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);\n    }" ({ "{") (expression_statement "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);" (call_expression "FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5)" (identifier "FUN_0002cfc0") (argument_list "("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5)" (( "(") (string_literal ""../../gas/config/tc-aarch64.c"" (" """) (string_content "../../gas/config/tc-aarch64.c") (" """)) (, ",") (number_literal "0x5e3") (, ",") (string_literal ""make_mapping_symbol"" (" """) (string_content "make_mapping_symbol") (" """)) (, ",") (binary_expression "uVar1 - uVar5" (identifier "uVar1") (- "-") (identifier "uVar5")) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));" (assignment_expression "lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54))" (identifier "lVar10") (= "=") (call_expression "FUN_0003aff0(*(undefined4 *)(param_4 + 0x54))" (identifier "FUN_0003aff0") (argument_list "(*(undefined4 *)(param_4 + 0x54))" (( "(") (pointer_expression "*(undefined4 *)(param_4 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x54)" (( "(") (binary_expression "param_4 + 0x54" (identifier "param_4") (+ "+") (number_literal "0x54")) () ")")))) () ")")))) (; ";")) (expression_statement "lVar11 = FUN_0003aff0(uVar3);" (assignment_expression "lVar11 = FUN_0003aff0(uVar3)" (identifier "lVar11") (= "=") (call_expression "FUN_0003aff0(uVar3)" (identifier "FUN_0003aff0") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (if_statement "if (lVar10 == lVar11) {\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }" (if "if") (parenthesized_expression "(lVar10 == lVar11)" (( "(") (binary_expression "lVar10 == lVar11" (identifier "lVar10") (== "==") (identifier "lVar11")) () ")")) (compound_statement "{\n      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);\n      *(undefined4 *)(param_4 + 0x54) = uVar3;\n      return;\n    }" ({ "{") (expression_statement "FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);" (call_expression "FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0)" (identifier "FUN_000382f0") (argument_list "(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0)" (( "(") (pointer_expression "*(undefined4 *)(param_4 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x54)" (( "(") (binary_expression "param_4 + 0x54" (identifier "param_4") (+ "+") (number_literal "0x54")) () ")")))) (, ",") (identifier "PTR_DAT_00077f68") (, ",") (identifier "PTR_DAT_00077fd0") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_4 + 0x54) = uVar3;" (assignment_expression "*(undefined4 *)(param_4 + 0x54) = uVar3" (pointer_expression "*(undefined4 *)(param_4 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x54)" (( "(") (binary_expression "param_4 + 0x54" (identifier "param_4") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "*(undefined4 *)(param_4 + 0x54) = uVar3;" (assignment_expression "*(undefined4 *)(param_4 + 0x54) = uVar3" (pointer_expression "*(undefined4 *)(param_4 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x54)" (( "(") (binary_expression "param_4 + 0x54" (identifier "param_4") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void __regparm3 function_1(type_1 var_1,type_2 value,type_3 *var_9)

{
  type_4 *var_10;
  char *name;
  type_4 *s;
  type_5 *paVar2;
  int var_8;
  type_6 var_16;
  type_6 var_15;
  type_2 var_12;
  type_2 var_14;
  
  if (var_1 == var_2) {
    name = "$d";
  }
  else {
    if (var_1 != var_3) {
                    /* WARNING: Subroutine does not return */
      var_4("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol");
    }
    name = "$x";
  }
  s = var_5(name,now_seg,var_6(var_8,var_9),(type_3 *)value);
  paVar2 = var_7(s);
  paVar2->flags = paVar2->flags | 1;
  if (var_8 == 0 && var_9 == (type_3 *)0x0) {
    var_10 = (((type_3 *)value)->tc_frag_data).first_map;
    if (var_10 != (type_4 *)0x0) {
      var_12 = var_11(var_10);
      if (var_12 != 0) {
                    /* WARNING: Subroutine does not return */
        var_4("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol");
      }
      var_13((((type_3 *)value)->tc_frag_data).first_map,(type_4 **)PTR_symbol_rootP_00077f68
                    ,(type_4 **)PTR_symbol_lastP_00077fd0);
    }
    (((type_3 *)value)->tc_frag_data).first_map = s;
  }
  var_10 = (((type_3 *)value)->tc_frag_data).last_map;
  if (var_10 != (type_4 *)0x0) {
    var_12 = var_11(var_10);
    var_16 = (type_6)(var_12 >> 0x20);
    var_14 = var_11(s);
    var_15 = (type_6)(var_14 >> 0x20);
    if (var_15 < var_16 || var_15 - var_16 < (type_6)((type_6)var_14 < (type_6)var_12)) {
                    /* WARNING: Subroutine does not return */
      var_4("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol");
    }
    var_12 = var_11((((type_3 *)value)->tc_frag_data).last_map);
    var_14 = var_11(s);
    if (var_14 == var_12) {
      var_13((((type_3 *)value)->tc_frag_data).last_map,(type_4 **)PTR_symbol_rootP_00077f68,
                    (type_4 **)PTR_symbol_lastP_00077fd0);
      (((type_3 *)value)->tc_frag_data).last_map = s;
      return;
    }
  }
  (((type_3 *)value)->tc_frag_data).last_map = s;
  return;
}


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

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

void __regparm3 MASKED(int param_1,int param_2,int param_3,int param_4)

{
  uint uVar1;
  undefined *puVar2;
  undefined4 uVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined8 uVar8;
  undefined8 uVar9;
  longlong lVar10;
  longlong lVar11;
  
  if (param_1 == 1) {
    puVar2 = &DAT_0005ac41;
  }
  else {
    if (param_1 != 2) {
                    /* WARNING: Subroutine does not return */
      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5c7,"make_mapping_symbol",param_3);
    }
    puVar2 = &DAT_0005ac44;
  }
  uVar3 = FUN_00039930(puVar2,DAT_000817bc,param_2,param_3,param_4);
  iVar4 = FUN_0003ca60(uVar3);
  *(uint *)(iVar4 + 0x10) = *(uint *)(iVar4 + 0x10) | 1;
  if (param_3 == 0 && param_2 == 0) {
    if (*(int *)(param_4 + 0x50) != 0) {
      uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x50));
      uVar5 = (uint)((ulonglong)uVar8 >> 0x20) | (uint)uVar8;
      if (uVar5 != 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5da,"make_mapping_symbol",uVar5);
      }
      FUN_000382f0(*(undefined4 *)(param_4 + 0x50),PTR_DAT_00077f68,PTR_DAT_00077fd0);
    }
    *(undefined4 *)(param_4 + 0x50) = uVar3;
  }
  if (*(int *)(param_4 + 0x54) != 0) {
    uVar8 = FUN_0003aff0(*(int *)(param_4 + 0x54));
    uVar6 = (uint)((ulonglong)uVar8 >> 0x20);
    uVar9 = FUN_0003aff0(uVar3);
    uVar7 = (uint)((ulonglong)uVar9 >> 0x20);
    uVar5 = (uint)((uint)uVar9 < (uint)uVar8);
    uVar1 = uVar7 - uVar6;
    if (uVar7 < uVar6 || uVar1 < uVar5) {
                    /* WARNING: Subroutine does not return */
      FUN_0002cfc0("../../gas/config/tc-aarch64.c",0x5e3,"make_mapping_symbol",uVar1 - uVar5);
    }
    lVar10 = FUN_0003aff0(*(undefined4 *)(param_4 + 0x54));
    lVar11 = FUN_0003aff0(uVar3);
    if (lVar10 == lVar11) {
      FUN_000382f0(*(undefined4 *)(param_4 + 0x54),PTR_DAT_00077f68,PTR_DAT_00077fd0);
      *(undefined4 *)(param_4 + 0x54) = uVar3;
      return;
    }
  }
  *(undefined4 *)(param_4 + 0x54) = uVar3;
  return;
}

