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

fixS * __regparm3
fix_new_internal(fragS *frag,int where,int size,symbolS *add_symbol,symbolS *sub_symbol,
                offsetT offset,int pcrel,bfd_reloc_code_real r_type,int at_beginning)

{
  fixS **ppfVar1;
  int iVar2;
  undefined4 uVar3;
  fixS **ppfVar4;
  char *pcVar5;
  uint uVar6;
  fixS *pfVar7;
  undefined4 local_24;
  undefined4 local_20;
  
  n_fixups = n_fixups + 1;
  if ((uint)((int)notes.chunk_limit - (int)notes.next_free) < 0x4c) {
    _obstack_newchunk(&notes,0x4c);
    pcVar5 = notes.next_free + 0x4c;
    pfVar7 = (fixS *)notes.object_base;
    if (pcVar5 != notes.object_base) goto LAB_00039eff;
  }
  else {
    pcVar5 = notes.next_free + 0x4c;
    pfVar7 = (fixS *)notes.object_base;
    if (pcVar5 != notes.object_base) goto LAB_00039eff;
  }
  notes._40_1_ = notes._40_1_ | 2;
  pfVar7 = (fixS *)notes.object_base;
LAB_00039eff:
  local_20 = (undefined4)((ulonglong)offset >> 0x20);
  local_24 = (undefined4)offset;
  uVar6 = (int)notes.chunk_limit - (int)notes.chunk;
  notes.object_base = (char *)((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask);
  if (uVar6 < (uint)((int)((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask) -
                    (int)notes.chunk)) {
    notes.object_base = notes.chunk_limit;
  }
  notes.next_free = notes.object_base;
  pfVar7->fx_frag = frag;
  pfVar7->fx_where = where;
  pfVar7->fx_size = (uchar)size;
  if ((size & 0xffffff00U) == 0) {
    pfVar7->fx_bit_fixP = (bit_fixS *)0x0;
    *(undefined4 *)&pfVar7->fx_addnumber = 0;
    pfVar7->fx_addsy = add_symbol;
    *(undefined4 *)((int)&pfVar7->fx_offset + 4) = local_20;
    pfVar7->fx_subsy = sub_symbol;
    *(undefined4 *)((int)&pfVar7->fx_addnumber + 4) = 0;
    *(undefined4 *)&pfVar7->fx_offset = local_24;
    (pfVar7->tc_fix_data).opnd = IA64_OPND_NIL;
    uVar3 = dot_value._4_4_;
    *(undefined4 *)&pfVar7->fx_dot_value = (undefined4)dot_value;
    *(undefined4 *)((int)&pfVar7->fx_dot_value + 4) = uVar3;
    pfVar7->fx_dot_frag = dot_frag;
    *(byte *)pfVar7 = *(byte *)pfVar7 & 0xfe | (byte)pcrel & 1;
    *(ushort *)pfVar7 = *(ushort *)pfVar7 & 1;
    pfVar7->fx_r_type = r_type;
    pcVar5 = as_where(&pfVar7->fx_line);
    iVar2 = frags_chained;
    pfVar7->fx_file = pcVar5;
    if (iVar2 == 0) {
      ppfVar1 = &frchain_now->fix_root;
      ppfVar4 = &frchain_now->fix_tail;
    }
    else {
      ppfVar1 = (fixS **)((int)now_seg->userdata + 0xc);
      ppfVar4 = (fixS **)((int)now_seg->userdata + 0x10);
    }
    if (at_beginning == 0) {
      pfVar7->fx_next = (fix *)0x0;
      if (*ppfVar4 == (fixS *)0x0) {
        *ppfVar1 = pfVar7;
        *ppfVar4 = pfVar7;
        return pfVar7;
      }
      (*ppfVar4)->fx_next = pfVar7;
    }
    else {
      pfVar7->fx_next = *ppfVar1;
      *ppfVar1 = pfVar7;
      if (pfVar7->fx_next != (fix *)0x0) {
        return pfVar7;
      }
    }
    *ppfVar4 = pfVar7;
    return pfVar7;
  }
  pcVar5 = (char *)dcgettext(0,"field fx_size too small to hold %d",5,uVar6);
  as_bad(pcVar5,size);
                    /* WARNING: Subroutine does not return */
  as_abort("../../gas/write.c",0xa8,"fix_new_internal");
}



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

ushort * __regparm3
FUN_00039ea0(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,
            undefined4 param_5,undefined4 param_6,undefined4 param_7,byte param_8,undefined4 param_9
            ,int param_10)

{
  undefined4 *puVar1;
  int iVar2;
  undefined4 uVar3;
  int *piVar4;
  ushort *puVar5;
  uint uVar6;
  ushort *puVar7;
  
  DAT_00087690 = DAT_00087690 + 1;
  if (DAT_000881d0 - DAT_000881cc < 0x4c) {
    _obstack_newchunk(&DAT_000881c0,0x4c);
    puVar5 = (ushort *)(DAT_000881cc + 0x4c);
    puVar7 = DAT_000881c8;
    if (puVar5 != DAT_000881c8) goto LAB_00039eff;
  }
  else {
    puVar5 = (ushort *)(DAT_000881cc + 0x4c);
    puVar7 = DAT_000881c8;
    if (puVar5 != DAT_000881c8) goto LAB_00039eff;
  }
  DAT_000881e8 = DAT_000881e8 | 2;
  puVar7 = DAT_000881c8;
LAB_00039eff:
  DAT_000881c8 = (ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8);
  uVar6 = DAT_000881d0 - DAT_000881c4;
  if (uVar6 < (uint)((int)DAT_000881c8 - DAT_000881c4)) {
    DAT_000881c8 = (ushort *)DAT_000881d0;
  }
  DAT_000881cc = (uint)DAT_000881c8;
  *(undefined4 *)(puVar7 + 2) = param_1;
  *(undefined4 *)(puVar7 + 4) = param_2;
  *(char *)(puVar7 + 1) = (char)param_3;
  if ((param_3 & 0xffffff00) == 0) {
    puVar7[0x16] = 0;
    puVar7[0x17] = 0;
    puVar7[0x1a] = 0;
    puVar7[0x1b] = 0;
    *(undefined4 *)(puVar7 + 6) = param_4;
    *(undefined4 *)(puVar7 + 0xc) = param_7;
    *(undefined4 *)(puVar7 + 8) = param_5;
    puVar7[0x1c] = 0;
    puVar7[0x1d] = 0;
    *(undefined4 *)(puVar7 + 10) = param_6;
    puVar7[0x24] = 0;
    uVar3 = DAT_0008827c;
    puVar7[0x25] = 0;
    *(undefined4 *)(puVar7 + 0xe) = DAT_00088278;
    *(undefined4 *)(puVar7 + 0x10) = uVar3;
    *(undefined4 *)(puVar7 + 0x12) = DAT_00088288;
    *(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1;
    *puVar7 = *puVar7 & 1;
    *(undefined4 *)(puVar7 + 0x18) = param_9;
    uVar3 = FUN_00023b80(puVar7 + 0x20);
    iVar2 = DAT_00087694;
    *(undefined4 *)(puVar7 + 0x1e) = uVar3;
    if (iVar2 == 0) {
      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);
      piVar4 = (int *)(DAT_000881a8 + 0x14);
    }
    else {
      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);
      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);
    }
    if (param_10 == 0) {
      puVar7[0x14] = 0;
      puVar7[0x15] = 0;
      if (*piVar4 == 0) {
        *puVar1 = puVar7;
        *piVar4 = (int)puVar7;
        return puVar7;
      }
      *(ushort **)(*piVar4 + 0x28) = puVar7;
    }
    else {
      *(undefined4 *)(puVar7 + 0x14) = *puVar1;
      *puVar1 = puVar7;
      if (*(int *)(puVar7 + 0x14) != 0) {
        return puVar7;
      }
    }
    *piVar4 = (int)puVar7;
    return puVar7;
  }
  uVar3 = dcgettext(0,"field fx_size too small to hold %d",5,uVar6);
  FUN_00029550(uVar3,param_3);
                    /* WARNING: Subroutine does not return */
  FUN_00029670("../../gas/write.c",0xa8,"fix_new_internal");
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016030
ADD EBX,0x44157
SUB ESP,0x2c
MOV dword ptr [ESP + 0x10],EDX
MOV EDX,dword ptr [ESP + 0x4c]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x48]
MOV dword ptr [ESP + 0x1c],EDX
LEA EDI,[EBX + 0xa1c0]
MOV dword ptr [ESP + 0x8],ECX
MOV dword ptr [ESP + 0x18],EAX
MOV EDX,dword ptr [EDI + 0x10]
MOV ECX,dword ptr [EDI + 0xc]
ADD dword ptr [EBX + 0x9690],0x1
MOV EAX,EDX
SUB EAX,ECX
CMP EAX,0x4b
JBE 0x0003a050
MOV ESI,dword ptr [EDI + 0x8]
ADD ECX,0x4c
MOV dword ptr [EDI + 0xc],ECX
CMP ECX,ESI
JZ 0x0003a075
MOV EBP,dword ptr [EDI + 0x18]
LEA EAX,[ECX + EBP*0x1]
NOT EBP
MOV ECX,dword ptr [EDI + 0x4]
AND EAX,EBP
MOV EBP,EAX
MOV dword ptr [EDI + 0xc],EAX
SUB EBP,ECX
MOV dword ptr [ESP + 0x14],EBP
MOV EBP,EDX
SUB EBP,ECX
CMP dword ptr [ESP + 0x14],EBP
JBE 0x00039f26
MOV dword ptr [EDI + 0xc],EDX
MOV EAX,EDX
MOV dword ptr [EDI + 0x8],EAX
MOV EAX,dword ptr [ESP + 0xc]
MOV EDI,dword ptr [ESP + 0x8]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,EDI
MOV byte ptr [ESI + 0x2],AL
MOV EAX,EDI
TEST EAX,0xffffff00
JNZ 0x0003a086
MOV EAX,dword ptr [ESP + 0x40]
MOV EDX,dword ptr [ESP + 0x1c]
SUB ESP,0xc
MOV dword ptr [ESI + 0x2c],0x0
MOV dword ptr [ESI + 0x34],0x0
MOV dword ptr [ESI + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x50]
MOV dword ptr [ESI + 0x18],EDX
MOV dword ptr [ESI + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [ESI + 0x38],0x0
MOV dword ptr [ESI + 0x14],EAX
LEA EAX,[EBX + 0xa278]
MOV dword ptr [ESI + 0x48],0x0
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESI + 0x1c],EAX
LEA EAX,[EBX + 0xa288]
MOV dword ptr [ESI + 0x20],EDX
MOVZX EDX,byte ptr [ESP + 0x5c]
MOV EAX,dword ptr [EAX]
AND EDX,0x1
MOV dword ptr [ESI + 0x24],EAX
MOVZX EAX,byte ptr [ESI]
AND EAX,0xfffffffe
OR EAX,EDX
MOV byte ptr [ESI],AL
MOV EAX,dword ptr [ESP + 0x60]
AND word ptr [ESI],0x1
MOV dword ptr [ESI + 0x30],EAX
LEA EAX,[ESI + 0x40]
PUSH EAX
CALL 0x00023b80
MOV EDI,dword ptr [EBX + 0x9694]
ADD ESP,0x10
MOV dword ptr [ESI + 0x3c],EAX
TEST EDI,EDI
JNZ 0x0003a010
LEA EAX,[EBX + 0xa1a8]
MOV ECX,dword ptr [ESP + 0x58]
MOV EAX,dword ptr [EAX]
LEA EDX,[EAX + 0x10]
ADD EAX,0x14
TEST ECX,ECX
JZ 0x0003a02c
MOV ECX,dword ptr [EDX]
MOV dword ptr [ESI + 0x28],ECX
MOV dword ptr [EDX],ESI
MOV EDX,dword ptr [ESI + 0x28]
TEST EDX,EDX
JZ 0x0003a03c
ADD ESP,0x2c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBX + 0x9f1c]
MOV ECX,dword ptr [ESP + 0x58]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x80]
LEA EDX,[EAX + 0xc]
ADD EAX,0x10
TEST ECX,ECX
JNZ 0x00039ff0
MOV dword ptr [ESI + 0x28],0x0
MOV ECX,dword ptr [EAX]
TEST ECX,ECX
JZ 0x0003a080
MOV dword ptr [ECX + 0x28],ESI
MOV dword ptr [EAX],ESI
ADD ESP,0x2c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
PUSH 0x4c
PUSH EDI
CALL 0x000141a0
MOV ECX,dword ptr [EDI + 0xc]
MOV ESI,dword ptr [EDI + 0x8]
ADD ESP,0x10
MOV EDX,dword ptr [EDI + 0x10]
ADD ECX,0x4c
MOV dword ptr [EDI + 0xc],ECX
CMP ECX,ESI
JNZ 0x00039eff
OR byte ptr [EDI + 0x28],0x2
JMP 0x00039eff
MOV dword ptr [EDX],ESI
MOV dword ptr [EAX],ESI
JMP 0x0003a03e
LEA EAX,[EBX + 0xfffe2038]
PUSH EBP
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141b0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x10]
PUSH EAX
CALL 0x00029550
ADD ESP,0xc
LEA EAX,[EBX + 0xfffe2870]
PUSH EAX
LEA EAX,[EBX + 0xfffe2504]
PUSH 0xa8
PUSH EAX
CALL 0x00029670
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nushort * __regparm3\nFUN_00039ea0(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined4 param_7,byte param_8,undefined4 param_9\n            ,int param_10)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  ushort *puVar5;\n  uint uVar6;\n  ushort *puVar7;\n  \n  DAT_00087690 = DAT_00087690 + 1;\n  if (DAT_000881d0 - DAT_000881cc < 0x4c) {\n    _obstack_newchunk(&DAT_000881c0,0x4c);\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }\n  else {\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }\n  DAT_000881e8 = DAT_000881e8 | 2;\n  puVar7 = DAT_000881c8;\nLAB_00039eff:\n  DAT_000881c8 = (ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8);\n  uVar6 = DAT_000881d0 - DAT_000881c4;\n  if (uVar6 < (uint)((int)DAT_000881c8 - DAT_000881c4)) {\n    DAT_000881c8 = (ushort *)DAT_000881d0;\n  }\n  DAT_000881cc = (uint)DAT_000881c8;\n  *(undefined4 *)(puVar7 + 2) = param_1;\n  *(undefined4 *)(puVar7 + 4) = param_2;\n  *(char *)(puVar7 + 1) = (char)param_3;\n  if ((param_3 & 0xffffff00) == 0) {\n    puVar7[0x16] = 0;\n    puVar7[0x17] = 0;\n    puVar7[0x1a] = 0;\n    puVar7[0x1b] = 0;\n    *(undefined4 *)(puVar7 + 6) = param_4;\n    *(undefined4 *)(puVar7 + 0xc) = param_7;\n    *(undefined4 *)(puVar7 + 8) = param_5;\n    puVar7[0x1c] = 0;\n    puVar7[0x1d] = 0;\n    *(undefined4 *)(puVar7 + 10) = param_6;\n    puVar7[0x24] = 0;\n    uVar3 = DAT_0008827c;\n    puVar7[0x25] = 0;\n    *(undefined4 *)(puVar7 + 0xe) = DAT_00088278;\n    *(undefined4 *)(puVar7 + 0x10) = uVar3;\n    *(undefined4 *)(puVar7 + 0x12) = DAT_00088288;\n    *(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1;\n    *puVar7 = *puVar7 & 1;\n    *(undefined4 *)(puVar7 + 0x18) = param_9;\n    uVar3 = FUN_00023b80(puVar7 + 0x20);\n    iVar2 = DAT_00087694;\n    *(undefined4 *)(puVar7 + 0x1e) = uVar3;\n    if (iVar2 == 0) {\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }\n    else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }\n    if (param_10 == 0) {\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }\n    else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }\n    *piVar4 = (int)puVar7;\n    return puVar7;\n  }\n  uVar3 = dcgettext(0,"field fx_size too small to hold %d",5,uVar6);\n  FUN_00029550(uVar3,param_3);\n                    /* WARNING: Subroutine does not return */\n  FUN_00029670("../../gas/write.c",0xa8,"fix_new_internal");\n}\n\n" comment (ERROR "ushort * __regparm3\nFUN_00039ea0(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined4 param_7,byte param_8,undefined4 param_9\n            ,int param_10)" (binary_expression "ushort * __regparm3\nFUN_00039ea0(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined4 param_7,byte param_8,undefined4 param_9\n            ,int param_10)" identifier * (ERROR "__regparm3" identifier) (call_expression "FUN_00039ea0(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined4 param_7,byte param_8,undefined4 param_9\n            ,int param_10)" identifier (argument_list "(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined4 param_7,byte param_8,undefined4 param_9\n            ,int param_10)" ( identifier (ERROR "param_1" identifier) , identifier (ERROR "param_2" identifier) , (ERROR "uint" identifier) identifier , identifier (ERROR "param_4" identifier) , identifier (ERROR "param_5" identifier) , identifier (ERROR "param_6" identifier) , identifier (ERROR "param_7" identifier) , (ERROR "byte" identifier) identifier , identifier (ERROR "param_9" identifier) , (ERROR "int" identifier) identifier ))))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  ushort *puVar5;\n  uint uVar6;\n  ushort *puVar7;\n  \n  DAT_00087690 = DAT_00087690 + 1;\n  if (DAT_000881d0 - DAT_000881cc < 0x4c) {\n    _obstack_newchunk(&DAT_000881c0,0x4c);\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }\n  else {\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }\n  DAT_000881e8 = DAT_000881e8 | 2;\n  puVar7 = DAT_000881c8;\nLAB_00039eff:\n  DAT_000881c8 = (ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8);\n  uVar6 = DAT_000881d0 - DAT_000881c4;\n  if (uVar6 < (uint)((int)DAT_000881c8 - DAT_000881c4)) {\n    DAT_000881c8 = (ushort *)DAT_000881d0;\n  }\n  DAT_000881cc = (uint)DAT_000881c8;\n  *(undefined4 *)(puVar7 + 2) = param_1;\n  *(undefined4 *)(puVar7 + 4) = param_2;\n  *(char *)(puVar7 + 1) = (char)param_3;\n  if ((param_3 & 0xffffff00) == 0) {\n    puVar7[0x16] = 0;\n    puVar7[0x17] = 0;\n    puVar7[0x1a] = 0;\n    puVar7[0x1b] = 0;\n    *(undefined4 *)(puVar7 + 6) = param_4;\n    *(undefined4 *)(puVar7 + 0xc) = param_7;\n    *(undefined4 *)(puVar7 + 8) = param_5;\n    puVar7[0x1c] = 0;\n    puVar7[0x1d] = 0;\n    *(undefined4 *)(puVar7 + 10) = param_6;\n    puVar7[0x24] = 0;\n    uVar3 = DAT_0008827c;\n    puVar7[0x25] = 0;\n    *(undefined4 *)(puVar7 + 0xe) = DAT_00088278;\n    *(undefined4 *)(puVar7 + 0x10) = uVar3;\n    *(undefined4 *)(puVar7 + 0x12) = DAT_00088288;\n    *(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1;\n    *puVar7 = *puVar7 & 1;\n    *(undefined4 *)(puVar7 + 0x18) = param_9;\n    uVar3 = FUN_00023b80(puVar7 + 0x20);\n    iVar2 = DAT_00087694;\n    *(undefined4 *)(puVar7 + 0x1e) = uVar3;\n    if (iVar2 == 0) {\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }\n    else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }\n    if (param_10 == 0) {\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }\n    else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }\n    *piVar4 = (int)puVar7;\n    return puVar7;\n  }\n  uVar3 = dcgettext(0,"field fx_size too small to hold %d",5,uVar6);\n  FUN_00029550(uVar3,param_3);\n                    /* WARNING: Subroutine does not return */\n  FUN_00029670("../../gas/write.c",0xa8,"fix_new_internal");\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "ushort *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "ushort *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (expression_statement "DAT_00087690 = DAT_00087690 + 1;" (assignment_expression "DAT_00087690 = DAT_00087690 + 1" identifier = (binary_expression "DAT_00087690 + 1" identifier + number_literal)) ;) (if_statement "if (DAT_000881d0 - DAT_000881cc < 0x4c) {\n    _obstack_newchunk(&DAT_000881c0,0x4c);\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }\n  else {\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }" if (parenthesized_expression "(DAT_000881d0 - DAT_000881cc < 0x4c)" ( (binary_expression "DAT_000881d0 - DAT_000881cc < 0x4c" (binary_expression "DAT_000881d0 - DAT_000881cc" identifier - identifier) < number_literal) )) (compound_statement "{\n    _obstack_newchunk(&DAT_000881c0,0x4c);\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }" { (expression_statement "_obstack_newchunk(&DAT_000881c0,0x4c);" (call_expression "_obstack_newchunk(&DAT_000881c0,0x4c)" identifier (argument_list "(&DAT_000881c0,0x4c)" ( (pointer_expression "&DAT_000881c0" & identifier) , number_literal ))) ;) (expression_statement "puVar5 = (ushort *)(DAT_000881cc + 0x4c);" (assignment_expression "puVar5 = (ushort *)(DAT_000881cc + 0x4c)" identifier = (cast_expression "(ushort *)(DAT_000881cc + 0x4c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000881cc + 0x4c)" ( (binary_expression "DAT_000881cc + 0x4c" identifier + number_literal) )))) ;) (expression_statement "puVar7 = DAT_000881c8;" (assignment_expression "puVar7 = DAT_000881c8" identifier = identifier) ;) (if_statement "if (puVar5 != DAT_000881c8) goto LAB_00039eff;" if (parenthesized_expression "(puVar5 != DAT_000881c8)" ( (binary_expression "puVar5 != DAT_000881c8" identifier != identifier) )) (goto_statement "goto LAB_00039eff;" goto statement_identifier ;)) }) (else_clause "else {\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }" else (compound_statement "{\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }" { (expression_statement "puVar5 = (ushort *)(DAT_000881cc + 0x4c);" (assignment_expression "puVar5 = (ushort *)(DAT_000881cc + 0x4c)" identifier = (cast_expression "(ushort *)(DAT_000881cc + 0x4c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000881cc + 0x4c)" ( (binary_expression "DAT_000881cc + 0x4c" identifier + number_literal) )))) ;) (expression_statement "puVar7 = DAT_000881c8;" (assignment_expression "puVar7 = DAT_000881c8" identifier = identifier) ;) (if_statement "if (puVar5 != DAT_000881c8) goto LAB_00039eff;" if (parenthesized_expression "(puVar5 != DAT_000881c8)" ( (binary_expression "puVar5 != DAT_000881c8" identifier != identifier) )) (goto_statement "goto LAB_00039eff;" goto statement_identifier ;)) }))) (expression_statement "DAT_000881e8 = DAT_000881e8 | 2;" (assignment_expression "DAT_000881e8 = DAT_000881e8 | 2" identifier = (binary_expression "DAT_000881e8 | 2" identifier | number_literal)) ;) (expression_statement "puVar7 = DAT_000881c8;" (assignment_expression "puVar7 = DAT_000881c8" identifier = identifier) ;) (labeled_statement "LAB_00039eff:\n  DAT_000881c8 = (ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8);" statement_identifier : (expression_statement "DAT_000881c8 = (ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8);" (assignment_expression "DAT_000881c8 = (ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8)" identifier = (cast_expression "(ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + DAT_000881d8 & ~DAT_000881d8)" ( (binary_expression "(int)puVar5 + DAT_000881d8 & ~DAT_000881d8" (binary_expression "(int)puVar5 + DAT_000881d8" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) & (unary_expression "~DAT_000881d8" ~ identifier)) )))) ;)) (expression_statement "uVar6 = DAT_000881d0 - DAT_000881c4;" (assignment_expression "uVar6 = DAT_000881d0 - DAT_000881c4" identifier = (binary_expression "DAT_000881d0 - DAT_000881c4" identifier - identifier)) ;) (if_statement "if (uVar6 < (uint)((int)DAT_000881c8 - DAT_000881c4)) {\n    DAT_000881c8 = (ushort *)DAT_000881d0;\n  }" if (parenthesized_expression "(uVar6 < (uint)((int)DAT_000881c8 - DAT_000881c4))" ( (binary_expression "uVar6 < (uint)((int)DAT_000881c8 - DAT_000881c4)" identifier < (call_expression "(uint)((int)DAT_000881c8 - DAT_000881c4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)DAT_000881c8 - DAT_000881c4)" ( (binary_expression "(int)DAT_000881c8 - DAT_000881c4" (cast_expression "(int)DAT_000881c8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) )) (compound_statement "{\n    DAT_000881c8 = (ushort *)DAT_000881d0;\n  }" { (expression_statement "DAT_000881c8 = (ushort *)DAT_000881d0;" (assignment_expression "DAT_000881c8 = (ushort *)DAT_000881d0" identifier = (cast_expression "(ushort *)DAT_000881d0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "DAT_000881cc = (uint)DAT_000881c8;" (assignment_expression "DAT_000881cc = (uint)DAT_000881c8" identifier = (cast_expression "(uint)DAT_000881c8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(puVar7 + 2) = param_1;" (assignment_expression "*(undefined4 *)(puVar7 + 2) = param_1" (pointer_expression "*(undefined4 *)(puVar7 + 2)" * (cast_expression "(undefined4 *)(puVar7 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 2)" ( (binary_expression "puVar7 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 4) = param_2;" (assignment_expression "*(undefined4 *)(puVar7 + 4) = param_2" (pointer_expression "*(undefined4 *)(puVar7 + 4)" * (cast_expression "(undefined4 *)(puVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(puVar7 + 1) = (char)param_3;" (assignment_expression "*(char *)(puVar7 + 1) = (char)param_3" (pointer_expression "*(char *)(puVar7 + 1)" * (cast_expression "(char *)(puVar7 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 1)" ( (binary_expression "puVar7 + 1" identifier + number_literal) )))) = (cast_expression "(char)param_3" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if ((param_3 & 0xffffff00) == 0) {\n    puVar7[0x16] = 0;\n    puVar7[0x17] = 0;\n    puVar7[0x1a] = 0;\n    puVar7[0x1b] = 0;\n    *(undefined4 *)(puVar7 + 6) = param_4;\n    *(undefined4 *)(puVar7 + 0xc) = param_7;\n    *(undefined4 *)(puVar7 + 8) = param_5;\n    puVar7[0x1c] = 0;\n    puVar7[0x1d] = 0;\n    *(undefined4 *)(puVar7 + 10) = param_6;\n    puVar7[0x24] = 0;\n    uVar3 = DAT_0008827c;\n    puVar7[0x25] = 0;\n    *(undefined4 *)(puVar7 + 0xe) = DAT_00088278;\n    *(undefined4 *)(puVar7 + 0x10) = uVar3;\n    *(undefined4 *)(puVar7 + 0x12) = DAT_00088288;\n    *(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1;\n    *puVar7 = *puVar7 & 1;\n    *(undefined4 *)(puVar7 + 0x18) = param_9;\n    uVar3 = FUN_00023b80(puVar7 + 0x20);\n    iVar2 = DAT_00087694;\n    *(undefined4 *)(puVar7 + 0x1e) = uVar3;\n    if (iVar2 == 0) {\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }\n    else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }\n    if (param_10 == 0) {\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }\n    else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }\n    *piVar4 = (int)puVar7;\n    return puVar7;\n  }" if (parenthesized_expression "((param_3 & 0xffffff00) == 0)" ( (binary_expression "(param_3 & 0xffffff00) == 0" (parenthesized_expression "(param_3 & 0xffffff00)" ( (binary_expression "param_3 & 0xffffff00" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    puVar7[0x16] = 0;\n    puVar7[0x17] = 0;\n    puVar7[0x1a] = 0;\n    puVar7[0x1b] = 0;\n    *(undefined4 *)(puVar7 + 6) = param_4;\n    *(undefined4 *)(puVar7 + 0xc) = param_7;\n    *(undefined4 *)(puVar7 + 8) = param_5;\n    puVar7[0x1c] = 0;\n    puVar7[0x1d] = 0;\n    *(undefined4 *)(puVar7 + 10) = param_6;\n    puVar7[0x24] = 0;\n    uVar3 = DAT_0008827c;\n    puVar7[0x25] = 0;\n    *(undefined4 *)(puVar7 + 0xe) = DAT_00088278;\n    *(undefined4 *)(puVar7 + 0x10) = uVar3;\n    *(undefined4 *)(puVar7 + 0x12) = DAT_00088288;\n    *(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1;\n    *puVar7 = *puVar7 & 1;\n    *(undefined4 *)(puVar7 + 0x18) = param_9;\n    uVar3 = FUN_00023b80(puVar7 + 0x20);\n    iVar2 = DAT_00087694;\n    *(undefined4 *)(puVar7 + 0x1e) = uVar3;\n    if (iVar2 == 0) {\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }\n    else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }\n    if (param_10 == 0) {\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }\n    else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }\n    *piVar4 = (int)puVar7;\n    return puVar7;\n  }" { (expression_statement "puVar7[0x16] = 0;" (assignment_expression "puVar7[0x16] = 0" (subscript_expression "puVar7[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[0x17] = 0;" (assignment_expression "puVar7[0x17] = 0" (subscript_expression "puVar7[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[0x1a] = 0;" (assignment_expression "puVar7[0x1a] = 0" (subscript_expression "puVar7[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[0x1b] = 0;" (assignment_expression "puVar7[0x1b] = 0" (subscript_expression "puVar7[0x1b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 6) = param_4;" (assignment_expression "*(undefined4 *)(puVar7 + 6) = param_4" (pointer_expression "*(undefined4 *)(puVar7 + 6)" * (cast_expression "(undefined4 *)(puVar7 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 6)" ( (binary_expression "puVar7 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 0xc) = param_7;" (assignment_expression "*(undefined4 *)(puVar7 + 0xc) = param_7" (pointer_expression "*(undefined4 *)(puVar7 + 0xc)" * (cast_expression "(undefined4 *)(puVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xc)" ( (binary_expression "puVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 8) = param_5;" (assignment_expression "*(undefined4 *)(puVar7 + 8) = param_5" (pointer_expression "*(undefined4 *)(puVar7 + 8)" * (cast_expression "(undefined4 *)(puVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar7[0x1c] = 0;" (assignment_expression "puVar7[0x1c] = 0" (subscript_expression "puVar7[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[0x1d] = 0;" (assignment_expression "puVar7[0x1d] = 0" (subscript_expression "puVar7[0x1d]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 10) = param_6;" (assignment_expression "*(undefined4 *)(puVar7 + 10) = param_6" (pointer_expression "*(undefined4 *)(puVar7 + 10)" * (cast_expression "(undefined4 *)(puVar7 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 10)" ( (binary_expression "puVar7 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar7[0x24] = 0;" (assignment_expression "puVar7[0x24] = 0" (subscript_expression "puVar7[0x24]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar3 = DAT_0008827c;" (assignment_expression "uVar3 = DAT_0008827c" identifier = identifier) ;) (expression_statement "puVar7[0x25] = 0;" (assignment_expression "puVar7[0x25] = 0" (subscript_expression "puVar7[0x25]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 0xe) = DAT_00088278;" (assignment_expression "*(undefined4 *)(puVar7 + 0xe) = DAT_00088278" (pointer_expression "*(undefined4 *)(puVar7 + 0xe)" * (cast_expression "(undefined4 *)(puVar7 + 0xe)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xe)" ( (binary_expression "puVar7 + 0xe" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x10) = uVar3;" (assignment_expression "*(undefined4 *)(puVar7 + 0x10) = uVar3" (pointer_expression "*(undefined4 *)(puVar7 + 0x10)" * (cast_expression "(undefined4 *)(puVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x10)" ( (binary_expression "puVar7 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x12) = DAT_00088288;" (assignment_expression "*(undefined4 *)(puVar7 + 0x12) = DAT_00088288" (pointer_expression "*(undefined4 *)(puVar7 + 0x12)" * (cast_expression "(undefined4 *)(puVar7 + 0x12)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x12)" ( (binary_expression "puVar7 + 0x12" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1;" (assignment_expression "*(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1" (pointer_expression "*(byte *)puVar7" * (cast_expression "(byte *)puVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(byte)*puVar7 & 0xfe | param_8 & 1" (binary_expression "(byte)*puVar7 & 0xfe" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" ( identifier )) * identifier) & number_literal) | (binary_expression "param_8 & 1" identifier & number_literal))) ;) (expression_statement "*puVar7 = *puVar7 & 1;" (assignment_expression "*puVar7 = *puVar7 & 1" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 & 1" (pointer_expression "*puVar7" * identifier) & number_literal)) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x18) = param_9;" (assignment_expression "*(undefined4 *)(puVar7 + 0x18) = param_9" (pointer_expression "*(undefined4 *)(puVar7 + 0x18)" * (cast_expression "(undefined4 *)(puVar7 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x18)" ( (binary_expression "puVar7 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = FUN_00023b80(puVar7 + 0x20);" (assignment_expression "uVar3 = FUN_00023b80(puVar7 + 0x20)" identifier = (call_expression "FUN_00023b80(puVar7 + 0x20)" identifier (argument_list "(puVar7 + 0x20)" ( (binary_expression "puVar7 + 0x20" identifier + number_literal) )))) ;) (expression_statement "iVar2 = DAT_00087694;" (assignment_expression "iVar2 = DAT_00087694" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x1e) = uVar3;" (assignment_expression "*(undefined4 *)(puVar7 + 0x1e) = uVar3" (pointer_expression "*(undefined4 *)(puVar7 + 0x1e)" * (cast_expression "(undefined4 *)(puVar7 + 0x1e)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x1e)" ( (binary_expression "puVar7 + 0x1e" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar2 == 0) {\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }\n    else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }" { (expression_statement "puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);" (assignment_expression "puVar1 = (undefined4 *)(DAT_000881a8 + 0x10)" identifier = (cast_expression "(undefined4 *)(DAT_000881a8 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000881a8 + 0x10)" ( (binary_expression "DAT_000881a8 + 0x10" identifier + number_literal) )))) ;) (expression_statement "piVar4 = (int *)(DAT_000881a8 + 0x14);" (assignment_expression "piVar4 = (int *)(DAT_000881a8 + 0x14)" identifier = (cast_expression "(int *)(DAT_000881a8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000881a8 + 0x14)" ( (binary_expression "DAT_000881a8 + 0x14" identifier + number_literal) )))) ;) }) (else_clause "else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }" else (compound_statement "{\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }" { (expression_statement "puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);" (assignment_expression "puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc)" identifier = (cast_expression "(undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00087f1c + 0x80) + 0xc)" ( (binary_expression "*(int *)(DAT_00087f1c + 0x80) + 0xc" (pointer_expression "*(int *)(DAT_00087f1c + 0x80)" * (cast_expression "(int *)(DAT_00087f1c + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00087f1c + 0x80)" ( (binary_expression "DAT_00087f1c + 0x80" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);" (assignment_expression "piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10)" identifier = (cast_expression "(int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00087f1c + 0x80) + 0x10)" ( (binary_expression "*(int *)(DAT_00087f1c + 0x80) + 0x10" (pointer_expression "*(int *)(DAT_00087f1c + 0x80)" * (cast_expression "(int *)(DAT_00087f1c + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00087f1c + 0x80)" ( (binary_expression "DAT_00087f1c + 0x80" identifier + number_literal) )))) + number_literal) )))) ;) }))) (if_statement "if (param_10 == 0) {\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }\n    else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }" if (parenthesized_expression "(param_10 == 0)" ( (binary_expression "param_10 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }" { (expression_statement "puVar7[0x14] = 0;" (assignment_expression "puVar7[0x14] = 0" (subscript_expression "puVar7[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[0x15] = 0;" (assignment_expression "puVar7[0x15] = 0" (subscript_expression "puVar7[0x15]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }" if (parenthesized_expression "(*piVar4 == 0)" ( (binary_expression "*piVar4 == 0" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }" { (expression_statement "*puVar1 = puVar7;" (assignment_expression "*puVar1 = puVar7" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "*piVar4 = (int)puVar7;" (assignment_expression "*piVar4 = (int)puVar7" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return puVar7;" return identifier ;) })) (expression_statement "*(ushort **)(*piVar4 + 0x28) = puVar7;" (assignment_expression "*(ushort **)(*piVar4 + 0x28) = puVar7" (pointer_expression "*(ushort **)(*piVar4 + 0x28)" * (cast_expression "(ushort **)(*piVar4 + 0x28)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x28)" ( (binary_expression "*piVar4 + 0x28" (pointer_expression "*piVar4" * identifier) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }" else (compound_statement "{\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }" { (expression_statement "*(undefined4 *)(puVar7 + 0x14) = *puVar1;" (assignment_expression "*(undefined4 *)(puVar7 + 0x14) = *puVar1" (pointer_expression "*(undefined4 *)(puVar7 + 0x14)" * (cast_expression "(undefined4 *)(puVar7 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x14)" ( (binary_expression "puVar7 + 0x14" identifier + number_literal) )))) = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = puVar7;" (assignment_expression "*puVar1 = puVar7" (pointer_expression "*puVar1" * identifier) = identifier) ;) (if_statement "if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }" if (parenthesized_expression "(*(int *)(puVar7 + 0x14) != 0)" ( (binary_expression "*(int *)(puVar7 + 0x14) != 0" (pointer_expression "*(int *)(puVar7 + 0x14)" * (cast_expression "(int *)(puVar7 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x14)" ( (binary_expression "puVar7 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        return puVar7;\n      }" { (return_statement "return puVar7;" return identifier ;) })) }))) (expression_statement "*piVar4 = (int)puVar7;" (assignment_expression "*piVar4 = (int)puVar7" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return puVar7;" return identifier ;) })) (expression_statement "uVar3 = dcgettext(0,"field fx_size too small to hold %d",5,uVar6);" (assignment_expression "uVar3 = dcgettext(0,"field fx_size too small to hold %d",5,uVar6)" identifier = (call_expression "dcgettext(0,"field fx_size too small to hold %d",5,uVar6)" identifier (argument_list "(0,"field fx_size too small to hold %d",5,uVar6)" ( number_literal , (string_literal ""field fx_size too small to hold %d"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_00029550(uVar3,param_3);" (call_expression "FUN_00029550(uVar3,param_3)" identifier (argument_list "(uVar3,param_3)" ( identifier , identifier ))) ;) comment (expression_statement "FUN_00029670("../../gas/write.c",0xa8,"fix_new_internal");" (call_expression "FUN_00029670("../../gas/write.c",0xa8,"fix_new_internal")" identifier (argument_list "("../../gas/write.c",0xa8,"fix_new_internal")" ( (string_literal ""../../gas/write.c"" " string_content ") , number_literal , (string_literal ""fix_new_internal"" " string_content ") ))) ;) }))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nfixS * __regparm3\nfix_new_internal(fragS *frag,int where,int size,symbolS *add_symbol,symbolS *sub_symbol,\n                offsetT offset,int pcrel,bfd_reloc_code_real r_type,int at_beginning)\n\n{\n  fixS **ppfVar1;\n  int iVar2;\n  undefined4 uVar3;\n  fixS **ppfVar4;\n  char *pcVar5;\n  uint uVar6;\n  fixS *pfVar7;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  n_fixups = n_fixups + 1;\n  if ((uint)((int)notes.chunk_limit - (int)notes.next_free) < 0x4c) {\n    _obstack_newchunk(&notes,0x4c);\n    pcVar5 = notes.next_free + 0x4c;\n    pfVar7 = (fixS *)notes.object_base;\n    if (pcVar5 != notes.object_base) goto LAB_00039eff;\n  }\n  else {\n    pcVar5 = notes.next_free + 0x4c;\n    pfVar7 = (fixS *)notes.object_base;\n    if (pcVar5 != notes.object_base) goto LAB_00039eff;\n  }\n  notes._40_1_ = notes._40_1_ | 2;\n  pfVar7 = (fixS *)notes.object_base;\nLAB_00039eff:\n  local_20 = (undefined4)((ulonglong)offset >> 0x20);\n  local_24 = (undefined4)offset;\n  uVar6 = (int)notes.chunk_limit - (int)notes.chunk;\n  notes.object_base = (char *)((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask);\n  if (uVar6 < (uint)((int)((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask) -\n                    (int)notes.chunk)) {\n    notes.object_base = notes.chunk_limit;\n  }\n  notes.next_free = notes.object_base;\n  pfVar7->fx_frag = frag;\n  pfVar7->fx_where = where;\n  pfVar7->fx_size = (uchar)size;\n  if ((size & 0xffffff00U) == 0) {\n    pfVar7->fx_bit_fixP = (bit_fixS *)0x0;\n    *(undefined4 *)&pfVar7->fx_addnumber = 0;\n    pfVar7->fx_addsy = add_symbol;\n    *(undefined4 *)((int)&pfVar7->fx_offset + 4) = local_20;\n    pfVar7->fx_subsy = sub_symbol;\n    *(undefined4 *)((int)&pfVar7->fx_addnumber + 4) = 0;\n    *(undefined4 *)&pfVar7->fx_offset = local_24;\n    (pfVar7->tc_fix_data).opnd = IA64_OPND_NIL;\n    uVar3 = dot_value._4_4_;\n    *(undefined4 *)&pfVar7->fx_dot_value = (undefined4)dot_value;\n    *(undefined4 *)((int)&pfVar7->fx_dot_value + 4) = uVar3;\n    pfVar7->fx_dot_frag = dot_frag;\n    *(byte *)pfVar7 = *(byte *)pfVar7 & 0xfe | (byte)pcrel & 1;\n    *(ushort *)pfVar7 = *(ushort *)pfVar7 & 1;\n    pfVar7->fx_r_type = r_type;\n    pcVar5 = as_where(&pfVar7->fx_line);\n    iVar2 = frags_chained;\n    pfVar7->fx_file = pcVar5;\n    if (iVar2 == 0) {\n      ppfVar1 = &frchain_now->fix_root;\n      ppfVar4 = &frchain_now->fix_tail;\n    }\n    else {\n      ppfVar1 = (fixS **)((int)now_seg->userdata + 0xc);\n      ppfVar4 = (fixS **)((int)now_seg->userdata + 0x10);\n    }\n    if (at_beginning == 0) {\n      pfVar7->fx_next = (fix *)0x0;\n      if (*ppfVar4 == (fixS *)0x0) {\n        *ppfVar1 = pfVar7;\n        *ppfVar4 = pfVar7;\n        return pfVar7;\n      }\n      (*ppfVar4)->fx_next = pfVar7;\n    }\n    else {\n      pfVar7->fx_next = *ppfVar1;\n      *ppfVar1 = pfVar7;\n      if (pfVar7->fx_next != (fix *)0x0) {\n        return pfVar7;\n      }\n    }\n    *ppfVar4 = pfVar7;\n    return pfVar7;\n  }\n  pcVar5 = (char *)dcgettext(0,"field fx_size too small to hold %d",5,uVar6);\n  as_bad(pcVar5,size);\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/write.c",0xa8,"fix_new_internal");\n}\n\n" comment (ERROR "fixS * __regparm3\nfix_new_internal(fragS *frag,int where,int size,symbolS *add_symbol,symbolS *sub_symbol,\n                offsetT offset,int pcrel,bfd_reloc_code_real r_type,int at_beginning)" (binary_expression "fixS * __regparm3\nfix_new_internal(fragS *frag,int where,int size,symbolS *add_symbol,symbolS *sub_symbol,\n                offsetT offset,int pcrel,bfd_reloc_code_real r_type,int at_beginning)" identifier * (ERROR "__regparm3" identifier) (call_expression "fix_new_internal(fragS *frag,int where,int size,symbolS *add_symbol,symbolS *sub_symbol,\n                offsetT offset,int pcrel,bfd_reloc_code_real r_type,int at_beginning)" identifier (argument_list "(fragS *frag,int where,int size,symbolS *add_symbol,symbolS *sub_symbol,\n                offsetT offset,int pcrel,bfd_reloc_code_real r_type,int at_beginning)" ( (binary_expression "fragS *frag" identifier * identifier) , (ERROR "int" identifier) identifier , (ERROR "int" identifier) identifier , (binary_expression "symbolS *add_symbol" identifier * identifier) , (binary_expression "symbolS *sub_symbol" identifier * identifier) , identifier (ERROR "offset" identifier) , (ERROR "int" identifier) identifier , identifier (ERROR "r_type" identifier) , (ERROR "int" identifier) identifier ))))) (compound_statement "{\n  fixS **ppfVar1;\n  int iVar2;\n  undefined4 uVar3;\n  fixS **ppfVar4;\n  char *pcVar5;\n  uint uVar6;\n  fixS *pfVar7;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  n_fixups = n_fixups + 1;\n  if ((uint)((int)notes.chunk_limit - (int)notes.next_free) < 0x4c) {\n    _obstack_newchunk(&notes,0x4c);\n    pcVar5 = notes.next_free + 0x4c;\n    pfVar7 = (fixS *)notes.object_base;\n    if (pcVar5 != notes.object_base) goto LAB_00039eff;\n  }\n  else {\n    pcVar5 = notes.next_free + 0x4c;\n    pfVar7 = (fixS *)notes.object_base;\n    if (pcVar5 != notes.object_base) goto LAB_00039eff;\n  }\n  notes._40_1_ = notes._40_1_ | 2;\n  pfVar7 = (fixS *)notes.object_base;\nLAB_00039eff:\n  local_20 = (undefined4)((ulonglong)offset >> 0x20);\n  local_24 = (undefined4)offset;\n  uVar6 = (int)notes.chunk_limit - (int)notes.chunk;\n  notes.object_base = (char *)((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask);\n  if (uVar6 < (uint)((int)((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask) -\n                    (int)notes.chunk)) {\n    notes.object_base = notes.chunk_limit;\n  }\n  notes.next_free = notes.object_base;\n  pfVar7->fx_frag = frag;\n  pfVar7->fx_where = where;\n  pfVar7->fx_size = (uchar)size;\n  if ((size & 0xffffff00U) == 0) {\n    pfVar7->fx_bit_fixP = (bit_fixS *)0x0;\n    *(undefined4 *)&pfVar7->fx_addnumber = 0;\n    pfVar7->fx_addsy = add_symbol;\n    *(undefined4 *)((int)&pfVar7->fx_offset + 4) = local_20;\n    pfVar7->fx_subsy = sub_symbol;\n    *(undefined4 *)((int)&pfVar7->fx_addnumber + 4) = 0;\n    *(undefined4 *)&pfVar7->fx_offset = local_24;\n    (pfVar7->tc_fix_data).opnd = IA64_OPND_NIL;\n    uVar3 = dot_value._4_4_;\n    *(undefined4 *)&pfVar7->fx_dot_value = (undefined4)dot_value;\n    *(undefined4 *)((int)&pfVar7->fx_dot_value + 4) = uVar3;\n    pfVar7->fx_dot_frag = dot_frag;\n    *(byte *)pfVar7 = *(byte *)pfVar7 & 0xfe | (byte)pcrel & 1;\n    *(ushort *)pfVar7 = *(ushort *)pfVar7 & 1;\n    pfVar7->fx_r_type = r_type;\n    pcVar5 = as_where(&pfVar7->fx_line);\n    iVar2 = frags_chained;\n    pfVar7->fx_file = pcVar5;\n    if (iVar2 == 0) {\n      ppfVar1 = &frchain_now->fix_root;\n      ppfVar4 = &frchain_now->fix_tail;\n    }\n    else {\n      ppfVar1 = (fixS **)((int)now_seg->userdata + 0xc);\n      ppfVar4 = (fixS **)((int)now_seg->userdata + 0x10);\n    }\n    if (at_beginning == 0) {\n      pfVar7->fx_next = (fix *)0x0;\n      if (*ppfVar4 == (fixS *)0x0) {\n        *ppfVar1 = pfVar7;\n        *ppfVar4 = pfVar7;\n        return pfVar7;\n      }\n      (*ppfVar4)->fx_next = pfVar7;\n    }\n    else {\n      pfVar7->fx_next = *ppfVar1;\n      *ppfVar1 = pfVar7;\n      if (pfVar7->fx_next != (fix *)0x0) {\n        return pfVar7;\n      }\n    }\n    *ppfVar4 = pfVar7;\n    return pfVar7;\n  }\n  pcVar5 = (char *)dcgettext(0,"field fx_size too small to hold %d",5,uVar6);\n  as_bad(pcVar5,size);\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/write.c",0xa8,"fix_new_internal");\n}" { (declaration "fixS **ppfVar1;" type_identifier (pointer_declarator "**ppfVar1" * (pointer_declarator "*ppfVar1" * identifier)) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "fixS **ppfVar4;" type_identifier (pointer_declarator "**ppfVar4" * (pointer_declarator "*ppfVar4" * identifier)) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "fixS *pfVar7;" type_identifier (pointer_declarator "*pfVar7" * identifier) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "n_fixups = n_fixups + 1;" (assignment_expression "n_fixups = n_fixups + 1" identifier = (binary_expression "n_fixups + 1" identifier + number_literal)) ;) (if_statement "if ((uint)((int)notes.chunk_limit - (int)notes.next_free) < 0x4c) {\n    _obstack_newchunk(&notes,0x4c);\n    pcVar5 = notes.next_free + 0x4c;\n    pfVar7 = (fixS *)notes.object_base;\n    if (pcVar5 != notes.object_base) goto LAB_00039eff;\n  }\n  else {\n    pcVar5 = notes.next_free + 0x4c;\n    pfVar7 = (fixS *)notes.object_base;\n    if (pcVar5 != notes.object_base) goto LAB_00039eff;\n  }" if (parenthesized_expression "((uint)((int)notes.chunk_limit - (int)notes.next_free) < 0x4c)" ( (binary_expression "(uint)((int)notes.chunk_limit - (int)notes.next_free) < 0x4c" (call_expression "(uint)((int)notes.chunk_limit - (int)notes.next_free)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)notes.chunk_limit - (int)notes.next_free)" ( (binary_expression "(int)notes.chunk_limit - (int)notes.next_free" (cast_expression "(int)notes.chunk_limit" ( (type_descriptor "int" primitive_type) ) (field_expression "notes.chunk_limit" identifier . field_identifier)) - (cast_expression "(int)notes.next_free" ( (type_descriptor "int" primitive_type) ) (field_expression "notes.next_free" identifier . field_identifier))) ))) < number_literal) )) (compound_statement "{\n    _obstack_newchunk(&notes,0x4c);\n    pcVar5 = notes.next_free + 0x4c;\n    pfVar7 = (fixS *)notes.object_base;\n    if (pcVar5 != notes.object_base) goto LAB_00039eff;\n  }" { (expression_statement "_obstack_newchunk(&notes,0x4c);" (call_expression "_obstack_newchunk(&notes,0x4c)" identifier (argument_list "(&notes,0x4c)" ( (pointer_expression "&notes" & identifier) , number_literal ))) ;) (expression_statement "pcVar5 = notes.next_free + 0x4c;" (assignment_expression "pcVar5 = notes.next_free + 0x4c" identifier = (binary_expression "notes.next_free + 0x4c" (field_expression "notes.next_free" identifier . field_identifier) + number_literal)) ;) (expression_statement "pfVar7 = (fixS *)notes.object_base;" (assignment_expression "pfVar7 = (fixS *)notes.object_base" identifier = (cast_expression "(fixS *)notes.object_base" ( (type_descriptor "fixS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "notes.object_base" identifier . field_identifier))) ;) (if_statement "if (pcVar5 != notes.object_base) goto LAB_00039eff;" if (parenthesized_expression "(pcVar5 != notes.object_base)" ( (binary_expression "pcVar5 != notes.object_base" identifier != (field_expression "notes.object_base" identifier . field_identifier)) )) (goto_statement "goto LAB_00039eff;" goto statement_identifier ;)) }) (else_clause "else {\n    pcVar5 = notes.next_free + 0x4c;\n    pfVar7 = (fixS *)notes.object_base;\n    if (pcVar5 != notes.object_base) goto LAB_00039eff;\n  }" else (compound_statement "{\n    pcVar5 = notes.next_free + 0x4c;\n    pfVar7 = (fixS *)notes.object_base;\n    if (pcVar5 != notes.object_base) goto LAB_00039eff;\n  }" { (expression_statement "pcVar5 = notes.next_free + 0x4c;" (assignment_expression "pcVar5 = notes.next_free + 0x4c" identifier = (binary_expression "notes.next_free + 0x4c" (field_expression "notes.next_free" identifier . field_identifier) + number_literal)) ;) (expression_statement "pfVar7 = (fixS *)notes.object_base;" (assignment_expression "pfVar7 = (fixS *)notes.object_base" identifier = (cast_expression "(fixS *)notes.object_base" ( (type_descriptor "fixS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "notes.object_base" identifier . field_identifier))) ;) (if_statement "if (pcVar5 != notes.object_base) goto LAB_00039eff;" if (parenthesized_expression "(pcVar5 != notes.object_base)" ( (binary_expression "pcVar5 != notes.object_base" identifier != (field_expression "notes.object_base" identifier . field_identifier)) )) (goto_statement "goto LAB_00039eff;" goto statement_identifier ;)) }))) (expression_statement "notes._40_1_ = notes._40_1_ | 2;" (assignment_expression "notes._40_1_ = notes._40_1_ | 2" (field_expression "notes._40_1_" identifier . field_identifier) = (binary_expression "notes._40_1_ | 2" (field_expression "notes._40_1_" identifier . field_identifier) | number_literal)) ;) (expression_statement "pfVar7 = (fixS *)notes.object_base;" (assignment_expression "pfVar7 = (fixS *)notes.object_base" identifier = (cast_expression "(fixS *)notes.object_base" ( (type_descriptor "fixS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "notes.object_base" identifier . field_identifier))) ;) (labeled_statement "LAB_00039eff:\n  local_20 = (undefined4)((ulonglong)offset >> 0x20);" statement_identifier : (expression_statement "local_20 = (undefined4)((ulonglong)offset >> 0x20);" (assignment_expression "local_20 = (undefined4)((ulonglong)offset >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)offset >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)offset >> 0x20)" ( (binary_expression "(ulonglong)offset >> 0x20" (cast_expression "(ulonglong)offset" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "local_24 = (undefined4)offset;" (assignment_expression "local_24 = (undefined4)offset" identifier = (cast_expression "(undefined4)offset" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "uVar6 = (int)notes.chunk_limit - (int)notes.chunk;" (assignment_expression "uVar6 = (int)notes.chunk_limit - (int)notes.chunk" identifier = (binary_expression "(int)notes.chunk_limit - (int)notes.chunk" (cast_expression "(int)notes.chunk_limit" ( (type_descriptor "int" primitive_type) ) (field_expression "notes.chunk_limit" identifier . field_identifier)) - (cast_expression "(int)notes.chunk" ( (type_descriptor "int" primitive_type) ) (field_expression "notes.chunk" identifier . field_identifier)))) ;) (expression_statement "notes.object_base = (char *)((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask);" (assignment_expression "notes.object_base = (char *)((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask)" (field_expression "notes.object_base" identifier . field_identifier) = (cast_expression "(char *)((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask)" ( (binary_expression "(uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask" (call_expression "(uint)(pcVar5 + notes.alignment_mask)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar5 + notes.alignment_mask)" ( (binary_expression "pcVar5 + notes.alignment_mask" identifier + (field_expression "notes.alignment_mask" identifier . field_identifier)) ))) & (unary_expression "~notes.alignment_mask" ~ (field_expression "notes.alignment_mask" identifier . field_identifier))) )))) ;) (if_statement "if (uVar6 < (uint)((int)((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask) -\n                    (int)notes.chunk)) {\n    notes.object_base = notes.chunk_limit;\n  }" if (parenthesized_expression "(uVar6 < (uint)((int)((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask) -\n                    (int)notes.chunk))" ( (binary_expression "uVar6 < (uint)((int)((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask) -\n                    (int)notes.chunk)" identifier < (call_expression "(uint)((int)((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask) -\n                    (int)notes.chunk)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask) -\n                    (int)notes.chunk)" ( (binary_expression "(int)((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask) -\n                    (int)notes.chunk" (cast_expression "(int)((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask)" ( (binary_expression "(uint)(pcVar5 + notes.alignment_mask) & ~notes.alignment_mask" (call_expression "(uint)(pcVar5 + notes.alignment_mask)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar5 + notes.alignment_mask)" ( (binary_expression "pcVar5 + notes.alignment_mask" identifier + (field_expression "notes.alignment_mask" identifier . field_identifier)) ))) & (unary_expression "~notes.alignment_mask" ~ (field_expression "notes.alignment_mask" identifier . field_identifier))) ))) - (cast_expression "(int)notes.chunk" ( (type_descriptor "int" primitive_type) ) (field_expression "notes.chunk" identifier . field_identifier))) )))) )) (compound_statement "{\n    notes.object_base = notes.chunk_limit;\n  }" { (expression_statement "notes.object_base = notes.chunk_limit;" (assignment_expression "notes.object_base = notes.chunk_limit" (field_expression "notes.object_base" identifier . field_identifier) = (field_expression "notes.chunk_limit" identifier . field_identifier)) ;) })) (expression_statement "notes.next_free = notes.object_base;" (assignment_expression "notes.next_free = notes.object_base" (field_expression "notes.next_free" identifier . field_identifier) = (field_expression "notes.object_base" identifier . field_identifier)) ;) (expression_statement "pfVar7->fx_frag = frag;" (assignment_expression "pfVar7->fx_frag = frag" (field_expression "pfVar7->fx_frag" identifier -> field_identifier) = identifier) ;) (expression_statement "pfVar7->fx_where = where;" (assignment_expression "pfVar7->fx_where = where" (field_expression "pfVar7->fx_where" identifier -> field_identifier) = identifier) ;) (expression_statement "pfVar7->fx_size = (uchar)size;" (assignment_expression "pfVar7->fx_size = (uchar)size" (field_expression "pfVar7->fx_size" identifier -> field_identifier) = (cast_expression "(uchar)size" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (if_statement "if ((size & 0xffffff00U) == 0) {\n    pfVar7->fx_bit_fixP = (bit_fixS *)0x0;\n    *(undefined4 *)&pfVar7->fx_addnumber = 0;\n    pfVar7->fx_addsy = add_symbol;\n    *(undefined4 *)((int)&pfVar7->fx_offset + 4) = local_20;\n    pfVar7->fx_subsy = sub_symbol;\n    *(undefined4 *)((int)&pfVar7->fx_addnumber + 4) = 0;\n    *(undefined4 *)&pfVar7->fx_offset = local_24;\n    (pfVar7->tc_fix_data).opnd = IA64_OPND_NIL;\n    uVar3 = dot_value._4_4_;\n    *(undefined4 *)&pfVar7->fx_dot_value = (undefined4)dot_value;\n    *(undefined4 *)((int)&pfVar7->fx_dot_value + 4) = uVar3;\n    pfVar7->fx_dot_frag = dot_frag;\n    *(byte *)pfVar7 = *(byte *)pfVar7 & 0xfe | (byte)pcrel & 1;\n    *(ushort *)pfVar7 = *(ushort *)pfVar7 & 1;\n    pfVar7->fx_r_type = r_type;\n    pcVar5 = as_where(&pfVar7->fx_line);\n    iVar2 = frags_chained;\n    pfVar7->fx_file = pcVar5;\n    if (iVar2 == 0) {\n      ppfVar1 = &frchain_now->fix_root;\n      ppfVar4 = &frchain_now->fix_tail;\n    }\n    else {\n      ppfVar1 = (fixS **)((int)now_seg->userdata + 0xc);\n      ppfVar4 = (fixS **)((int)now_seg->userdata + 0x10);\n    }\n    if (at_beginning == 0) {\n      pfVar7->fx_next = (fix *)0x0;\n      if (*ppfVar4 == (fixS *)0x0) {\n        *ppfVar1 = pfVar7;\n        *ppfVar4 = pfVar7;\n        return pfVar7;\n      }\n      (*ppfVar4)->fx_next = pfVar7;\n    }\n    else {\n      pfVar7->fx_next = *ppfVar1;\n      *ppfVar1 = pfVar7;\n      if (pfVar7->fx_next != (fix *)0x0) {\n        return pfVar7;\n      }\n    }\n    *ppfVar4 = pfVar7;\n    return pfVar7;\n  }" if (parenthesized_expression "((size & 0xffffff00U) == 0)" ( (binary_expression "(size & 0xffffff00U) == 0" (parenthesized_expression "(size & 0xffffff00U)" ( (binary_expression "size & 0xffffff00U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    pfVar7->fx_bit_fixP = (bit_fixS *)0x0;\n    *(undefined4 *)&pfVar7->fx_addnumber = 0;\n    pfVar7->fx_addsy = add_symbol;\n    *(undefined4 *)((int)&pfVar7->fx_offset + 4) = local_20;\n    pfVar7->fx_subsy = sub_symbol;\n    *(undefined4 *)((int)&pfVar7->fx_addnumber + 4) = 0;\n    *(undefined4 *)&pfVar7->fx_offset = local_24;\n    (pfVar7->tc_fix_data).opnd = IA64_OPND_NIL;\n    uVar3 = dot_value._4_4_;\n    *(undefined4 *)&pfVar7->fx_dot_value = (undefined4)dot_value;\n    *(undefined4 *)((int)&pfVar7->fx_dot_value + 4) = uVar3;\n    pfVar7->fx_dot_frag = dot_frag;\n    *(byte *)pfVar7 = *(byte *)pfVar7 & 0xfe | (byte)pcrel & 1;\n    *(ushort *)pfVar7 = *(ushort *)pfVar7 & 1;\n    pfVar7->fx_r_type = r_type;\n    pcVar5 = as_where(&pfVar7->fx_line);\n    iVar2 = frags_chained;\n    pfVar7->fx_file = pcVar5;\n    if (iVar2 == 0) {\n      ppfVar1 = &frchain_now->fix_root;\n      ppfVar4 = &frchain_now->fix_tail;\n    }\n    else {\n      ppfVar1 = (fixS **)((int)now_seg->userdata + 0xc);\n      ppfVar4 = (fixS **)((int)now_seg->userdata + 0x10);\n    }\n    if (at_beginning == 0) {\n      pfVar7->fx_next = (fix *)0x0;\n      if (*ppfVar4 == (fixS *)0x0) {\n        *ppfVar1 = pfVar7;\n        *ppfVar4 = pfVar7;\n        return pfVar7;\n      }\n      (*ppfVar4)->fx_next = pfVar7;\n    }\n    else {\n      pfVar7->fx_next = *ppfVar1;\n      *ppfVar1 = pfVar7;\n      if (pfVar7->fx_next != (fix *)0x0) {\n        return pfVar7;\n      }\n    }\n    *ppfVar4 = pfVar7;\n    return pfVar7;\n  }" { (expression_statement "pfVar7->fx_bit_fixP = (bit_fixS *)0x0;" (assignment_expression "pfVar7->fx_bit_fixP = (bit_fixS *)0x0" (field_expression "pfVar7->fx_bit_fixP" identifier -> field_identifier) = (cast_expression "(bit_fixS *)0x0" ( (type_descriptor "bit_fixS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)&pfVar7->fx_addnumber = 0;" (assignment_expression "*(undefined4 *)&pfVar7->fx_addnumber = 0" (pointer_expression "*(undefined4 *)&pfVar7->fx_addnumber" * (cast_expression "(undefined4 *)&pfVar7->fx_addnumber" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pfVar7->fx_addnumber" & (field_expression "pfVar7->fx_addnumber" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "pfVar7->fx_addsy = add_symbol;" (assignment_expression "pfVar7->fx_addsy = add_symbol" (field_expression "pfVar7->fx_addsy" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)((int)&pfVar7->fx_offset + 4) = local_20;" (assignment_expression "*(undefined4 *)((int)&pfVar7->fx_offset + 4) = local_20" (pointer_expression "*(undefined4 *)((int)&pfVar7->fx_offset + 4)" * (cast_expression "(undefined4 *)((int)&pfVar7->fx_offset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pfVar7->fx_offset + 4)" ( (binary_expression "(int)&pfVar7->fx_offset + 4" (cast_expression "(int)&pfVar7->fx_offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pfVar7->fx_offset" & (field_expression "pfVar7->fx_offset" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pfVar7->fx_subsy = sub_symbol;" (assignment_expression "pfVar7->fx_subsy = sub_symbol" (field_expression "pfVar7->fx_subsy" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)((int)&pfVar7->fx_addnumber + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pfVar7->fx_addnumber + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pfVar7->fx_addnumber + 4)" * (cast_expression "(undefined4 *)((int)&pfVar7->fx_addnumber + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pfVar7->fx_addnumber + 4)" ( (binary_expression "(int)&pfVar7->fx_addnumber + 4" (cast_expression "(int)&pfVar7->fx_addnumber" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pfVar7->fx_addnumber" & (field_expression "pfVar7->fx_addnumber" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&pfVar7->fx_offset = local_24;" (assignment_expression "*(undefined4 *)&pfVar7->fx_offset = local_24" (pointer_expression "*(undefined4 *)&pfVar7->fx_offset" * (cast_expression "(undefined4 *)&pfVar7->fx_offset" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pfVar7->fx_offset" & (field_expression "pfVar7->fx_offset" identifier -> field_identifier)))) = identifier) ;) (expression_statement "(pfVar7->tc_fix_data).opnd = IA64_OPND_NIL;" (assignment_expression "(pfVar7->tc_fix_data).opnd = IA64_OPND_NIL" (field_expression "(pfVar7->tc_fix_data).opnd" (parenthesized_expression "(pfVar7->tc_fix_data)" ( (field_expression "pfVar7->tc_fix_data" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "uVar3 = dot_value._4_4_;" (assignment_expression "uVar3 = dot_value._4_4_" identifier = (field_expression "dot_value._4_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)&pfVar7->fx_dot_value = (undefined4)dot_value;" (assignment_expression "*(undefined4 *)&pfVar7->fx_dot_value = (undefined4)dot_value" (pointer_expression "*(undefined4 *)&pfVar7->fx_dot_value" * (cast_expression "(undefined4 *)&pfVar7->fx_dot_value" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pfVar7->fx_dot_value" & (field_expression "pfVar7->fx_dot_value" identifier -> field_identifier)))) = (cast_expression "(undefined4)dot_value" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)((int)&pfVar7->fx_dot_value + 4) = uVar3;" (assignment_expression "*(undefined4 *)((int)&pfVar7->fx_dot_value + 4) = uVar3" (pointer_expression "*(undefined4 *)((int)&pfVar7->fx_dot_value + 4)" * (cast_expression "(undefined4 *)((int)&pfVar7->fx_dot_value + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pfVar7->fx_dot_value + 4)" ( (binary_expression "(int)&pfVar7->fx_dot_value + 4" (cast_expression "(int)&pfVar7->fx_dot_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pfVar7->fx_dot_value" & (field_expression "pfVar7->fx_dot_value" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pfVar7->fx_dot_frag = dot_frag;" (assignment_expression "pfVar7->fx_dot_frag = dot_frag" (field_expression "pfVar7->fx_dot_frag" identifier -> field_identifier) = identifier) ;) (expression_statement "*(byte *)pfVar7 = *(byte *)pfVar7 & 0xfe | (byte)pcrel & 1;" (assignment_expression "*(byte *)pfVar7 = *(byte *)pfVar7 & 0xfe | (byte)pcrel & 1" (pointer_expression "*(byte *)pfVar7" * (cast_expression "(byte *)pfVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "*(byte *)pfVar7 & 0xfe | (byte)pcrel & 1" (binary_expression "*(byte *)pfVar7 & 0xfe" (pointer_expression "*(byte *)pfVar7" * (cast_expression "(byte *)pfVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) | (binary_expression "(byte)pcrel & 1" (cast_expression "(byte)pcrel" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal))) ;) (expression_statement "*(ushort *)pfVar7 = *(ushort *)pfVar7 & 1;" (assignment_expression "*(ushort *)pfVar7 = *(ushort *)pfVar7 & 1" (pointer_expression "*(ushort *)pfVar7" * (cast_expression "(ushort *)pfVar7" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "*(ushort *)pfVar7 & 1" (pointer_expression "*(ushort *)pfVar7" * (cast_expression "(ushort *)pfVar7" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) (expression_statement "pfVar7->fx_r_type = r_type;" (assignment_expression "pfVar7->fx_r_type = r_type" (field_expression "pfVar7->fx_r_type" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar5 = as_where(&pfVar7->fx_line);" (assignment_expression "pcVar5 = as_where(&pfVar7->fx_line)" identifier = (call_expression "as_where(&pfVar7->fx_line)" identifier (argument_list "(&pfVar7->fx_line)" ( (pointer_expression "&pfVar7->fx_line" & (field_expression "pfVar7->fx_line" identifier -> field_identifier)) )))) ;) (expression_statement "iVar2 = frags_chained;" (assignment_expression "iVar2 = frags_chained" identifier = identifier) ;) (expression_statement "pfVar7->fx_file = pcVar5;" (assignment_expression "pfVar7->fx_file = pcVar5" (field_expression "pfVar7->fx_file" identifier -> field_identifier) = identifier) ;) (if_statement "if (iVar2 == 0) {\n      ppfVar1 = &frchain_now->fix_root;\n      ppfVar4 = &frchain_now->fix_tail;\n    }\n    else {\n      ppfVar1 = (fixS **)((int)now_seg->userdata + 0xc);\n      ppfVar4 = (fixS **)((int)now_seg->userdata + 0x10);\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      ppfVar1 = &frchain_now->fix_root;\n      ppfVar4 = &frchain_now->fix_tail;\n    }" { (expression_statement "ppfVar1 = &frchain_now->fix_root;" (assignment_expression "ppfVar1 = &frchain_now->fix_root" identifier = (pointer_expression "&frchain_now->fix_root" & (field_expression "frchain_now->fix_root" identifier -> field_identifier))) ;) (expression_statement "ppfVar4 = &frchain_now->fix_tail;" (assignment_expression "ppfVar4 = &frchain_now->fix_tail" identifier = (pointer_expression "&frchain_now->fix_tail" & (field_expression "frchain_now->fix_tail" identifier -> field_identifier))) ;) }) (else_clause "else {\n      ppfVar1 = (fixS **)((int)now_seg->userdata + 0xc);\n      ppfVar4 = (fixS **)((int)now_seg->userdata + 0x10);\n    }" else (compound_statement "{\n      ppfVar1 = (fixS **)((int)now_seg->userdata + 0xc);\n      ppfVar4 = (fixS **)((int)now_seg->userdata + 0x10);\n    }" { (expression_statement "ppfVar1 = (fixS **)((int)now_seg->userdata + 0xc);" (assignment_expression "ppfVar1 = (fixS **)((int)now_seg->userdata + 0xc)" identifier = (cast_expression "(fixS **)((int)now_seg->userdata + 0xc)" ( (type_descriptor "fixS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)now_seg->userdata + 0xc)" ( (binary_expression "(int)now_seg->userdata + 0xc" (cast_expression "(int)now_seg->userdata" ( (type_descriptor "int" primitive_type) ) (field_expression "now_seg->userdata" identifier -> field_identifier)) + number_literal) )))) ;) (expression_statement "ppfVar4 = (fixS **)((int)now_seg->userdata + 0x10);" (assignment_expression "ppfVar4 = (fixS **)((int)now_seg->userdata + 0x10)" identifier = (cast_expression "(fixS **)((int)now_seg->userdata + 0x10)" ( (type_descriptor "fixS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)now_seg->userdata + 0x10)" ( (binary_expression "(int)now_seg->userdata + 0x10" (cast_expression "(int)now_seg->userdata" ( (type_descriptor "int" primitive_type) ) (field_expression "now_seg->userdata" identifier -> field_identifier)) + number_literal) )))) ;) }))) (if_statement "if (at_beginning == 0) {\n      pfVar7->fx_next = (fix *)0x0;\n      if (*ppfVar4 == (fixS *)0x0) {\n        *ppfVar1 = pfVar7;\n        *ppfVar4 = pfVar7;\n        return pfVar7;\n      }\n      (*ppfVar4)->fx_next = pfVar7;\n    }\n    else {\n      pfVar7->fx_next = *ppfVar1;\n      *ppfVar1 = pfVar7;\n      if (pfVar7->fx_next != (fix *)0x0) {\n        return pfVar7;\n      }\n    }" if (parenthesized_expression "(at_beginning == 0)" ( (binary_expression "at_beginning == 0" identifier == number_literal) )) (compound_statement "{\n      pfVar7->fx_next = (fix *)0x0;\n      if (*ppfVar4 == (fixS *)0x0) {\n        *ppfVar1 = pfVar7;\n        *ppfVar4 = pfVar7;\n        return pfVar7;\n      }\n      (*ppfVar4)->fx_next = pfVar7;\n    }" { (expression_statement "pfVar7->fx_next = (fix *)0x0;" (assignment_expression "pfVar7->fx_next = (fix *)0x0" (field_expression "pfVar7->fx_next" identifier -> field_identifier) = (cast_expression "(fix *)0x0" ( (type_descriptor "fix *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*ppfVar4 == (fixS *)0x0) {\n        *ppfVar1 = pfVar7;\n        *ppfVar4 = pfVar7;\n        return pfVar7;\n      }" if (parenthesized_expression "(*ppfVar4 == (fixS *)0x0)" ( (binary_expression "*ppfVar4 == (fixS *)0x0" (pointer_expression "*ppfVar4" * identifier) == (cast_expression "(fixS *)0x0" ( (type_descriptor "fixS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *ppfVar1 = pfVar7;\n        *ppfVar4 = pfVar7;\n        return pfVar7;\n      }" { (expression_statement "*ppfVar1 = pfVar7;" (assignment_expression "*ppfVar1 = pfVar7" (pointer_expression "*ppfVar1" * identifier) = identifier) ;) (expression_statement "*ppfVar4 = pfVar7;" (assignment_expression "*ppfVar4 = pfVar7" (pointer_expression "*ppfVar4" * identifier) = identifier) ;) (return_statement "return pfVar7;" return identifier ;) })) (expression_statement "(*ppfVar4)->fx_next = pfVar7;" (assignment_expression "(*ppfVar4)->fx_next = pfVar7" (field_expression "(*ppfVar4)->fx_next" (parenthesized_expression "(*ppfVar4)" ( (pointer_expression "*ppfVar4" * identifier) )) -> field_identifier) = identifier) ;) }) (else_clause "else {\n      pfVar7->fx_next = *ppfVar1;\n      *ppfVar1 = pfVar7;\n      if (pfVar7->fx_next != (fix *)0x0) {\n        return pfVar7;\n      }\n    }" else (compound_statement "{\n      pfVar7->fx_next = *ppfVar1;\n      *ppfVar1 = pfVar7;\n      if (pfVar7->fx_next != (fix *)0x0) {\n        return pfVar7;\n      }\n    }" { (expression_statement "pfVar7->fx_next = *ppfVar1;" (assignment_expression "pfVar7->fx_next = *ppfVar1" (field_expression "pfVar7->fx_next" identifier -> field_identifier) = (pointer_expression "*ppfVar1" * identifier)) ;) (expression_statement "*ppfVar1 = pfVar7;" (assignment_expression "*ppfVar1 = pfVar7" (pointer_expression "*ppfVar1" * identifier) = identifier) ;) (if_statement "if (pfVar7->fx_next != (fix *)0x0) {\n        return pfVar7;\n      }" if (parenthesized_expression "(pfVar7->fx_next != (fix *)0x0)" ( (binary_expression "pfVar7->fx_next != (fix *)0x0" (field_expression "pfVar7->fx_next" identifier -> field_identifier) != (cast_expression "(fix *)0x0" ( (type_descriptor "fix *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return pfVar7;\n      }" { (return_statement "return pfVar7;" return identifier ;) })) }))) (expression_statement "*ppfVar4 = pfVar7;" (assignment_expression "*ppfVar4 = pfVar7" (pointer_expression "*ppfVar4" * identifier) = identifier) ;) (return_statement "return pfVar7;" return identifier ;) })) (expression_statement "pcVar5 = (char *)dcgettext(0,"field fx_size too small to hold %d",5,uVar6);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"field fx_size too small to hold %d",5,uVar6)" identifier = (cast_expression "(char *)dcgettext(0,"field fx_size too small to hold %d",5,uVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"field fx_size too small to hold %d",5,uVar6)" identifier (argument_list "(0,"field fx_size too small to hold %d",5,uVar6)" ( number_literal , (string_literal ""field fx_size too small to hold %d"" " string_content ") , number_literal , identifier ))))) ;) (expression_statement "as_bad(pcVar5,size);" (call_expression "as_bad(pcVar5,size)" identifier (argument_list "(pcVar5,size)" ( identifier , identifier ))) ;) comment (expression_statement "as_abort("../../gas/write.c",0xa8,"fix_new_internal");" (call_expression "as_abort("../../gas/write.c",0xa8,"fix_new_internal")" identifier (argument_list "("../../gas/write.c",0xa8,"fix_new_internal")" ( (string_literal ""../../gas/write.c"" " string_content ") , number_literal , (string_literal ""fix_new_internal"" " string_content ") ))) ;) }))
(translation_unit "ushort * __regparm3\nFUN_00039ea0(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined4 param_7,byte param_8,undefined4 param_9\n            ,int param_10)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  ushort *puVar5;\n  uint uVar6;\n  ushort *puVar7;\n  \n  DAT_00087690 = DAT_00087690 + 1;\n  if (DAT_000881d0 - DAT_000881cc < 0x4c) {\n    _obstack_newchunk(&DAT_000881c0,0x4c);\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }\n  else {\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }\n  DAT_000881e8 = DAT_000881e8 | 2;\n  puVar7 = DAT_000881c8;\nLAB_00039eff:\n  DAT_000881c8 = (ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8);\n  uVar6 = DAT_000881d0 - DAT_000881c4;\n  if (uVar6 < (uint)((int)DAT_000881c8 - DAT_000881c4)) {\n    DAT_000881c8 = (ushort *)DAT_000881d0;\n  }\n  DAT_000881cc = (uint)DAT_000881c8;\n  *(undefined4 *)(puVar7 + 2) = param_1;\n  *(undefined4 *)(puVar7 + 4) = param_2;\n  *(char *)(puVar7 + 1) = (char)param_3;\n  if ((param_3 & 0xffffff00) == 0) {\n    puVar7[0x16] = 0;\n    puVar7[0x17] = 0;\n    puVar7[0x1a] = 0;\n    puVar7[0x1b] = 0;\n    *(undefined4 *)(puVar7 + 6) = param_4;\n    *(undefined4 *)(puVar7 + 0xc) = param_7;\n    *(undefined4 *)(puVar7 + 8) = param_5;\n    puVar7[0x1c] = 0;\n    puVar7[0x1d] = 0;\n    *(undefined4 *)(puVar7 + 10) = param_6;\n    puVar7[0x24] = 0;\n    uVar3 = DAT_0008827c;\n    puVar7[0x25] = 0;\n    *(undefined4 *)(puVar7 + 0xe) = DAT_00088278;\n    *(undefined4 *)(puVar7 + 0x10) = uVar3;\n    *(undefined4 *)(puVar7 + 0x12) = DAT_00088288;\n    *(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1;\n    *puVar7 = *puVar7 & 1;\n    *(undefined4 *)(puVar7 + 0x18) = param_9;\n    uVar3 = FUN_00023b80(puVar7 + 0x20);\n    iVar2 = DAT_00087694;\n    *(undefined4 *)(puVar7 + 0x1e) = uVar3;\n    if (iVar2 == 0) {\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }\n    else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }\n    if (param_10 == 0) {\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }\n    else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }\n    *piVar4 = (int)puVar7;\n    return puVar7;\n  }\n  uVar3 = dcgettext(0,"field fx_size too small to hold %d",5,uVar6);\n  FUN_00029550(uVar3,param_3);\n                    \n  FUN_00029670("../../gas/write.c",0xa8,"fix_new_internal");\n}\n\n" (ERROR "ushort * __regparm3\nFUN_00039ea0(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined4 param_7,byte param_8,undefined4 param_9\n            ,int param_10)" (binary_expression "ushort * __regparm3\nFUN_00039ea0(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined4 param_7,byte param_8,undefined4 param_9\n            ,int param_10)" identifier * (ERROR "__regparm3" identifier) (call_expression "FUN_00039ea0(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined4 param_7,byte param_8,undefined4 param_9\n            ,int param_10)" identifier (argument_list "(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined4 param_7,byte param_8,undefined4 param_9\n            ,int param_10)" ( identifier (ERROR "param_1" identifier) , identifier (ERROR "param_2" identifier) , (ERROR "uint" identifier) identifier , identifier (ERROR "param_4" identifier) , identifier (ERROR "param_5" identifier) , identifier (ERROR "param_6" identifier) , identifier (ERROR "param_7" identifier) , (ERROR "byte" identifier) identifier , identifier (ERROR "param_9" identifier) , (ERROR "int" identifier) identifier ))))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  ushort *puVar5;\n  uint uVar6;\n  ushort *puVar7;\n  \n  DAT_00087690 = DAT_00087690 + 1;\n  if (DAT_000881d0 - DAT_000881cc < 0x4c) {\n    _obstack_newchunk(&DAT_000881c0,0x4c);\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }\n  else {\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }\n  DAT_000881e8 = DAT_000881e8 | 2;\n  puVar7 = DAT_000881c8;\nLAB_00039eff:\n  DAT_000881c8 = (ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8);\n  uVar6 = DAT_000881d0 - DAT_000881c4;\n  if (uVar6 < (uint)((int)DAT_000881c8 - DAT_000881c4)) {\n    DAT_000881c8 = (ushort *)DAT_000881d0;\n  }\n  DAT_000881cc = (uint)DAT_000881c8;\n  *(undefined4 *)(puVar7 + 2) = param_1;\n  *(undefined4 *)(puVar7 + 4) = param_2;\n  *(char *)(puVar7 + 1) = (char)param_3;\n  if ((param_3 & 0xffffff00) == 0) {\n    puVar7[0x16] = 0;\n    puVar7[0x17] = 0;\n    puVar7[0x1a] = 0;\n    puVar7[0x1b] = 0;\n    *(undefined4 *)(puVar7 + 6) = param_4;\n    *(undefined4 *)(puVar7 + 0xc) = param_7;\n    *(undefined4 *)(puVar7 + 8) = param_5;\n    puVar7[0x1c] = 0;\n    puVar7[0x1d] = 0;\n    *(undefined4 *)(puVar7 + 10) = param_6;\n    puVar7[0x24] = 0;\n    uVar3 = DAT_0008827c;\n    puVar7[0x25] = 0;\n    *(undefined4 *)(puVar7 + 0xe) = DAT_00088278;\n    *(undefined4 *)(puVar7 + 0x10) = uVar3;\n    *(undefined4 *)(puVar7 + 0x12) = DAT_00088288;\n    *(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1;\n    *puVar7 = *puVar7 & 1;\n    *(undefined4 *)(puVar7 + 0x18) = param_9;\n    uVar3 = FUN_00023b80(puVar7 + 0x20);\n    iVar2 = DAT_00087694;\n    *(undefined4 *)(puVar7 + 0x1e) = uVar3;\n    if (iVar2 == 0) {\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }\n    else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }\n    if (param_10 == 0) {\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }\n    else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }\n    *piVar4 = (int)puVar7;\n    return puVar7;\n  }\n  uVar3 = dcgettext(0,"field fx_size too small to hold %d",5,uVar6);\n  FUN_00029550(uVar3,param_3);\n                    \n  FUN_00029670("../../gas/write.c",0xa8,"fix_new_internal");\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "ushort *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "ushort *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (expression_statement "DAT_00087690 = DAT_00087690 + 1;" (assignment_expression "DAT_00087690 = DAT_00087690 + 1" identifier = (binary_expression "DAT_00087690 + 1" identifier + number_literal)) ;) (if_statement "if (DAT_000881d0 - DAT_000881cc < 0x4c) {\n    _obstack_newchunk(&DAT_000881c0,0x4c);\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }\n  else {\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }" if (parenthesized_expression "(DAT_000881d0 - DAT_000881cc < 0x4c)" ( (binary_expression "DAT_000881d0 - DAT_000881cc < 0x4c" (binary_expression "DAT_000881d0 - DAT_000881cc" identifier - identifier) < number_literal) )) (compound_statement "{\n    _obstack_newchunk(&DAT_000881c0,0x4c);\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }" { (expression_statement "_obstack_newchunk(&DAT_000881c0,0x4c);" (call_expression "_obstack_newchunk(&DAT_000881c0,0x4c)" identifier (argument_list "(&DAT_000881c0,0x4c)" ( (pointer_expression "&DAT_000881c0" & identifier) , number_literal ))) ;) (expression_statement "puVar5 = (ushort *)(DAT_000881cc + 0x4c);" (assignment_expression "puVar5 = (ushort *)(DAT_000881cc + 0x4c)" identifier = (cast_expression "(ushort *)(DAT_000881cc + 0x4c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000881cc + 0x4c)" ( (binary_expression "DAT_000881cc + 0x4c" identifier + number_literal) )))) ;) (expression_statement "puVar7 = DAT_000881c8;" (assignment_expression "puVar7 = DAT_000881c8" identifier = identifier) ;) (if_statement "if (puVar5 != DAT_000881c8) goto LAB_00039eff;" if (parenthesized_expression "(puVar5 != DAT_000881c8)" ( (binary_expression "puVar5 != DAT_000881c8" identifier != identifier) )) (goto_statement "goto LAB_00039eff;" goto statement_identifier ;)) }) (else_clause "else {\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }" else (compound_statement "{\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }" { (expression_statement "puVar5 = (ushort *)(DAT_000881cc + 0x4c);" (assignment_expression "puVar5 = (ushort *)(DAT_000881cc + 0x4c)" identifier = (cast_expression "(ushort *)(DAT_000881cc + 0x4c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000881cc + 0x4c)" ( (binary_expression "DAT_000881cc + 0x4c" identifier + number_literal) )))) ;) (expression_statement "puVar7 = DAT_000881c8;" (assignment_expression "puVar7 = DAT_000881c8" identifier = identifier) ;) (if_statement "if (puVar5 != DAT_000881c8) goto LAB_00039eff;" if (parenthesized_expression "(puVar5 != DAT_000881c8)" ( (binary_expression "puVar5 != DAT_000881c8" identifier != identifier) )) (goto_statement "goto LAB_00039eff;" goto statement_identifier ;)) }))) (expression_statement "DAT_000881e8 = DAT_000881e8 | 2;" (assignment_expression "DAT_000881e8 = DAT_000881e8 | 2" identifier = (binary_expression "DAT_000881e8 | 2" identifier | number_literal)) ;) (expression_statement "puVar7 = DAT_000881c8;" (assignment_expression "puVar7 = DAT_000881c8" identifier = identifier) ;) (labeled_statement "LAB_00039eff:\n  DAT_000881c8 = (ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8);" statement_identifier : (expression_statement "DAT_000881c8 = (ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8);" (assignment_expression "DAT_000881c8 = (ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8)" identifier = (cast_expression "(ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + DAT_000881d8 & ~DAT_000881d8)" ( (binary_expression "(int)puVar5 + DAT_000881d8 & ~DAT_000881d8" (binary_expression "(int)puVar5 + DAT_000881d8" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) & (unary_expression "~DAT_000881d8" ~ identifier)) )))) ;)) (expression_statement "uVar6 = DAT_000881d0 - DAT_000881c4;" (assignment_expression "uVar6 = DAT_000881d0 - DAT_000881c4" identifier = (binary_expression "DAT_000881d0 - DAT_000881c4" identifier - identifier)) ;) (if_statement "if (uVar6 < (uint)((int)DAT_000881c8 - DAT_000881c4)) {\n    DAT_000881c8 = (ushort *)DAT_000881d0;\n  }" if (parenthesized_expression "(uVar6 < (uint)((int)DAT_000881c8 - DAT_000881c4))" ( (binary_expression "uVar6 < (uint)((int)DAT_000881c8 - DAT_000881c4)" identifier < (call_expression "(uint)((int)DAT_000881c8 - DAT_000881c4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)DAT_000881c8 - DAT_000881c4)" ( (binary_expression "(int)DAT_000881c8 - DAT_000881c4" (cast_expression "(int)DAT_000881c8" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) )) (compound_statement "{\n    DAT_000881c8 = (ushort *)DAT_000881d0;\n  }" { (expression_statement "DAT_000881c8 = (ushort *)DAT_000881d0;" (assignment_expression "DAT_000881c8 = (ushort *)DAT_000881d0" identifier = (cast_expression "(ushort *)DAT_000881d0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "DAT_000881cc = (uint)DAT_000881c8;" (assignment_expression "DAT_000881cc = (uint)DAT_000881c8" identifier = (cast_expression "(uint)DAT_000881c8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(puVar7 + 2) = param_1;" (assignment_expression "*(undefined4 *)(puVar7 + 2) = param_1" (pointer_expression "*(undefined4 *)(puVar7 + 2)" * (cast_expression "(undefined4 *)(puVar7 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 2)" ( (binary_expression "puVar7 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 4) = param_2;" (assignment_expression "*(undefined4 *)(puVar7 + 4) = param_2" (pointer_expression "*(undefined4 *)(puVar7 + 4)" * (cast_expression "(undefined4 *)(puVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(puVar7 + 1) = (char)param_3;" (assignment_expression "*(char *)(puVar7 + 1) = (char)param_3" (pointer_expression "*(char *)(puVar7 + 1)" * (cast_expression "(char *)(puVar7 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 1)" ( (binary_expression "puVar7 + 1" identifier + number_literal) )))) = (cast_expression "(char)param_3" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if ((param_3 & 0xffffff00) == 0) {\n    puVar7[0x16] = 0;\n    puVar7[0x17] = 0;\n    puVar7[0x1a] = 0;\n    puVar7[0x1b] = 0;\n    *(undefined4 *)(puVar7 + 6) = param_4;\n    *(undefined4 *)(puVar7 + 0xc) = param_7;\n    *(undefined4 *)(puVar7 + 8) = param_5;\n    puVar7[0x1c] = 0;\n    puVar7[0x1d] = 0;\n    *(undefined4 *)(puVar7 + 10) = param_6;\n    puVar7[0x24] = 0;\n    uVar3 = DAT_0008827c;\n    puVar7[0x25] = 0;\n    *(undefined4 *)(puVar7 + 0xe) = DAT_00088278;\n    *(undefined4 *)(puVar7 + 0x10) = uVar3;\n    *(undefined4 *)(puVar7 + 0x12) = DAT_00088288;\n    *(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1;\n    *puVar7 = *puVar7 & 1;\n    *(undefined4 *)(puVar7 + 0x18) = param_9;\n    uVar3 = FUN_00023b80(puVar7 + 0x20);\n    iVar2 = DAT_00087694;\n    *(undefined4 *)(puVar7 + 0x1e) = uVar3;\n    if (iVar2 == 0) {\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }\n    else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }\n    if (param_10 == 0) {\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }\n    else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }\n    *piVar4 = (int)puVar7;\n    return puVar7;\n  }" if (parenthesized_expression "((param_3 & 0xffffff00) == 0)" ( (binary_expression "(param_3 & 0xffffff00) == 0" (parenthesized_expression "(param_3 & 0xffffff00)" ( (binary_expression "param_3 & 0xffffff00" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    puVar7[0x16] = 0;\n    puVar7[0x17] = 0;\n    puVar7[0x1a] = 0;\n    puVar7[0x1b] = 0;\n    *(undefined4 *)(puVar7 + 6) = param_4;\n    *(undefined4 *)(puVar7 + 0xc) = param_7;\n    *(undefined4 *)(puVar7 + 8) = param_5;\n    puVar7[0x1c] = 0;\n    puVar7[0x1d] = 0;\n    *(undefined4 *)(puVar7 + 10) = param_6;\n    puVar7[0x24] = 0;\n    uVar3 = DAT_0008827c;\n    puVar7[0x25] = 0;\n    *(undefined4 *)(puVar7 + 0xe) = DAT_00088278;\n    *(undefined4 *)(puVar7 + 0x10) = uVar3;\n    *(undefined4 *)(puVar7 + 0x12) = DAT_00088288;\n    *(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1;\n    *puVar7 = *puVar7 & 1;\n    *(undefined4 *)(puVar7 + 0x18) = param_9;\n    uVar3 = FUN_00023b80(puVar7 + 0x20);\n    iVar2 = DAT_00087694;\n    *(undefined4 *)(puVar7 + 0x1e) = uVar3;\n    if (iVar2 == 0) {\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }\n    else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }\n    if (param_10 == 0) {\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }\n    else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }\n    *piVar4 = (int)puVar7;\n    return puVar7;\n  }" { (expression_statement "puVar7[0x16] = 0;" (assignment_expression "puVar7[0x16] = 0" (subscript_expression "puVar7[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[0x17] = 0;" (assignment_expression "puVar7[0x17] = 0" (subscript_expression "puVar7[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[0x1a] = 0;" (assignment_expression "puVar7[0x1a] = 0" (subscript_expression "puVar7[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[0x1b] = 0;" (assignment_expression "puVar7[0x1b] = 0" (subscript_expression "puVar7[0x1b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 6) = param_4;" (assignment_expression "*(undefined4 *)(puVar7 + 6) = param_4" (pointer_expression "*(undefined4 *)(puVar7 + 6)" * (cast_expression "(undefined4 *)(puVar7 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 6)" ( (binary_expression "puVar7 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 0xc) = param_7;" (assignment_expression "*(undefined4 *)(puVar7 + 0xc) = param_7" (pointer_expression "*(undefined4 *)(puVar7 + 0xc)" * (cast_expression "(undefined4 *)(puVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xc)" ( (binary_expression "puVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 8) = param_5;" (assignment_expression "*(undefined4 *)(puVar7 + 8) = param_5" (pointer_expression "*(undefined4 *)(puVar7 + 8)" * (cast_expression "(undefined4 *)(puVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar7[0x1c] = 0;" (assignment_expression "puVar7[0x1c] = 0" (subscript_expression "puVar7[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[0x1d] = 0;" (assignment_expression "puVar7[0x1d] = 0" (subscript_expression "puVar7[0x1d]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 10) = param_6;" (assignment_expression "*(undefined4 *)(puVar7 + 10) = param_6" (pointer_expression "*(undefined4 *)(puVar7 + 10)" * (cast_expression "(undefined4 *)(puVar7 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 10)" ( (binary_expression "puVar7 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar7[0x24] = 0;" (assignment_expression "puVar7[0x24] = 0" (subscript_expression "puVar7[0x24]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar3 = DAT_0008827c;" (assignment_expression "uVar3 = DAT_0008827c" identifier = identifier) ;) (expression_statement "puVar7[0x25] = 0;" (assignment_expression "puVar7[0x25] = 0" (subscript_expression "puVar7[0x25]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 0xe) = DAT_00088278;" (assignment_expression "*(undefined4 *)(puVar7 + 0xe) = DAT_00088278" (pointer_expression "*(undefined4 *)(puVar7 + 0xe)" * (cast_expression "(undefined4 *)(puVar7 + 0xe)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0xe)" ( (binary_expression "puVar7 + 0xe" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x10) = uVar3;" (assignment_expression "*(undefined4 *)(puVar7 + 0x10) = uVar3" (pointer_expression "*(undefined4 *)(puVar7 + 0x10)" * (cast_expression "(undefined4 *)(puVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x10)" ( (binary_expression "puVar7 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x12) = DAT_00088288;" (assignment_expression "*(undefined4 *)(puVar7 + 0x12) = DAT_00088288" (pointer_expression "*(undefined4 *)(puVar7 + 0x12)" * (cast_expression "(undefined4 *)(puVar7 + 0x12)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x12)" ( (binary_expression "puVar7 + 0x12" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1;" (assignment_expression "*(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1" (pointer_expression "*(byte *)puVar7" * (cast_expression "(byte *)puVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(byte)*puVar7 & 0xfe | param_8 & 1" (binary_expression "(byte)*puVar7 & 0xfe" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" ( identifier )) * identifier) & number_literal) | (binary_expression "param_8 & 1" identifier & number_literal))) ;) (expression_statement "*puVar7 = *puVar7 & 1;" (assignment_expression "*puVar7 = *puVar7 & 1" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 & 1" (pointer_expression "*puVar7" * identifier) & number_literal)) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x18) = param_9;" (assignment_expression "*(undefined4 *)(puVar7 + 0x18) = param_9" (pointer_expression "*(undefined4 *)(puVar7 + 0x18)" * (cast_expression "(undefined4 *)(puVar7 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x18)" ( (binary_expression "puVar7 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = FUN_00023b80(puVar7 + 0x20);" (assignment_expression "uVar3 = FUN_00023b80(puVar7 + 0x20)" identifier = (call_expression "FUN_00023b80(puVar7 + 0x20)" identifier (argument_list "(puVar7 + 0x20)" ( (binary_expression "puVar7 + 0x20" identifier + number_literal) )))) ;) (expression_statement "iVar2 = DAT_00087694;" (assignment_expression "iVar2 = DAT_00087694" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 0x1e) = uVar3;" (assignment_expression "*(undefined4 *)(puVar7 + 0x1e) = uVar3" (pointer_expression "*(undefined4 *)(puVar7 + 0x1e)" * (cast_expression "(undefined4 *)(puVar7 + 0x1e)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x1e)" ( (binary_expression "puVar7 + 0x1e" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar2 == 0) {\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }\n    else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }" { (expression_statement "puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);" (assignment_expression "puVar1 = (undefined4 *)(DAT_000881a8 + 0x10)" identifier = (cast_expression "(undefined4 *)(DAT_000881a8 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000881a8 + 0x10)" ( (binary_expression "DAT_000881a8 + 0x10" identifier + number_literal) )))) ;) (expression_statement "piVar4 = (int *)(DAT_000881a8 + 0x14);" (assignment_expression "piVar4 = (int *)(DAT_000881a8 + 0x14)" identifier = (cast_expression "(int *)(DAT_000881a8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000881a8 + 0x14)" ( (binary_expression "DAT_000881a8 + 0x14" identifier + number_literal) )))) ;) }) (else_clause "else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }" else (compound_statement "{\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }" { (expression_statement "puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);" (assignment_expression "puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc)" identifier = (cast_expression "(undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00087f1c + 0x80) + 0xc)" ( (binary_expression "*(int *)(DAT_00087f1c + 0x80) + 0xc" (pointer_expression "*(int *)(DAT_00087f1c + 0x80)" * (cast_expression "(int *)(DAT_00087f1c + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00087f1c + 0x80)" ( (binary_expression "DAT_00087f1c + 0x80" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);" (assignment_expression "piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10)" identifier = (cast_expression "(int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00087f1c + 0x80) + 0x10)" ( (binary_expression "*(int *)(DAT_00087f1c + 0x80) + 0x10" (pointer_expression "*(int *)(DAT_00087f1c + 0x80)" * (cast_expression "(int *)(DAT_00087f1c + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00087f1c + 0x80)" ( (binary_expression "DAT_00087f1c + 0x80" identifier + number_literal) )))) + number_literal) )))) ;) }))) (if_statement "if (param_10 == 0) {\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }\n    else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }" if (parenthesized_expression "(param_10 == 0)" ( (binary_expression "param_10 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }" { (expression_statement "puVar7[0x14] = 0;" (assignment_expression "puVar7[0x14] = 0" (subscript_expression "puVar7[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[0x15] = 0;" (assignment_expression "puVar7[0x15] = 0" (subscript_expression "puVar7[0x15]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }" if (parenthesized_expression "(*piVar4 == 0)" ( (binary_expression "*piVar4 == 0" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }" { (expression_statement "*puVar1 = puVar7;" (assignment_expression "*puVar1 = puVar7" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "*piVar4 = (int)puVar7;" (assignment_expression "*piVar4 = (int)puVar7" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return puVar7;" return identifier ;) })) (expression_statement "*(ushort **)(*piVar4 + 0x28) = puVar7;" (assignment_expression "*(ushort **)(*piVar4 + 0x28) = puVar7" (pointer_expression "*(ushort **)(*piVar4 + 0x28)" * (cast_expression "(ushort **)(*piVar4 + 0x28)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x28)" ( (binary_expression "*piVar4 + 0x28" (pointer_expression "*piVar4" * identifier) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }" else (compound_statement "{\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }" { (expression_statement "*(undefined4 *)(puVar7 + 0x14) = *puVar1;" (assignment_expression "*(undefined4 *)(puVar7 + 0x14) = *puVar1" (pointer_expression "*(undefined4 *)(puVar7 + 0x14)" * (cast_expression "(undefined4 *)(puVar7 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x14)" ( (binary_expression "puVar7 + 0x14" identifier + number_literal) )))) = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = puVar7;" (assignment_expression "*puVar1 = puVar7" (pointer_expression "*puVar1" * identifier) = identifier) ;) (if_statement "if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }" if (parenthesized_expression "(*(int *)(puVar7 + 0x14) != 0)" ( (binary_expression "*(int *)(puVar7 + 0x14) != 0" (pointer_expression "*(int *)(puVar7 + 0x14)" * (cast_expression "(int *)(puVar7 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x14)" ( (binary_expression "puVar7 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        return puVar7;\n      }" { (return_statement "return puVar7;" return identifier ;) })) }))) (expression_statement "*piVar4 = (int)puVar7;" (assignment_expression "*piVar4 = (int)puVar7" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return puVar7;" return identifier ;) })) (expression_statement "uVar3 = dcgettext(0,"field fx_size too small to hold %d",5,uVar6);" (assignment_expression "uVar3 = dcgettext(0,"field fx_size too small to hold %d",5,uVar6)" identifier = (call_expression "dcgettext(0,"field fx_size too small to hold %d",5,uVar6)" identifier (argument_list "(0,"field fx_size too small to hold %d",5,uVar6)" ( number_literal , (string_literal ""field fx_size too small to hold %d"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_00029550(uVar3,param_3);" (call_expression "FUN_00029550(uVar3,param_3)" identifier (argument_list "(uVar3,param_3)" ( identifier , identifier ))) ;) (expression_statement "FUN_00029670("../../gas/write.c",0xa8,"fix_new_internal");" (call_expression "FUN_00029670("../../gas/write.c",0xa8,"fix_new_internal")" identifier (argument_list "("../../gas/write.c",0xa8,"fix_new_internal")" ( (string_literal ""../../gas/write.c"" " string_content ") , number_literal , (string_literal ""fix_new_internal"" " string_content ") ))) ;) }))
(translation_unit (ERROR (binary_expression IDENT * (ERROR IDENT) (call_expression IDENT (argument_list ( IDENT (ERROR IDENT) , IDENT (ERROR IDENT) , (ERROR IDENT) IDENT , IDENT (ERROR IDENT) , IDENT (ERROR IDENT) , IDENT (ERROR IDENT) , IDENT (ERROR IDENT) , (ERROR IDENT) IDENT , IDENT (ERROR IDENT) , (ERROR IDENT) IDENT ))))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) & (unary_expression ~ IDENT)) )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) & LIT) | (binary_expression IDENT & LIT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression 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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 { (return_statement return IDENT ;) })) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) }))
(ERROR "ushort * __regparm3\nFUN_00039ea0(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined4 param_7,byte param_8,undefined4 param_9\n            ,int param_10)" (binary_expression "ushort * __regparm3\nFUN_00039ea0(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined4 param_7,byte param_8,undefined4 param_9\n            ,int param_10)" (identifier "ushort") (* "*") (ERROR "__regparm3" (identifier "__regparm3")) (call_expression "FUN_00039ea0(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined4 param_7,byte param_8,undefined4 param_9\n            ,int param_10)" (identifier "FUN_00039ea0") (argument_list "(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined4 param_7,byte param_8,undefined4 param_9\n            ,int param_10)" (( "(") (identifier "undefined4") (ERROR "param_1" (identifier "param_1")) (, ",") (identifier "undefined4") (ERROR "param_2" (identifier "param_2")) (, ",") (ERROR "uint" (identifier "uint")) (identifier "param_3") (, ",") (identifier "undefined4") (ERROR "param_4" (identifier "param_4")) (, ",") (identifier "undefined4") (ERROR "param_5" (identifier "param_5")) (, ",") (identifier "undefined4") (ERROR "param_6" (identifier "param_6")) (, ",") (identifier "undefined4") (ERROR "param_7" (identifier "param_7")) (, ",") (ERROR "byte" (identifier "byte")) (identifier "param_8") (, ",") (identifier "undefined4") (ERROR "param_9" (identifier "param_9")) (, ",") (ERROR "int" (identifier "int")) (identifier "param_10") () ")"))))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  ushort *puVar5;\n  uint uVar6;\n  ushort *puVar7;\n  \n  DAT_00087690 = DAT_00087690 + 1;\n  if (DAT_000881d0 - DAT_000881cc < 0x4c) {\n    _obstack_newchunk(&DAT_000881c0,0x4c);\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }\n  else {\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }\n  DAT_000881e8 = DAT_000881e8 | 2;\n  puVar7 = DAT_000881c8;\nLAB_00039eff:\n  DAT_000881c8 = (ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8);\n  uVar6 = DAT_000881d0 - DAT_000881c4;\n  if (uVar6 < (uint)((int)DAT_000881c8 - DAT_000881c4)) {\n    DAT_000881c8 = (ushort *)DAT_000881d0;\n  }\n  DAT_000881cc = (uint)DAT_000881c8;\n  *(undefined4 *)(puVar7 + 2) = param_1;\n  *(undefined4 *)(puVar7 + 4) = param_2;\n  *(char *)(puVar7 + 1) = (char)param_3;\n  if ((param_3 & 0xffffff00) == 0) {\n    puVar7[0x16] = 0;\n    puVar7[0x17] = 0;\n    puVar7[0x1a] = 0;\n    puVar7[0x1b] = 0;\n    *(undefined4 *)(puVar7 + 6) = param_4;\n    *(undefined4 *)(puVar7 + 0xc) = param_7;\n    *(undefined4 *)(puVar7 + 8) = param_5;\n    puVar7[0x1c] = 0;\n    puVar7[0x1d] = 0;\n    *(undefined4 *)(puVar7 + 10) = param_6;\n    puVar7[0x24] = 0;\n    uVar3 = DAT_0008827c;\n    puVar7[0x25] = 0;\n    *(undefined4 *)(puVar7 + 0xe) = DAT_00088278;\n    *(undefined4 *)(puVar7 + 0x10) = uVar3;\n    *(undefined4 *)(puVar7 + 0x12) = DAT_00088288;\n    *(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1;\n    *puVar7 = *puVar7 & 1;\n    *(undefined4 *)(puVar7 + 0x18) = param_9;\n    uVar3 = FUN_00023b80(puVar7 + 0x20);\n    iVar2 = DAT_00087694;\n    *(undefined4 *)(puVar7 + 0x1e) = uVar3;\n    if (iVar2 == 0) {\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }\n    else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }\n    if (param_10 == 0) {\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }\n    else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }\n    *piVar4 = (int)puVar7;\n    return puVar7;\n  }\n  uVar3 = dcgettext(0,"field fx_size too small to hold %d",5,uVar6);\n  FUN_00029550(uVar3,param_3);\n                    \n  FUN_00029670("../../gas/write.c",0xa8,"fix_new_internal");\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "ushort *puVar5;" (type_identifier "ushort") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "ushort *puVar7;" (type_identifier "ushort") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (expression_statement "DAT_00087690 = DAT_00087690 + 1;" (assignment_expression "DAT_00087690 = DAT_00087690 + 1" (identifier "DAT_00087690") (= "=") (binary_expression "DAT_00087690 + 1" (identifier "DAT_00087690") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (DAT_000881d0 - DAT_000881cc < 0x4c) {\n    _obstack_newchunk(&DAT_000881c0,0x4c);\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }\n  else {\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }" (if "if") (parenthesized_expression "(DAT_000881d0 - DAT_000881cc < 0x4c)" (( "(") (binary_expression "DAT_000881d0 - DAT_000881cc < 0x4c" (binary_expression "DAT_000881d0 - DAT_000881cc" (identifier "DAT_000881d0") (- "-") (identifier "DAT_000881cc")) (< "<") (number_literal "0x4c")) () ")")) (compound_statement "{\n    _obstack_newchunk(&DAT_000881c0,0x4c);\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }" ({ "{") (expression_statement "_obstack_newchunk(&DAT_000881c0,0x4c);" (call_expression "_obstack_newchunk(&DAT_000881c0,0x4c)" (identifier "_obstack_newchunk") (argument_list "(&DAT_000881c0,0x4c)" (( "(") (pointer_expression "&DAT_000881c0" (& "&") (identifier "DAT_000881c0")) (, ",") (number_literal "0x4c") () ")"))) (; ";")) (expression_statement "puVar5 = (ushort *)(DAT_000881cc + 0x4c);" (assignment_expression "puVar5 = (ushort *)(DAT_000881cc + 0x4c)" (identifier "puVar5") (= "=") (cast_expression "(ushort *)(DAT_000881cc + 0x4c)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000881cc + 0x4c)" (( "(") (binary_expression "DAT_000881cc + 0x4c" (identifier "DAT_000881cc") (+ "+") (number_literal "0x4c")) () ")")))) (; ";")) (expression_statement "puVar7 = DAT_000881c8;" (assignment_expression "puVar7 = DAT_000881c8" (identifier "puVar7") (= "=") (identifier "DAT_000881c8")) (; ";")) (if_statement "if (puVar5 != DAT_000881c8) goto LAB_00039eff;" (if "if") (parenthesized_expression "(puVar5 != DAT_000881c8)" (( "(") (binary_expression "puVar5 != DAT_000881c8" (identifier "puVar5") (!= "!=") (identifier "DAT_000881c8")) () ")")) (goto_statement "goto LAB_00039eff;" (goto "goto") (statement_identifier "LAB_00039eff") (; ";"))) (} "}")) (else_clause "else {\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }" (else "else") (compound_statement "{\n    puVar5 = (ushort *)(DAT_000881cc + 0x4c);\n    puVar7 = DAT_000881c8;\n    if (puVar5 != DAT_000881c8) goto LAB_00039eff;\n  }" ({ "{") (expression_statement "puVar5 = (ushort *)(DAT_000881cc + 0x4c);" (assignment_expression "puVar5 = (ushort *)(DAT_000881cc + 0x4c)" (identifier "puVar5") (= "=") (cast_expression "(ushort *)(DAT_000881cc + 0x4c)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000881cc + 0x4c)" (( "(") (binary_expression "DAT_000881cc + 0x4c" (identifier "DAT_000881cc") (+ "+") (number_literal "0x4c")) () ")")))) (; ";")) (expression_statement "puVar7 = DAT_000881c8;" (assignment_expression "puVar7 = DAT_000881c8" (identifier "puVar7") (= "=") (identifier "DAT_000881c8")) (; ";")) (if_statement "if (puVar5 != DAT_000881c8) goto LAB_00039eff;" (if "if") (parenthesized_expression "(puVar5 != DAT_000881c8)" (( "(") (binary_expression "puVar5 != DAT_000881c8" (identifier "puVar5") (!= "!=") (identifier "DAT_000881c8")) () ")")) (goto_statement "goto LAB_00039eff;" (goto "goto") (statement_identifier "LAB_00039eff") (; ";"))) (} "}")))) (expression_statement "DAT_000881e8 = DAT_000881e8 | 2;" (assignment_expression "DAT_000881e8 = DAT_000881e8 | 2" (identifier "DAT_000881e8") (= "=") (binary_expression "DAT_000881e8 | 2" (identifier "DAT_000881e8") (| "|") (number_literal "2"))) (; ";")) (expression_statement "puVar7 = DAT_000881c8;" (assignment_expression "puVar7 = DAT_000881c8" (identifier "puVar7") (= "=") (identifier "DAT_000881c8")) (; ";")) (labeled_statement "LAB_00039eff:\n  DAT_000881c8 = (ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8);" (statement_identifier "LAB_00039eff") (: ":") (expression_statement "DAT_000881c8 = (ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8);" (assignment_expression "DAT_000881c8 = (ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8)" (identifier "DAT_000881c8") (= "=") (cast_expression "(ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar5 + DAT_000881d8 & ~DAT_000881d8)" (( "(") (binary_expression "(int)puVar5 + DAT_000881d8 & ~DAT_000881d8" (binary_expression "(int)puVar5 + DAT_000881d8" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (+ "+") (identifier "DAT_000881d8")) (& "&") (unary_expression "~DAT_000881d8" (~ "~") (identifier "DAT_000881d8"))) () ")")))) (; ";"))) (expression_statement "uVar6 = DAT_000881d0 - DAT_000881c4;" (assignment_expression "uVar6 = DAT_000881d0 - DAT_000881c4" (identifier "uVar6") (= "=") (binary_expression "DAT_000881d0 - DAT_000881c4" (identifier "DAT_000881d0") (- "-") (identifier "DAT_000881c4"))) (; ";")) (if_statement "if (uVar6 < (uint)((int)DAT_000881c8 - DAT_000881c4)) {\n    DAT_000881c8 = (ushort *)DAT_000881d0;\n  }" (if "if") (parenthesized_expression "(uVar6 < (uint)((int)DAT_000881c8 - DAT_000881c4))" (( "(") (binary_expression "uVar6 < (uint)((int)DAT_000881c8 - DAT_000881c4)" (identifier "uVar6") (< "<") (call_expression "(uint)((int)DAT_000881c8 - DAT_000881c4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)DAT_000881c8 - DAT_000881c4)" (( "(") (binary_expression "(int)DAT_000881c8 - DAT_000881c4" (cast_expression "(int)DAT_000881c8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_000881c8")) (- "-") (identifier "DAT_000881c4")) () ")")))) () ")")) (compound_statement "{\n    DAT_000881c8 = (ushort *)DAT_000881d0;\n  }" ({ "{") (expression_statement "DAT_000881c8 = (ushort *)DAT_000881d0;" (assignment_expression "DAT_000881c8 = (ushort *)DAT_000881d0" (identifier "DAT_000881c8") (= "=") (cast_expression "(ushort *)DAT_000881d0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_000881d0"))) (; ";")) (} "}"))) (expression_statement "DAT_000881cc = (uint)DAT_000881c8;" (assignment_expression "DAT_000881cc = (uint)DAT_000881c8" (identifier "DAT_000881cc") (= "=") (cast_expression "(uint)DAT_000881c8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "DAT_000881c8"))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 2) = param_1;" (assignment_expression "*(undefined4 *)(puVar7 + 2) = param_1" (pointer_expression "*(undefined4 *)(puVar7 + 2)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 2)" (( "(") (binary_expression "puVar7 + 2" (identifier "puVar7") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 4) = param_2;" (assignment_expression "*(undefined4 *)(puVar7 + 4) = param_2" (pointer_expression "*(undefined4 *)(puVar7 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(char *)(puVar7 + 1) = (char)param_3;" (assignment_expression "*(char *)(puVar7 + 1) = (char)param_3" (pointer_expression "*(char *)(puVar7 + 1)" (* "*") (cast_expression "(char *)(puVar7 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 1)" (( "(") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1")) () ")")))) (= "=") (cast_expression "(char)param_3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_3"))) (; ";")) (if_statement "if ((param_3 & 0xffffff00) == 0) {\n    puVar7[0x16] = 0;\n    puVar7[0x17] = 0;\n    puVar7[0x1a] = 0;\n    puVar7[0x1b] = 0;\n    *(undefined4 *)(puVar7 + 6) = param_4;\n    *(undefined4 *)(puVar7 + 0xc) = param_7;\n    *(undefined4 *)(puVar7 + 8) = param_5;\n    puVar7[0x1c] = 0;\n    puVar7[0x1d] = 0;\n    *(undefined4 *)(puVar7 + 10) = param_6;\n    puVar7[0x24] = 0;\n    uVar3 = DAT_0008827c;\n    puVar7[0x25] = 0;\n    *(undefined4 *)(puVar7 + 0xe) = DAT_00088278;\n    *(undefined4 *)(puVar7 + 0x10) = uVar3;\n    *(undefined4 *)(puVar7 + 0x12) = DAT_00088288;\n    *(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1;\n    *puVar7 = *puVar7 & 1;\n    *(undefined4 *)(puVar7 + 0x18) = param_9;\n    uVar3 = FUN_00023b80(puVar7 + 0x20);\n    iVar2 = DAT_00087694;\n    *(undefined4 *)(puVar7 + 0x1e) = uVar3;\n    if (iVar2 == 0) {\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }\n    else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }\n    if (param_10 == 0) {\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }\n    else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }\n    *piVar4 = (int)puVar7;\n    return puVar7;\n  }" (if "if") (parenthesized_expression "((param_3 & 0xffffff00) == 0)" (( "(") (binary_expression "(param_3 & 0xffffff00) == 0" (parenthesized_expression "(param_3 & 0xffffff00)" (( "(") (binary_expression "param_3 & 0xffffff00" (identifier "param_3") (& "&") (number_literal "0xffffff00")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar7[0x16] = 0;\n    puVar7[0x17] = 0;\n    puVar7[0x1a] = 0;\n    puVar7[0x1b] = 0;\n    *(undefined4 *)(puVar7 + 6) = param_4;\n    *(undefined4 *)(puVar7 + 0xc) = param_7;\n    *(undefined4 *)(puVar7 + 8) = param_5;\n    puVar7[0x1c] = 0;\n    puVar7[0x1d] = 0;\n    *(undefined4 *)(puVar7 + 10) = param_6;\n    puVar7[0x24] = 0;\n    uVar3 = DAT_0008827c;\n    puVar7[0x25] = 0;\n    *(undefined4 *)(puVar7 + 0xe) = DAT_00088278;\n    *(undefined4 *)(puVar7 + 0x10) = uVar3;\n    *(undefined4 *)(puVar7 + 0x12) = DAT_00088288;\n    *(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1;\n    *puVar7 = *puVar7 & 1;\n    *(undefined4 *)(puVar7 + 0x18) = param_9;\n    uVar3 = FUN_00023b80(puVar7 + 0x20);\n    iVar2 = DAT_00087694;\n    *(undefined4 *)(puVar7 + 0x1e) = uVar3;\n    if (iVar2 == 0) {\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }\n    else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }\n    if (param_10 == 0) {\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }\n    else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }\n    *piVar4 = (int)puVar7;\n    return puVar7;\n  }" ({ "{") (expression_statement "puVar7[0x16] = 0;" (assignment_expression "puVar7[0x16] = 0" (subscript_expression "puVar7[0x16]" (identifier "puVar7") ([ "[") (number_literal "0x16") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[0x17] = 0;" (assignment_expression "puVar7[0x17] = 0" (subscript_expression "puVar7[0x17]" (identifier "puVar7") ([ "[") (number_literal "0x17") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[0x1a] = 0;" (assignment_expression "puVar7[0x1a] = 0" (subscript_expression "puVar7[0x1a]" (identifier "puVar7") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[0x1b] = 0;" (assignment_expression "puVar7[0x1b] = 0" (subscript_expression "puVar7[0x1b]" (identifier "puVar7") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 6) = param_4;" (assignment_expression "*(undefined4 *)(puVar7 + 6) = param_4" (pointer_expression "*(undefined4 *)(puVar7 + 6)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 6)" (( "(") (binary_expression "puVar7 + 6" (identifier "puVar7") (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0xc) = param_7;" (assignment_expression "*(undefined4 *)(puVar7 + 0xc) = param_7" (pointer_expression "*(undefined4 *)(puVar7 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0xc)" (( "(") (binary_expression "puVar7 + 0xc" (identifier "puVar7") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "param_7")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 8) = param_5;" (assignment_expression "*(undefined4 *)(puVar7 + 8) = param_5" (pointer_expression "*(undefined4 *)(puVar7 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 8)" (( "(") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "puVar7[0x1c] = 0;" (assignment_expression "puVar7[0x1c] = 0" (subscript_expression "puVar7[0x1c]" (identifier "puVar7") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[0x1d] = 0;" (assignment_expression "puVar7[0x1d] = 0" (subscript_expression "puVar7[0x1d]" (identifier "puVar7") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 10) = param_6;" (assignment_expression "*(undefined4 *)(puVar7 + 10) = param_6" (pointer_expression "*(undefined4 *)(puVar7 + 10)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 10)" (( "(") (binary_expression "puVar7 + 10" (identifier "puVar7") (+ "+") (number_literal "10")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "puVar7[0x24] = 0;" (assignment_expression "puVar7[0x24] = 0" (subscript_expression "puVar7[0x24]" (identifier "puVar7") ([ "[") (number_literal "0x24") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = DAT_0008827c;" (assignment_expression "uVar3 = DAT_0008827c" (identifier "uVar3") (= "=") (identifier "DAT_0008827c")) (; ";")) (expression_statement "puVar7[0x25] = 0;" (assignment_expression "puVar7[0x25] = 0" (subscript_expression "puVar7[0x25]" (identifier "puVar7") ([ "[") (number_literal "0x25") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0xe) = DAT_00088278;" (assignment_expression "*(undefined4 *)(puVar7 + 0xe) = DAT_00088278" (pointer_expression "*(undefined4 *)(puVar7 + 0xe)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0xe)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0xe)" (( "(") (binary_expression "puVar7 + 0xe" (identifier "puVar7") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (identifier "DAT_00088278")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x10) = uVar3;" (assignment_expression "*(undefined4 *)(puVar7 + 0x10) = uVar3" (pointer_expression "*(undefined4 *)(puVar7 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x10)" (( "(") (binary_expression "puVar7 + 0x10" (identifier "puVar7") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x12) = DAT_00088288;" (assignment_expression "*(undefined4 *)(puVar7 + 0x12) = DAT_00088288" (pointer_expression "*(undefined4 *)(puVar7 + 0x12)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x12)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x12)" (( "(") (binary_expression "puVar7 + 0x12" (identifier "puVar7") (+ "+") (number_literal "0x12")) () ")")))) (= "=") (identifier "DAT_00088288")) (; ";")) (expression_statement "*(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1;" (assignment_expression "*(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1" (pointer_expression "*(byte *)puVar7" (* "*") (cast_expression "(byte *)puVar7" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) (= "=") (binary_expression "(byte)*puVar7 & 0xfe | param_8 & 1" (binary_expression "(byte)*puVar7 & 0xfe" (binary_expression "(byte)*puVar7" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar7")) (& "&") (number_literal "0xfe")) (| "|") (binary_expression "param_8 & 1" (identifier "param_8") (& "&") (number_literal "1")))) (; ";")) (expression_statement "*puVar7 = *puVar7 & 1;" (assignment_expression "*puVar7 = *puVar7 & 1" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 & 1" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x18) = param_9;" (assignment_expression "*(undefined4 *)(puVar7 + 0x18) = param_9" (pointer_expression "*(undefined4 *)(puVar7 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x18)" (( "(") (binary_expression "puVar7 + 0x18" (identifier "puVar7") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "param_9")) (; ";")) (expression_statement "uVar3 = FUN_00023b80(puVar7 + 0x20);" (assignment_expression "uVar3 = FUN_00023b80(puVar7 + 0x20)" (identifier "uVar3") (= "=") (call_expression "FUN_00023b80(puVar7 + 0x20)" (identifier "FUN_00023b80") (argument_list "(puVar7 + 0x20)" (( "(") (binary_expression "puVar7 + 0x20" (identifier "puVar7") (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iVar2 = DAT_00087694;" (assignment_expression "iVar2 = DAT_00087694" (identifier "iVar2") (= "=") (identifier "DAT_00087694")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 0x1e) = uVar3;" (assignment_expression "*(undefined4 *)(puVar7 + 0x1e) = uVar3" (pointer_expression "*(undefined4 *)(puVar7 + 0x1e)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x1e)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x1e)" (( "(") (binary_expression "puVar7 + 0x1e" (identifier "puVar7") (+ "+") (number_literal "0x1e")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (if_statement "if (iVar2 == 0) {\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }\n    else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);\n      piVar4 = (int *)(DAT_000881a8 + 0x14);\n    }" ({ "{") (expression_statement "puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);" (assignment_expression "puVar1 = (undefined4 *)(DAT_000881a8 + 0x10)" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)(DAT_000881a8 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000881a8 + 0x10)" (( "(") (binary_expression "DAT_000881a8 + 0x10" (identifier "DAT_000881a8") (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "piVar4 = (int *)(DAT_000881a8 + 0x14);" (assignment_expression "piVar4 = (int *)(DAT_000881a8 + 0x14)" (identifier "piVar4") (= "=") (cast_expression "(int *)(DAT_000881a8 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000881a8 + 0x14)" (( "(") (binary_expression "DAT_000881a8 + 0x14" (identifier "DAT_000881a8") (+ "+") (number_literal "0x14")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }" (else "else") (compound_statement "{\n      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);\n      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);\n    }" ({ "{") (expression_statement "puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);" (assignment_expression "puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc)" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_00087f1c + 0x80) + 0xc)" (( "(") (binary_expression "*(int *)(DAT_00087f1c + 0x80) + 0xc" (pointer_expression "*(int *)(DAT_00087f1c + 0x80)" (* "*") (cast_expression "(int *)(DAT_00087f1c + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00087f1c + 0x80)" (( "(") (binary_expression "DAT_00087f1c + 0x80" (identifier "DAT_00087f1c") (+ "+") (number_literal "0x80")) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);" (assignment_expression "piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10)" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_00087f1c + 0x80) + 0x10)" (( "(") (binary_expression "*(int *)(DAT_00087f1c + 0x80) + 0x10" (pointer_expression "*(int *)(DAT_00087f1c + 0x80)" (* "*") (cast_expression "(int *)(DAT_00087f1c + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00087f1c + 0x80)" (( "(") (binary_expression "DAT_00087f1c + 0x80" (identifier "DAT_00087f1c") (+ "+") (number_literal "0x80")) () ")")))) (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (} "}")))) (if_statement "if (param_10 == 0) {\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }\n    else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }" (if "if") (parenthesized_expression "(param_10 == 0)" (( "(") (binary_expression "param_10 == 0" (identifier "param_10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar7[0x14] = 0;\n      puVar7[0x15] = 0;\n      if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }\n      *(ushort **)(*piVar4 + 0x28) = puVar7;\n    }" ({ "{") (expression_statement "puVar7[0x14] = 0;" (assignment_expression "puVar7[0x14] = 0" (subscript_expression "puVar7[0x14]" (identifier "puVar7") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[0x15] = 0;" (assignment_expression "puVar7[0x15] = 0" (subscript_expression "puVar7[0x15]" (identifier "puVar7") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*piVar4 == 0) {\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }" (if "if") (parenthesized_expression "(*piVar4 == 0)" (( "(") (binary_expression "*piVar4 == 0" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *puVar1 = puVar7;\n        *piVar4 = (int)puVar7;\n        return puVar7;\n      }" ({ "{") (expression_statement "*puVar1 = puVar7;" (assignment_expression "*puVar1 = puVar7" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "*piVar4 = (int)puVar7;" (assignment_expression "*piVar4 = (int)puVar7" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7"))) (; ";")) (return_statement "return puVar7;" (return "return") (identifier "puVar7") (; ";")) (} "}"))) (expression_statement "*(ushort **)(*piVar4 + 0x28) = puVar7;" (assignment_expression "*(ushort **)(*piVar4 + 0x28) = puVar7" (pointer_expression "*(ushort **)(*piVar4 + 0x28)" (* "*") (cast_expression "(ushort **)(*piVar4 + 0x28)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x28)" (( "(") (binary_expression "*piVar4 + 0x28" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "puVar7")) (; ";")) (} "}")) (else_clause "else {\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }" (else "else") (compound_statement "{\n      *(undefined4 *)(puVar7 + 0x14) = *puVar1;\n      *puVar1 = puVar7;\n      if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar7 + 0x14) = *puVar1;" (assignment_expression "*(undefined4 *)(puVar7 + 0x14) = *puVar1" (pointer_expression "*(undefined4 *)(puVar7 + 0x14)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x14)" (( "(") (binary_expression "puVar7 + 0x14" (identifier "puVar7") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "*puVar1 = puVar7;" (assignment_expression "*puVar1 = puVar7" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (identifier "puVar7")) (; ";")) (if_statement "if (*(int *)(puVar7 + 0x14) != 0) {\n        return puVar7;\n      }" (if "if") (parenthesized_expression "(*(int *)(puVar7 + 0x14) != 0)" (( "(") (binary_expression "*(int *)(puVar7 + 0x14) != 0" (pointer_expression "*(int *)(puVar7 + 0x14)" (* "*") (cast_expression "(int *)(puVar7 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x14)" (( "(") (binary_expression "puVar7 + 0x14" (identifier "puVar7") (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return puVar7;\n      }" ({ "{") (return_statement "return puVar7;" (return "return") (identifier "puVar7") (; ";")) (} "}"))) (} "}")))) (expression_statement "*piVar4 = (int)puVar7;" (assignment_expression "*piVar4 = (int)puVar7" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7"))) (; ";")) (return_statement "return puVar7;" (return "return") (identifier "puVar7") (; ";")) (} "}"))) (expression_statement "uVar3 = dcgettext(0,"field fx_size too small to hold %d",5,uVar6);" (assignment_expression "uVar3 = dcgettext(0,"field fx_size too small to hold %d",5,uVar6)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"field fx_size too small to hold %d",5,uVar6)" (identifier "dcgettext") (argument_list "(0,"field fx_size too small to hold %d",5,uVar6)" (( "(") (number_literal "0") (, ",") (string_literal ""field fx_size too small to hold %d"" (" """) (string_content "field fx_size too small to hold %d") (" """)) (, ",") (number_literal "5") (, ",") (identifier "uVar6") () ")")))) (; ";")) (expression_statement "FUN_00029550(uVar3,param_3);" (call_expression "FUN_00029550(uVar3,param_3)" (identifier "FUN_00029550") (argument_list "(uVar3,param_3)" (( "(") (identifier "uVar3") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "FUN_00029670("../../gas/write.c",0xa8,"fix_new_internal");" (call_expression "FUN_00029670("../../gas/write.c",0xa8,"fix_new_internal")" (identifier "FUN_00029670") (argument_list "("../../gas/write.c",0xa8,"fix_new_internal")" (( "(") (string_literal ""../../gas/write.c"" (" """) (string_content "../../gas/write.c") (" """)) (, ",") (number_literal "0xa8") (, ",") (string_literal ""fix_new_internal"" (" """) (string_content "fix_new_internal") (" """)) () ")"))) (; ";")) (} "}"))

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

type_1 * __regparm3
fix_new_internal(fragS *frag,int where,int var_5,symbolS *add_symbol,symbolS *sub_symbol,
                offsetT offset,int pcrel,bfd_reloc_code_real r_type,int var_8)

{
  type_1 **ppfVar1;
  int var_7;
  type_2 uVar3;
  type_1 **ppfVar4;
  char *var_3;
  type_3 var_4;
  type_1 *pfVar7;
  type_2 local_24;
  type_2 local_20;
  
  var_1 = var_1 + 1;
  if ((type_3)((int)notes.chunk_limit - (int)notes.next_free) < 0x4c) {
    var_2(&notes,0x4c);
    var_3 = notes.next_free + 0x4c;
    pfVar7 = (type_1 *)notes.object_base;
    if (var_3 != notes.object_base) goto LAB_00039eff;
  }
  else {
    var_3 = notes.next_free + 0x4c;
    pfVar7 = (type_1 *)notes.object_base;
    if (var_3 != notes.object_base) goto LAB_00039eff;
  }
  notes._40_1_ = notes._40_1_ | 2;
  pfVar7 = (type_1 *)notes.object_base;
LAB_00039eff:
  local_20 = (type_2)((type_4)offset >> 0x20);
  local_24 = (type_2)offset;
  var_4 = (int)notes.chunk_limit - (int)notes.chunk;
  notes.object_base = (char *)((type_3)(var_3 + notes.alignment_mask) & ~notes.alignment_mask);
  if (var_4 < (type_3)((int)((type_3)(var_3 + notes.alignment_mask) & ~notes.alignment_mask) -
                    (int)notes.chunk)) {
    notes.object_base = notes.chunk_limit;
  }
  notes.next_free = notes.object_base;
  pfVar7->fx_frag = frag;
  pfVar7->fx_where = where;
  pfVar7->fx_size = (type_5)var_5;
  if ((var_5 & 0xffffff00U) == 0) {
    pfVar7->fx_bit_fixP = (type_6 *)0x0;
    *(type_2 *)&pfVar7->fx_addnumber = 0;
    pfVar7->fx_addsy = add_symbol;
    *(type_2 *)((int)&pfVar7->fx_offset + 4) = local_20;
    pfVar7->fx_subsy = sub_symbol;
    *(type_2 *)((int)&pfVar7->fx_addnumber + 4) = 0;
    *(type_2 *)&pfVar7->fx_offset = local_24;
    (pfVar7->tc_fix_data).opnd = IA64_OPND_NIL;
    uVar3 = dot_value._4_4_;
    *(type_2 *)&pfVar7->fx_dot_value = (type_2)dot_value;
    *(type_2 *)((int)&pfVar7->fx_dot_value + 4) = uVar3;
    pfVar7->fx_dot_frag = dot_frag;
    *(type_7 *)pfVar7 = *(type_7 *)pfVar7 & 0xfe | (type_7)pcrel & 1;
    *(type_8 *)pfVar7 = *(type_8 *)pfVar7 & 1;
    pfVar7->fx_r_type = r_type;
    var_3 = var_6(&pfVar7->fx_line);
    var_7 = frags_chained;
    pfVar7->fx_file = var_3;
    if (var_7 == 0) {
      ppfVar1 = &frchain_now->fix_root;
      ppfVar4 = &frchain_now->fix_tail;
    }
    else {
      ppfVar1 = (type_1 **)((int)now_seg->userdata + 0xc);
      ppfVar4 = (type_1 **)((int)now_seg->userdata + 0x10);
    }
    if (var_8 == 0) {
      pfVar7->fx_next = (type_9 *)0x0;
      if (*ppfVar4 == (type_1 *)0x0) {
        *ppfVar1 = pfVar7;
        *ppfVar4 = pfVar7;
        return pfVar7;
      }
      (*ppfVar4)->fx_next = pfVar7;
    }
    else {
      pfVar7->fx_next = *ppfVar1;
      *ppfVar1 = pfVar7;
      if (pfVar7->fx_next != (type_9 *)0x0) {
        return pfVar7;
      }
    }
    *ppfVar4 = pfVar7;
    return pfVar7;
  }
  var_3 = (char *)var_9(0,"field fx_size too small to hold %d",5,var_4);
  var_10(var_3,var_5);
                    /* WARNING: Subroutine does not return */
  var_11("../../gas/write.c",0xa8,"fix_new_internal");
}


(translation_unit (ERROR (binary_expression left: (identifier) (ERROR (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (ERROR (identifier)) (identifier) (ERROR (identifier)) (ERROR (identifier)) (identifier) (identifier) (ERROR (identifier)) (identifier) (ERROR (identifier)) (identifier) (ERROR (identifier)) (identifier) (ERROR (identifier)) (ERROR (identifier)) (identifier) (identifier) (ERROR (identifier)) (ERROR (identifier)) (identifier))))) (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (unary_expression argument: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (identifier)))) alternative: (else_clause (compound_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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) 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 (return_statement (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal) (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)))))))

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

ushort * __regparm3
MASKED(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,
            undefined4 param_5,undefined4 param_6,undefined4 param_7,byte param_8,undefined4 param_9
            ,int param_10)

{
  undefined4 *puVar1;
  int iVar2;
  undefined4 uVar3;
  int *piVar4;
  ushort *puVar5;
  uint uVar6;
  ushort *puVar7;
  
  DAT_00087690 = DAT_00087690 + 1;
  if (DAT_000881d0 - DAT_000881cc < 0x4c) {
    _obstack_newchunk(&DAT_000881c0,0x4c);
    puVar5 = (ushort *)(DAT_000881cc + 0x4c);
    puVar7 = DAT_000881c8;
    if (puVar5 != DAT_000881c8) goto LAB_00039eff;
  }
  else {
    puVar5 = (ushort *)(DAT_000881cc + 0x4c);
    puVar7 = DAT_000881c8;
    if (puVar5 != DAT_000881c8) goto LAB_00039eff;
  }
  DAT_000881e8 = DAT_000881e8 | 2;
  puVar7 = DAT_000881c8;
LAB_00039eff:
  DAT_000881c8 = (ushort *)((int)puVar5 + DAT_000881d8 & ~DAT_000881d8);
  uVar6 = DAT_000881d0 - DAT_000881c4;
  if (uVar6 < (uint)((int)DAT_000881c8 - DAT_000881c4)) {
    DAT_000881c8 = (ushort *)DAT_000881d0;
  }
  DAT_000881cc = (uint)DAT_000881c8;
  *(undefined4 *)(puVar7 + 2) = param_1;
  *(undefined4 *)(puVar7 + 4) = param_2;
  *(char *)(puVar7 + 1) = (char)param_3;
  if ((param_3 & 0xffffff00) == 0) {
    puVar7[0x16] = 0;
    puVar7[0x17] = 0;
    puVar7[0x1a] = 0;
    puVar7[0x1b] = 0;
    *(undefined4 *)(puVar7 + 6) = param_4;
    *(undefined4 *)(puVar7 + 0xc) = param_7;
    *(undefined4 *)(puVar7 + 8) = param_5;
    puVar7[0x1c] = 0;
    puVar7[0x1d] = 0;
    *(undefined4 *)(puVar7 + 10) = param_6;
    puVar7[0x24] = 0;
    uVar3 = DAT_0008827c;
    puVar7[0x25] = 0;
    *(undefined4 *)(puVar7 + 0xe) = DAT_00088278;
    *(undefined4 *)(puVar7 + 0x10) = uVar3;
    *(undefined4 *)(puVar7 + 0x12) = DAT_00088288;
    *(byte *)puVar7 = (byte)*puVar7 & 0xfe | param_8 & 1;
    *puVar7 = *puVar7 & 1;
    *(undefined4 *)(puVar7 + 0x18) = param_9;
    uVar3 = FUN_00023b80(puVar7 + 0x20);
    iVar2 = DAT_00087694;
    *(undefined4 *)(puVar7 + 0x1e) = uVar3;
    if (iVar2 == 0) {
      puVar1 = (undefined4 *)(DAT_000881a8 + 0x10);
      piVar4 = (int *)(DAT_000881a8 + 0x14);
    }
    else {
      puVar1 = (undefined4 *)(*(int *)(DAT_00087f1c + 0x80) + 0xc);
      piVar4 = (int *)(*(int *)(DAT_00087f1c + 0x80) + 0x10);
    }
    if (param_10 == 0) {
      puVar7[0x14] = 0;
      puVar7[0x15] = 0;
      if (*piVar4 == 0) {
        *puVar1 = puVar7;
        *piVar4 = (int)puVar7;
        return puVar7;
      }
      *(ushort **)(*piVar4 + 0x28) = puVar7;
    }
    else {
      *(undefined4 *)(puVar7 + 0x14) = *puVar1;
      *puVar1 = puVar7;
      if (*(int *)(puVar7 + 0x14) != 0) {
        return puVar7;
      }
    }
    *piVar4 = (int)puVar7;
    return puVar7;
  }
  uVar3 = dcgettext(0,"field fx_size too small to hold %d",5,uVar6);
  FUN_00029550(uVar3,param_3);
                    /* WARNING: Subroutine does not return */
  FUN_00029670("../../gas/write.c",0xa8,"fix_new_internal");
}

