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

bfd_reloc_code_real_type __regparm3
reloc(uint size,int pcrel,int sign,bfd_reloc_code_real_type other)

{
  int iVar1;
  uint uVar2;
  char *pcVar3;
  char *pcVar4;
  
  if (other == BFD_RELOC_NONE) {
    if (pcrel != 0) {
      if (sign == 0) {
        pcVar3 = (char *)dcgettext(0,"there are no unsigned pc-relative relocations",5);
        as_bad(pcVar3);
      }
      if (size == 2) {
        return BFD_RELOC_16_PCREL;
      }
      if (size < 3) {
        if (size == 1) {
          return BFD_RELOC_8_PCREL;
        }
      }
      else {
        if (size == 4) {
          return BFD_RELOC_32_PCREL;
        }
        if (size == 8) {
          return BFD_RELOC_64_PCREL;
        }
      }
      pcVar3 = (char *)dcgettext(0,"cannot do %u byte pc-relative relocation",5);
      as_bad(pcVar3,size);
      return BFD_RELOC_NONE;
    }
    if (sign < 1) {
      if (size == 2) {
        return BFD_RELOC_16;
      }
      if (size < 3) {
        if (size == 1) {
          return BFD_RELOC_8;
        }
      }
      else {
        if (size == 4) {
          return BFD_RELOC_32;
        }
        if (size == 8) {
          return BFD_RELOC_64;
        }
      }
      pcVar3 = "unsigned";
    }
    else {
      pcVar3 = "signed";
      if (size == 4) {
        return BFD_RELOC_X86_64_32S;
      }
    }
    pcVar4 = "cannot do %s %u byte relocation";
    goto LAB_0004581f;
  }
  if (size == 8) {
    switch(other) {
    case BFD_RELOC_X86_64_GOT32:
      return BFD_RELOC_X86_64_GOT64;
    default:
      if (other == BFD_RELOC_SIZE32) {
        if (pcrel != 0) goto LAB_00045888;
        other = BFD_RELOC_SIZE64;
      }
      break;
    case BFD_RELOC_X86_64_GOTPCREL:
      other = BFD_RELOC_X86_64_GOTPCREL64;
      break;
    case BFD_RELOC_X86_64_DTPOFF32:
      other = BFD_RELOC_X86_64_DTPOFF64;
      break;
    case BFD_RELOC_X86_64_TPOFF32:
      other = BFD_RELOC_X86_64_TPOFF64;
      break;
    case BFD_RELOC_X86_64_GOTPC32:
      other = BFD_RELOC_X86_64_GOTPC64;
      break;
    case BFD_RELOC_X86_64_GOTPLT64:
    case BFD_RELOC_X86_64_PLTOFF64:
      goto _L1242;
    }
  }
  else {
    if ((other == BFD_RELOC_SIZE32) && (pcrel != 0)) {
LAB_00045888:
      pcVar3 = "there are no pc-relative size relocations";
      goto LAB_0004572f;
    }
    if (size == 4) {
      if (flag_code == CODE_64BIT) {
        if (disallow_64bit_reloc != 0) {
          sign = -1;
        }
      }
      else {
        sign = -1;
      }
    }
  }
  iVar1 = bfd_reloc_type_lookup(stdoutput,other);
  if (iVar1 == 0) {
    pcVar3 = (char *)dcgettext(0,"unknown relocation (%u)",5);
    as_bad(pcVar3,other);
    return BFD_RELOC_NONE;
  }
  uVar2 = bfd_get_reloc_size(iVar1);
  if (uVar2 != size) {
    pcVar3 = (char *)bfd_get_reloc_size(iVar1);
    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";
LAB_0004581f:
    pcVar4 = (char *)dcgettext(0,pcVar4,5);
    as_bad(pcVar4,pcVar3,size);
    return BFD_RELOC_NONE;
  }
  if ((pcrel == 0) || (*(int *)(iVar1 + 0x10) != 0)) {
    if (*(int *)(iVar1 + 0x18) == 2) {
      if (sign != 0) {
        return other;
      }
    }
    else if ((*(int *)(iVar1 + 0x18) != 3) || (sign < 1)) {
_L1242:
      return other;
    }
    pcVar3 = "relocated field and relocation type differ in signedness";
  }
  else {
    pcVar3 = "non-pc-relative relocation for pc-relative field";
  }
LAB_0004572f:
  pcVar3 = (char *)dcgettext(0,pcVar3,5);
  as_bad(pcVar3);
  return BFD_RELOC_NONE;
}



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

int __regparm3 FUN_00045690(uint param_1,int param_2,int param_3,int param_4)

{
  int iVar1;
  uint uVar2;
  undefined4 uVar3;
  char *pcVar4;
  char *pcVar5;
  
  if (param_4 == 0x47) {
    if (param_2 != 0) {
      if (param_3 == 0) {
        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);
        FUN_0002bd60(uVar3);
      }
      if (param_1 == 2) {
        return 0xb;
      }
      if (param_1 < 3) {
        if (param_1 == 1) {
          return 0xd;
        }
      }
      else {
        if (param_1 == 4) {
          return 9;
        }
        if (param_1 == 8) {
          return 8;
        }
      }
      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);
      FUN_0002bd60(uVar3,param_1);
      return 0x47;
    }
    if (param_3 < 1) {
      if (param_1 == 2) {
        return 5;
      }
      if (param_1 < 3) {
        if (param_1 == 1) {
          return 7;
        }
      }
      else {
        if (param_1 == 4) {
          return 2;
        }
        if (param_1 == 8) {
          return 1;
        }
      }
      pcVar5 = "unsigned";
    }
    else {
      pcVar5 = "signed";
      if (param_1 == 4) {
        return 0x184;
      }
    }
    pcVar4 = "cannot do %s %u byte relocation";
    goto LAB_0004581f;
  }
  if (param_1 == 8) {
    switch(param_4) {
    case 0x17d:
      return 399;
    default:
      if (param_4 == 0x24) {
        if (param_2 != 0) goto LAB_00045888;
        param_4 = 0x25;
      }
      break;
    case 0x183:
      param_4 = 400;
      break;
    case 0x18a:
      param_4 = 0x186;
      break;
    case 0x18c:
      param_4 = 0x187;
      break;
    case 0x18e:
      param_4 = 0x191;
      break;
    case 0x192:
    case 0x193:
      goto LAB_00045774;
    }
  }
  else {
    if ((param_4 == 0x24) && (param_2 != 0)) {
LAB_00045888:
      pcVar5 = "there are no pc-relative size relocations";
      goto LAB_0004572f;
    }
    if (param_1 == 4) {
      if (DAT_00088f0c == 2) {
        if (DAT_00088f04 != 0) {
          param_3 = -1;
        }
      }
      else {
        param_3 = -1;
      }
    }
  }
  iVar1 = bfd_reloc_type_lookup(DAT_00089944,param_4);
  if (iVar1 == 0) {
    uVar3 = dcgettext(0,"unknown relocation (%u)",5);
    FUN_0002bd60(uVar3,param_4);
    return 0x47;
  }
  uVar2 = bfd_get_reloc_size(iVar1);
  if (uVar2 != param_1) {
    pcVar5 = (char *)bfd_get_reloc_size(iVar1);
    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";
LAB_0004581f:
    uVar3 = dcgettext(0,pcVar4,5);
    FUN_0002bd60(uVar3,pcVar5,param_1);
    return 0x47;
  }
  if ((param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0)) {
    if (*(int *)(iVar1 + 0x18) == 2) {
      if (param_3 != 0) {
        return param_4;
      }
    }
    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {
LAB_00045774:
      return param_4;
    }
    pcVar5 = "relocated field and relocation type differ in signedness";
  }
  else {
    pcVar5 = "non-pc-relative relocation for pc-relative field";
  }
LAB_0004572f:
  uVar3 = dcgettext(0,pcVar5,5);
  FUN_0002bd60(uVar3);
  return 0x47;
}


PUSH EBP
MOV EBP,ECX
PUSH EDI
MOV EDI,EDX
PUSH ESI
MOV ESI,EAX
PUSH EBX
CALL 0x00016000
ADD EBX,0x3a961
SUB ESP,0x1c
CMP dword ptr [ESP + 0x30],0x47
JZ 0x00045780
CMP EAX,0x8
JZ 0x00045750
CMP dword ptr [ESP + 0x30],0x24
JZ 0x00045880
CMP ESI,0x4
JZ 0x00045848
LEA EAX,[EBX + 0x9944]
SUB ESP,0x8
PUSH dword ptr [ESP + 0x38]
PUSH dword ptr [EAX]
CALL 0x000141e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00045928
SUB ESP,0xc
PUSH EAX
MOV dword ptr [ESP + 0x1c],EAX
CALL 0x000141c0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
CMP EAX,ESI
JNZ 0x000458a0
TEST EDI,EDI
JNZ 0x000457d8
MOV EAX,dword ptr [EDX + 0x18]
CMP EAX,0x2
JZ 0x00045770
CMP EAX,0x3
JNZ 0x00045774
TEST EBP,EBP
JLE 0x00045774
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe22d0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bd60
ADD ESP,0x10
MOV EAX,0x47
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x30]
SUB EAX,0x17d
CMP EAX,0x16
JA 0x000459d0
MOV ECX,dword ptr [EBX + EAX*0x4 + 0xfffe4a00]
ADD ECX,EBX
JMP ECX
TEST EBP,EBP
JZ 0x00045724
MOV EAX,dword ptr [ESP + 0x30]
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST EDX,EDX
JZ 0x000457f8
TEST ECX,ECX
JZ 0x00045958
CMP ESI,0x2
JZ 0x000459f0
JBE 0x00045860
MOV EAX,0x9
CMP ESI,0x4
JZ 0x00045778
MOV EAX,0x8
CMP ESI,0x8
JZ 0x00045778
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe233c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
MOV EAX,0x47
JMP 0x00045778
MOV ESI,dword ptr [EDX + 0x10]
TEST ESI,ESI
JNZ 0x00045713
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe229c]
PUSH 0x5
JMP 0x0004572f
TEST ECX,ECX
JLE 0x000458c0
MOV EAX,0x184
LEA EDI,[EBX + 0xfffe3c09]
CMP ESI,0x4
JZ 0x00045778
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe2368]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
ADD ESP,0xc
PUSH ESI
PUSH EDI
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
MOV EAX,0x47
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP dword ptr [EBX + 0x8f0c],0x2
JZ 0x00045910
MOV EBP,0xffffffff
JMP 0x000456d0
MOV EAX,0xd
CMP ESI,0x1
JNZ 0x000457af
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST EDI,EDI
JZ 0x000456c7
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe2238]
PUSH 0x5
JMP 0x0004572f
SUB ESP,0xc
PUSH EDX
CALL 0x000141c0
ADD ESP,0xc
MOV EDI,EAX
PUSH 0x5
LEA EAX,[EBX + 0xfffe2264]
JMP 0x0004581f
CMP EAX,0x2
JZ 0x00045a00
JBE 0x000458f8
MOV EAX,0x2
CMP ESI,0x4
JZ 0x00045778
MOV EAX,0x1
CMP ESI,0x8
JZ 0x00045778
LEA EDI,[EBX + 0xfffe3c07]
JMP 0x00045814
MOV EAX,0x7
CMP ESI,0x1
JZ 0x00045778
JMP 0x000458e7
MOV EAX,dword ptr [EBX + 0x8f04]
TEST EAX,EAX
MOV EAX,0xffffffff
CMOVNZ EBP,EAX
JMP 0x000456d0
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe3c10]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP EDI
POP EBP
PUSH dword ptr [ESP + 0x38]
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
MOV EAX,0x47
JMP 0x00045778
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe230c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bd60
ADD ESP,0x10
JMP 0x0004578c
CMP dword ptr [ESP + 0x30],0x24
JNZ 0x000456d0
TEST EDI,EDI
JNZ 0x00045888
MOV dword ptr [ESP + 0x30],0x25
JMP 0x000456d0
MOV EAX,0xb
JMP 0x00045778
MOV EAX,0x5
JMP 0x00045778
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 FUN_00045690(uint param_1,int param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  if (param_4 == 0x47) {\n    if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }\n    if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }\n  if (param_1 == 8) {\n    switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }\n  }\n  else {\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }\n  iVar1 = bfd_reloc_type_lookup(DAT_00089944,param_4);\n  if (iVar1 == 0) {\n    uVar3 = dcgettext(0,"unknown relocation (%u)",5);\n    FUN_0002bd60(uVar3,param_4);\n    return 0x47;\n  }\n  uVar2 = bfd_get_reloc_size(iVar1);\n  if (uVar2 != param_1) {\n    pcVar5 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);\n    FUN_0002bd60(uVar3,pcVar5,param_1);\n    return 0x47;\n  }\n  if ((param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0)) {\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }\n    pcVar5 = "relocated field and relocation type differ in signedness";\n  }\n  else {\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }\nLAB_0004572f:\n  uVar3 = dcgettext(0,pcVar5,5);\n  FUN_0002bd60(uVar3);\n  return 0x47;\n}\n\n" comment (function_definition "int __regparm3 FUN_00045690(uint param_1,int param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  if (param_4 == 0x47) {\n    if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }\n    if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }\n  if (param_1 == 8) {\n    switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }\n  }\n  else {\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }\n  iVar1 = bfd_reloc_type_lookup(DAT_00089944,param_4);\n  if (iVar1 == 0) {\n    uVar3 = dcgettext(0,"unknown relocation (%u)",5);\n    FUN_0002bd60(uVar3,param_4);\n    return 0x47;\n  }\n  uVar2 = bfd_get_reloc_size(iVar1);\n  if (uVar2 != param_1) {\n    pcVar5 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);\n    FUN_0002bd60(uVar3,pcVar5,param_1);\n    return 0x47;\n  }\n  if ((param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0)) {\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }\n    pcVar5 = "relocated field and relocation type differ in signedness";\n  }\n  else {\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }\nLAB_0004572f:\n  uVar3 = dcgettext(0,pcVar5,5);\n  FUN_0002bd60(uVar3);\n  return 0x47;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00045690(uint param_1,int param_2,int param_3,int param_4)" identifier (parameter_list "(uint param_1,int param_2,int param_3,int param_4)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  if (param_4 == 0x47) {\n    if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }\n    if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }\n  if (param_1 == 8) {\n    switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }\n  }\n  else {\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }\n  iVar1 = bfd_reloc_type_lookup(DAT_00089944,param_4);\n  if (iVar1 == 0) {\n    uVar3 = dcgettext(0,"unknown relocation (%u)",5);\n    FUN_0002bd60(uVar3,param_4);\n    return 0x47;\n  }\n  uVar2 = bfd_get_reloc_size(iVar1);\n  if (uVar2 != param_1) {\n    pcVar5 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);\n    FUN_0002bd60(uVar3,pcVar5,param_1);\n    return 0x47;\n  }\n  if ((param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0)) {\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }\n    pcVar5 = "relocated field and relocation type differ in signedness";\n  }\n  else {\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }\nLAB_0004572f:\n  uVar3 = dcgettext(0,pcVar5,5);\n  FUN_0002bd60(uVar3);\n  return 0x47;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (if_statement "if (param_4 == 0x47) {\n    if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }\n    if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }" if (parenthesized_expression "(param_4 == 0x47)" ( (binary_expression "param_4 == 0x47" identifier == number_literal) )) (compound_statement "{\n    if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }\n    if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }" { (if_statement "if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }" { (if_statement "if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }" { (expression_statement "uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);" (assignment_expression "uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5)" identifier = (call_expression "dcgettext(0,"there are no unsigned pc-relative relocations",5)" identifier (argument_list "(0,"there are no unsigned pc-relative relocations",5)" ( number_literal , (string_literal ""there are no unsigned pc-relative relocations"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar3);" (call_expression "FUN_0002bd60(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) })) (if_statement "if (param_1 == 2) {\n        return 0xb;\n      }" if (parenthesized_expression "(param_1 == 2)" ( (binary_expression "param_1 == 2" identifier == number_literal) )) (compound_statement "{\n        return 0xb;\n      }" { (return_statement "return 0xb;" return number_literal ;) })) (if_statement "if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }" if (parenthesized_expression "(param_1 < 3)" ( (binary_expression "param_1 < 3" identifier < number_literal) )) (compound_statement "{\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }" { (if_statement "if (param_1 == 1) {\n          return 0xd;\n        }" if (parenthesized_expression "(param_1 == 1)" ( (binary_expression "param_1 == 1" identifier == number_literal) )) (compound_statement "{\n          return 0xd;\n        }" { (return_statement "return 0xd;" return number_literal ;) })) }) (else_clause "else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }" else (compound_statement "{\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }" { (if_statement "if (param_1 == 4) {\n          return 9;\n        }" if (parenthesized_expression "(param_1 == 4)" ( (binary_expression "param_1 == 4" identifier == number_literal) )) (compound_statement "{\n          return 9;\n        }" { (return_statement "return 9;" return number_literal ;) })) (if_statement "if (param_1 == 8) {\n          return 8;\n        }" if (parenthesized_expression "(param_1 == 8)" ( (binary_expression "param_1 == 8" identifier == number_literal) )) (compound_statement "{\n          return 8;\n        }" { (return_statement "return 8;" return number_literal ;) })) }))) (expression_statement "uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);" (assignment_expression "uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5)" identifier = (call_expression "dcgettext(0,"cannot do %u byte pc-relative relocation",5)" identifier (argument_list "(0,"cannot do %u byte pc-relative relocation",5)" ( number_literal , (string_literal ""cannot do %u byte pc-relative relocation"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar3,param_1);" (call_expression "FUN_0002bd60(uVar3,param_1)" identifier (argument_list "(uVar3,param_1)" ( identifier , identifier ))) ;) (return_statement "return 0x47;" return number_literal ;) })) (if_statement "if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }" { (if_statement "if (param_1 == 2) {\n        return 5;\n      }" if (parenthesized_expression "(param_1 == 2)" ( (binary_expression "param_1 == 2" identifier == number_literal) )) (compound_statement "{\n        return 5;\n      }" { (return_statement "return 5;" return number_literal ;) })) (if_statement "if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }" if (parenthesized_expression "(param_1 < 3)" ( (binary_expression "param_1 < 3" identifier < number_literal) )) (compound_statement "{\n        if (param_1 == 1) {\n          return 7;\n        }\n      }" { (if_statement "if (param_1 == 1) {\n          return 7;\n        }" if (parenthesized_expression "(param_1 == 1)" ( (binary_expression "param_1 == 1" identifier == number_literal) )) (compound_statement "{\n          return 7;\n        }" { (return_statement "return 7;" return number_literal ;) })) }) (else_clause "else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }" else (compound_statement "{\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }" { (if_statement "if (param_1 == 4) {\n          return 2;\n        }" if (parenthesized_expression "(param_1 == 4)" ( (binary_expression "param_1 == 4" identifier == number_literal) )) (compound_statement "{\n          return 2;\n        }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_1 == 8) {\n          return 1;\n        }" if (parenthesized_expression "(param_1 == 8)" ( (binary_expression "param_1 == 8" identifier == number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) }))) (expression_statement "pcVar5 = "unsigned";" (assignment_expression "pcVar5 = "unsigned"" identifier = (string_literal ""unsigned"" " string_content ")) ;) }) (else_clause "else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }" else (compound_statement "{\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }" { (expression_statement "pcVar5 = "signed";" (assignment_expression "pcVar5 = "signed"" identifier = (string_literal ""signed"" " string_content ")) ;) (if_statement "if (param_1 == 4) {\n        return 0x184;\n      }" if (parenthesized_expression "(param_1 == 4)" ( (binary_expression "param_1 == 4" identifier == number_literal) )) (compound_statement "{\n        return 0x184;\n      }" { (return_statement "return 0x184;" return number_literal ;) })) }))) (expression_statement "pcVar4 = "cannot do %s %u byte relocation";" (assignment_expression "pcVar4 = "cannot do %s %u byte relocation"" identifier = (string_literal ""cannot do %s %u byte relocation"" " string_content ")) ;) (goto_statement "goto LAB_0004581f;" goto statement_identifier ;) })) (if_statement "if (param_1 == 8) {\n    switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }\n  }\n  else {\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }" if (parenthesized_expression "(param_1 == 8)" ( (binary_expression "param_1 == 8" identifier == number_literal) )) (compound_statement "{\n    switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }\n  }" { (switch_statement "switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }" switch (parenthesized_expression "(param_4)" ( identifier )) (compound_statement "{\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }" { (case_statement "case 0x17d:\n      return 399;" case number_literal : (return_statement "return 399;" return number_literal ;)) (case_statement "default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;" default : (if_statement "if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }" if (parenthesized_expression "(param_4 == 0x24)" ( (binary_expression "param_4 == 0x24" identifier == number_literal) )) (compound_statement "{\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }" { (if_statement "if (param_2 != 0) goto LAB_00045888;" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00045888;" goto statement_identifier ;)) (expression_statement "param_4 = 0x25;" (assignment_expression "param_4 = 0x25" identifier = number_literal) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x183:\n      param_4 = 400;\n      break;" case number_literal : (expression_statement "param_4 = 400;" (assignment_expression "param_4 = 400" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x18a:\n      param_4 = 0x186;\n      break;" case number_literal : (expression_statement "param_4 = 0x186;" (assignment_expression "param_4 = 0x186" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x18c:\n      param_4 = 0x187;\n      break;" case number_literal : (expression_statement "param_4 = 0x187;" (assignment_expression "param_4 = 0x187" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x18e:\n      param_4 = 0x191;\n      break;" case number_literal : (expression_statement "param_4 = 0x191;" (assignment_expression "param_4 = 0x191" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x192:" case number_literal :) (case_statement "case 0x193:\n      goto LAB_00045774;" case number_literal : (goto_statement "goto LAB_00045774;" goto statement_identifier ;)) })) }) (else_clause "else {\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }" else (compound_statement "{\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }" { (if_statement "if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }" if (parenthesized_expression "((param_4 == 0x24) && (param_2 != 0))" ( (binary_expression "(param_4 == 0x24) && (param_2 != 0)" (parenthesized_expression "(param_4 == 0x24)" ( (binary_expression "param_4 == 0x24" identifier == number_literal) )) && (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) ))) )) (compound_statement "{\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }" { (labeled_statement "LAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";" statement_identifier : (expression_statement "pcVar5 = "there are no pc-relative size relocations";" (assignment_expression "pcVar5 = "there are no pc-relative size relocations"" identifier = (string_literal ""there are no pc-relative size relocations"" " string_content ")) ;)) (goto_statement "goto LAB_0004572f;" goto statement_identifier ;) })) (if_statement "if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }" if (parenthesized_expression "(param_1 == 4)" ( (binary_expression "param_1 == 4" identifier == number_literal) )) (compound_statement "{\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }" { (if_statement "if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }" if (parenthesized_expression "(DAT_00088f0c == 2)" ( (binary_expression "DAT_00088f0c == 2" identifier == number_literal) )) (compound_statement "{\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }" { (if_statement "if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }" if (parenthesized_expression "(DAT_00088f04 != 0)" ( (binary_expression "DAT_00088f04 != 0" identifier != number_literal) )) (compound_statement "{\n          param_3 = -1;\n        }" { (expression_statement "param_3 = -1;" (assignment_expression "param_3 = -1" identifier = number_literal) ;) })) }) (else_clause "else {\n        param_3 = -1;\n      }" else (compound_statement "{\n        param_3 = -1;\n      }" { (expression_statement "param_3 = -1;" (assignment_expression "param_3 = -1" identifier = number_literal) ;) }))) })) }))) (expression_statement "iVar1 = bfd_reloc_type_lookup(DAT_00089944,param_4);" (assignment_expression "iVar1 = bfd_reloc_type_lookup(DAT_00089944,param_4)" identifier = (call_expression "bfd_reloc_type_lookup(DAT_00089944,param_4)" identifier (argument_list "(DAT_00089944,param_4)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n    uVar3 = dcgettext(0,"unknown relocation (%u)",5);\n    FUN_0002bd60(uVar3,param_4);\n    return 0x47;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar3 = dcgettext(0,"unknown relocation (%u)",5);\n    FUN_0002bd60(uVar3,param_4);\n    return 0x47;\n  }" { (expression_statement "uVar3 = dcgettext(0,"unknown relocation (%u)",5);" (assignment_expression "uVar3 = dcgettext(0,"unknown relocation (%u)",5)" identifier = (call_expression "dcgettext(0,"unknown relocation (%u)",5)" identifier (argument_list "(0,"unknown relocation (%u)",5)" ( number_literal , (string_literal ""unknown relocation (%u)"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar3,param_4);" (call_expression "FUN_0002bd60(uVar3,param_4)" identifier (argument_list "(uVar3,param_4)" ( identifier , identifier ))) ;) (return_statement "return 0x47;" return number_literal ;) })) (expression_statement "uVar2 = bfd_get_reloc_size(iVar1);" (assignment_expression "uVar2 = bfd_get_reloc_size(iVar1)" identifier = (call_expression "bfd_get_reloc_size(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (if_statement "if (uVar2 != param_1) {\n    pcVar5 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);\n    FUN_0002bd60(uVar3,pcVar5,param_1);\n    return 0x47;\n  }" if (parenthesized_expression "(uVar2 != param_1)" ( (binary_expression "uVar2 != param_1" identifier != identifier) )) (compound_statement "{\n    pcVar5 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);\n    FUN_0002bd60(uVar3,pcVar5,param_1);\n    return 0x47;\n  }" { (expression_statement "pcVar5 = (char *)bfd_get_reloc_size(iVar1);" (assignment_expression "pcVar5 = (char *)bfd_get_reloc_size(iVar1)" identifier = (cast_expression "(char *)bfd_get_reloc_size(iVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_get_reloc_size(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))))) ;) (expression_statement "pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";" (assignment_expression "pcVar4 = "%u-byte relocation cannot be applied to %u-byte field"" identifier = (string_literal ""%u-byte relocation cannot be applied to %u-byte field"" " string_content ")) ;) (labeled_statement "LAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);" statement_identifier : (expression_statement "uVar3 = dcgettext(0,pcVar4,5);" (assignment_expression "uVar3 = dcgettext(0,pcVar4,5)" identifier = (call_expression "dcgettext(0,pcVar4,5)" identifier (argument_list "(0,pcVar4,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002bd60(uVar3,pcVar5,param_1);" (call_expression "FUN_0002bd60(uVar3,pcVar5,param_1)" identifier (argument_list "(uVar3,pcVar5,param_1)" ( identifier , identifier , identifier ))) ;) (return_statement "return 0x47;" return number_literal ;) })) (if_statement "if ((param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0)) {\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }\n    pcVar5 = "relocated field and relocation type differ in signedness";\n  }\n  else {\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }" if (parenthesized_expression "((param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0))" ( (binary_expression "(param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(iVar1 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x10) != 0" (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }\n    pcVar5 = "relocated field and relocation type differ in signedness";\n  }" { (if_statement "if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }" if (parenthesized_expression "(*(int *)(iVar1 + 0x18) == 2)" ( (binary_expression "*(int *)(iVar1 + 0x18) == 2" (pointer_expression "*(int *)(iVar1 + 0x18)" * (cast_expression "(int *)(iVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }" { (if_statement "if (param_3 != 0) {\n        return param_4;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        return param_4;\n      }" { (return_statement "return param_4;" return identifier ;) })) }) (else_clause "else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }" else (if_statement "if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }" if (parenthesized_expression "((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1))" ( (binary_expression "(*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)" (parenthesized_expression "(*(int *)(iVar1 + 0x18) != 3)" ( (binary_expression "*(int *)(iVar1 + 0x18) != 3" (pointer_expression "*(int *)(iVar1 + 0x18)" * (cast_expression "(int *)(iVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) ))) )) (compound_statement "{\nLAB_00045774:\n      return param_4;\n    }" { (labeled_statement "LAB_00045774:\n      return param_4;" statement_identifier : (return_statement "return param_4;" return identifier ;)) })))) (expression_statement "pcVar5 = "relocated field and relocation type differ in signedness";" (assignment_expression "pcVar5 = "relocated field and relocation type differ in signedness"" identifier = (string_literal ""relocated field and relocation type differ in signedness"" " string_content ")) ;) }) (else_clause "else {\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }" else (compound_statement "{\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }" { (expression_statement "pcVar5 = "non-pc-relative relocation for pc-relative field";" (assignment_expression "pcVar5 = "non-pc-relative relocation for pc-relative field"" identifier = (string_literal ""non-pc-relative relocation for pc-relative field"" " string_content ")) ;) }))) (labeled_statement "LAB_0004572f:\n  uVar3 = dcgettext(0,pcVar5,5);" statement_identifier : (expression_statement "uVar3 = dcgettext(0,pcVar5,5);" (assignment_expression "uVar3 = dcgettext(0,pcVar5,5)" identifier = (call_expression "dcgettext(0,pcVar5,5)" identifier (argument_list "(0,pcVar5,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002bd60(uVar3);" (call_expression "FUN_0002bd60(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (return_statement "return 0x47;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbfd_reloc_code_real_type __regparm3\nreloc(uint size,int pcrel,int sign,bfd_reloc_code_real_type other)\n\n{\n  int iVar1;\n  uint uVar2;\n  char *pcVar3;\n  char *pcVar4;\n  \n  if (other == BFD_RELOC_NONE) {\n    if (pcrel != 0) {\n      if (sign == 0) {\n        pcVar3 = (char *)dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        as_bad(pcVar3);\n      }\n      if (size == 2) {\n        return BFD_RELOC_16_PCREL;\n      }\n      if (size < 3) {\n        if (size == 1) {\n          return BFD_RELOC_8_PCREL;\n        }\n      }\n      else {\n        if (size == 4) {\n          return BFD_RELOC_32_PCREL;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64_PCREL;\n        }\n      }\n      pcVar3 = (char *)dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      as_bad(pcVar3,size);\n      return BFD_RELOC_NONE;\n    }\n    if (sign < 1) {\n      if (size == 2) {\n        return BFD_RELOC_16;\n      }\n      if (size < 3) {\n        if (size == 1) {\n          return BFD_RELOC_8;\n        }\n      }\n      else {\n        if (size == 4) {\n          return BFD_RELOC_32;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64;\n        }\n      }\n      pcVar3 = "unsigned";\n    }\n    else {\n      pcVar3 = "signed";\n      if (size == 4) {\n        return BFD_RELOC_X86_64_32S;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }\n  if (size == 8) {\n    switch(other) {\n    case BFD_RELOC_X86_64_GOT32:\n      return BFD_RELOC_X86_64_GOT64;\n    default:\n      if (other == BFD_RELOC_SIZE32) {\n        if (pcrel != 0) goto LAB_00045888;\n        other = BFD_RELOC_SIZE64;\n      }\n      break;\n    case BFD_RELOC_X86_64_GOTPCREL:\n      other = BFD_RELOC_X86_64_GOTPCREL64;\n      break;\n    case BFD_RELOC_X86_64_DTPOFF32:\n      other = BFD_RELOC_X86_64_DTPOFF64;\n      break;\n    case BFD_RELOC_X86_64_TPOFF32:\n      other = BFD_RELOC_X86_64_TPOFF64;\n      break;\n    case BFD_RELOC_X86_64_GOTPC32:\n      other = BFD_RELOC_X86_64_GOTPC64;\n      break;\n    case BFD_RELOC_X86_64_GOTPLT64:\n    case BFD_RELOC_X86_64_PLTOFF64:\n      goto _L1242;\n    }\n  }\n  else {\n    if ((other == BFD_RELOC_SIZE32) && (pcrel != 0)) {\nLAB_00045888:\n      pcVar3 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (size == 4) {\n      if (flag_code == CODE_64BIT) {\n        if (disallow_64bit_reloc != 0) {\n          sign = -1;\n        }\n      }\n      else {\n        sign = -1;\n      }\n    }\n  }\n  iVar1 = bfd_reloc_type_lookup(stdoutput,other);\n  if (iVar1 == 0) {\n    pcVar3 = (char *)dcgettext(0,"unknown relocation (%u)",5);\n    as_bad(pcVar3,other);\n    return BFD_RELOC_NONE;\n  }\n  uVar2 = bfd_get_reloc_size(iVar1);\n  if (uVar2 != size) {\n    pcVar3 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    pcVar4 = (char *)dcgettext(0,pcVar4,5);\n    as_bad(pcVar4,pcVar3,size);\n    return BFD_RELOC_NONE;\n  }\n  if ((pcrel == 0) || (*(int *)(iVar1 + 0x10) != 0)) {\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (sign != 0) {\n        return other;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (sign < 1)) {\n_L1242:\n      return other;\n    }\n    pcVar3 = "relocated field and relocation type differ in signedness";\n  }\n  else {\n    pcVar3 = "non-pc-relative relocation for pc-relative field";\n  }\nLAB_0004572f:\n  pcVar3 = (char *)dcgettext(0,pcVar3,5);\n  as_bad(pcVar3);\n  return BFD_RELOC_NONE;\n}\n\n" comment (function_definition "bfd_reloc_code_real_type __regparm3\nreloc(uint size,int pcrel,int sign,bfd_reloc_code_real_type other)\n\n{\n  int iVar1;\n  uint uVar2;\n  char *pcVar3;\n  char *pcVar4;\n  \n  if (other == BFD_RELOC_NONE) {\n    if (pcrel != 0) {\n      if (sign == 0) {\n        pcVar3 = (char *)dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        as_bad(pcVar3);\n      }\n      if (size == 2) {\n        return BFD_RELOC_16_PCREL;\n      }\n      if (size < 3) {\n        if (size == 1) {\n          return BFD_RELOC_8_PCREL;\n        }\n      }\n      else {\n        if (size == 4) {\n          return BFD_RELOC_32_PCREL;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64_PCREL;\n        }\n      }\n      pcVar3 = (char *)dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      as_bad(pcVar3,size);\n      return BFD_RELOC_NONE;\n    }\n    if (sign < 1) {\n      if (size == 2) {\n        return BFD_RELOC_16;\n      }\n      if (size < 3) {\n        if (size == 1) {\n          return BFD_RELOC_8;\n        }\n      }\n      else {\n        if (size == 4) {\n          return BFD_RELOC_32;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64;\n        }\n      }\n      pcVar3 = "unsigned";\n    }\n    else {\n      pcVar3 = "signed";\n      if (size == 4) {\n        return BFD_RELOC_X86_64_32S;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }\n  if (size == 8) {\n    switch(other) {\n    case BFD_RELOC_X86_64_GOT32:\n      return BFD_RELOC_X86_64_GOT64;\n    default:\n      if (other == BFD_RELOC_SIZE32) {\n        if (pcrel != 0) goto LAB_00045888;\n        other = BFD_RELOC_SIZE64;\n      }\n      break;\n    case BFD_RELOC_X86_64_GOTPCREL:\n      other = BFD_RELOC_X86_64_GOTPCREL64;\n      break;\n    case BFD_RELOC_X86_64_DTPOFF32:\n      other = BFD_RELOC_X86_64_DTPOFF64;\n      break;\n    case BFD_RELOC_X86_64_TPOFF32:\n      other = BFD_RELOC_X86_64_TPOFF64;\n      break;\n    case BFD_RELOC_X86_64_GOTPC32:\n      other = BFD_RELOC_X86_64_GOTPC64;\n      break;\n    case BFD_RELOC_X86_64_GOTPLT64:\n    case BFD_RELOC_X86_64_PLTOFF64:\n      goto _L1242;\n    }\n  }\n  else {\n    if ((other == BFD_RELOC_SIZE32) && (pcrel != 0)) {\nLAB_00045888:\n      pcVar3 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (size == 4) {\n      if (flag_code == CODE_64BIT) {\n        if (disallow_64bit_reloc != 0) {\n          sign = -1;\n        }\n      }\n      else {\n        sign = -1;\n      }\n    }\n  }\n  iVar1 = bfd_reloc_type_lookup(stdoutput,other);\n  if (iVar1 == 0) {\n    pcVar3 = (char *)dcgettext(0,"unknown relocation (%u)",5);\n    as_bad(pcVar3,other);\n    return BFD_RELOC_NONE;\n  }\n  uVar2 = bfd_get_reloc_size(iVar1);\n  if (uVar2 != size) {\n    pcVar3 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    pcVar4 = (char *)dcgettext(0,pcVar4,5);\n    as_bad(pcVar4,pcVar3,size);\n    return BFD_RELOC_NONE;\n  }\n  if ((pcrel == 0) || (*(int *)(iVar1 + 0x10) != 0)) {\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (sign != 0) {\n        return other;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (sign < 1)) {\n_L1242:\n      return other;\n    }\n    pcVar3 = "relocated field and relocation type differ in signedness";\n  }\n  else {\n    pcVar3 = "non-pc-relative relocation for pc-relative field";\n  }\nLAB_0004572f:\n  pcVar3 = (char *)dcgettext(0,pcVar3,5);\n  as_bad(pcVar3);\n  return BFD_RELOC_NONE;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "reloc(uint size,int pcrel,int sign,bfd_reloc_code_real_type other)" identifier (parameter_list "(uint size,int pcrel,int sign,bfd_reloc_code_real_type other)" ( (parameter_declaration "uint size" type_identifier identifier) , (parameter_declaration "int pcrel" primitive_type identifier) , (parameter_declaration "int sign" primitive_type identifier) , (parameter_declaration "bfd_reloc_code_real_type other" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  char *pcVar3;\n  char *pcVar4;\n  \n  if (other == BFD_RELOC_NONE) {\n    if (pcrel != 0) {\n      if (sign == 0) {\n        pcVar3 = (char *)dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        as_bad(pcVar3);\n      }\n      if (size == 2) {\n        return BFD_RELOC_16_PCREL;\n      }\n      if (size < 3) {\n        if (size == 1) {\n          return BFD_RELOC_8_PCREL;\n        }\n      }\n      else {\n        if (size == 4) {\n          return BFD_RELOC_32_PCREL;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64_PCREL;\n        }\n      }\n      pcVar3 = (char *)dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      as_bad(pcVar3,size);\n      return BFD_RELOC_NONE;\n    }\n    if (sign < 1) {\n      if (size == 2) {\n        return BFD_RELOC_16;\n      }\n      if (size < 3) {\n        if (size == 1) {\n          return BFD_RELOC_8;\n        }\n      }\n      else {\n        if (size == 4) {\n          return BFD_RELOC_32;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64;\n        }\n      }\n      pcVar3 = "unsigned";\n    }\n    else {\n      pcVar3 = "signed";\n      if (size == 4) {\n        return BFD_RELOC_X86_64_32S;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }\n  if (size == 8) {\n    switch(other) {\n    case BFD_RELOC_X86_64_GOT32:\n      return BFD_RELOC_X86_64_GOT64;\n    default:\n      if (other == BFD_RELOC_SIZE32) {\n        if (pcrel != 0) goto LAB_00045888;\n        other = BFD_RELOC_SIZE64;\n      }\n      break;\n    case BFD_RELOC_X86_64_GOTPCREL:\n      other = BFD_RELOC_X86_64_GOTPCREL64;\n      break;\n    case BFD_RELOC_X86_64_DTPOFF32:\n      other = BFD_RELOC_X86_64_DTPOFF64;\n      break;\n    case BFD_RELOC_X86_64_TPOFF32:\n      other = BFD_RELOC_X86_64_TPOFF64;\n      break;\n    case BFD_RELOC_X86_64_GOTPC32:\n      other = BFD_RELOC_X86_64_GOTPC64;\n      break;\n    case BFD_RELOC_X86_64_GOTPLT64:\n    case BFD_RELOC_X86_64_PLTOFF64:\n      goto _L1242;\n    }\n  }\n  else {\n    if ((other == BFD_RELOC_SIZE32) && (pcrel != 0)) {\nLAB_00045888:\n      pcVar3 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (size == 4) {\n      if (flag_code == CODE_64BIT) {\n        if (disallow_64bit_reloc != 0) {\n          sign = -1;\n        }\n      }\n      else {\n        sign = -1;\n      }\n    }\n  }\n  iVar1 = bfd_reloc_type_lookup(stdoutput,other);\n  if (iVar1 == 0) {\n    pcVar3 = (char *)dcgettext(0,"unknown relocation (%u)",5);\n    as_bad(pcVar3,other);\n    return BFD_RELOC_NONE;\n  }\n  uVar2 = bfd_get_reloc_size(iVar1);\n  if (uVar2 != size) {\n    pcVar3 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    pcVar4 = (char *)dcgettext(0,pcVar4,5);\n    as_bad(pcVar4,pcVar3,size);\n    return BFD_RELOC_NONE;\n  }\n  if ((pcrel == 0) || (*(int *)(iVar1 + 0x10) != 0)) {\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (sign != 0) {\n        return other;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (sign < 1)) {\n_L1242:\n      return other;\n    }\n    pcVar3 = "relocated field and relocation type differ in signedness";\n  }\n  else {\n    pcVar3 = "non-pc-relative relocation for pc-relative field";\n  }\nLAB_0004572f:\n  pcVar3 = (char *)dcgettext(0,pcVar3,5);\n  as_bad(pcVar3);\n  return BFD_RELOC_NONE;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (if_statement "if (other == BFD_RELOC_NONE) {\n    if (pcrel != 0) {\n      if (sign == 0) {\n        pcVar3 = (char *)dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        as_bad(pcVar3);\n      }\n      if (size == 2) {\n        return BFD_RELOC_16_PCREL;\n      }\n      if (size < 3) {\n        if (size == 1) {\n          return BFD_RELOC_8_PCREL;\n        }\n      }\n      else {\n        if (size == 4) {\n          return BFD_RELOC_32_PCREL;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64_PCREL;\n        }\n      }\n      pcVar3 = (char *)dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      as_bad(pcVar3,size);\n      return BFD_RELOC_NONE;\n    }\n    if (sign < 1) {\n      if (size == 2) {\n        return BFD_RELOC_16;\n      }\n      if (size < 3) {\n        if (size == 1) {\n          return BFD_RELOC_8;\n        }\n      }\n      else {\n        if (size == 4) {\n          return BFD_RELOC_32;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64;\n        }\n      }\n      pcVar3 = "unsigned";\n    }\n    else {\n      pcVar3 = "signed";\n      if (size == 4) {\n        return BFD_RELOC_X86_64_32S;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }" if (parenthesized_expression "(other == BFD_RELOC_NONE)" ( (binary_expression "other == BFD_RELOC_NONE" identifier == identifier) )) (compound_statement "{\n    if (pcrel != 0) {\n      if (sign == 0) {\n        pcVar3 = (char *)dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        as_bad(pcVar3);\n      }\n      if (size == 2) {\n        return BFD_RELOC_16_PCREL;\n      }\n      if (size < 3) {\n        if (size == 1) {\n          return BFD_RELOC_8_PCREL;\n        }\n      }\n      else {\n        if (size == 4) {\n          return BFD_RELOC_32_PCREL;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64_PCREL;\n        }\n      }\n      pcVar3 = (char *)dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      as_bad(pcVar3,size);\n      return BFD_RELOC_NONE;\n    }\n    if (sign < 1) {\n      if (size == 2) {\n        return BFD_RELOC_16;\n      }\n      if (size < 3) {\n        if (size == 1) {\n          return BFD_RELOC_8;\n        }\n      }\n      else {\n        if (size == 4) {\n          return BFD_RELOC_32;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64;\n        }\n      }\n      pcVar3 = "unsigned";\n    }\n    else {\n      pcVar3 = "signed";\n      if (size == 4) {\n        return BFD_RELOC_X86_64_32S;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }" { (if_statement "if (pcrel != 0) {\n      if (sign == 0) {\n        pcVar3 = (char *)dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        as_bad(pcVar3);\n      }\n      if (size == 2) {\n        return BFD_RELOC_16_PCREL;\n      }\n      if (size < 3) {\n        if (size == 1) {\n          return BFD_RELOC_8_PCREL;\n        }\n      }\n      else {\n        if (size == 4) {\n          return BFD_RELOC_32_PCREL;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64_PCREL;\n        }\n      }\n      pcVar3 = (char *)dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      as_bad(pcVar3,size);\n      return BFD_RELOC_NONE;\n    }" if (parenthesized_expression "(pcrel != 0)" ( (binary_expression "pcrel != 0" identifier != number_literal) )) (compound_statement "{\n      if (sign == 0) {\n        pcVar3 = (char *)dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        as_bad(pcVar3);\n      }\n      if (size == 2) {\n        return BFD_RELOC_16_PCREL;\n      }\n      if (size < 3) {\n        if (size == 1) {\n          return BFD_RELOC_8_PCREL;\n        }\n      }\n      else {\n        if (size == 4) {\n          return BFD_RELOC_32_PCREL;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64_PCREL;\n        }\n      }\n      pcVar3 = (char *)dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      as_bad(pcVar3,size);\n      return BFD_RELOC_NONE;\n    }" { (if_statement "if (sign == 0) {\n        pcVar3 = (char *)dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        as_bad(pcVar3);\n      }" if (parenthesized_expression "(sign == 0)" ( (binary_expression "sign == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar3 = (char *)dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        as_bad(pcVar3);\n      }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"there are no unsigned pc-relative relocations",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"there are no unsigned pc-relative relocations",5)" identifier = (cast_expression "(char *)dcgettext(0,"there are no unsigned pc-relative relocations",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"there are no unsigned pc-relative relocations",5)" identifier (argument_list "(0,"there are no unsigned pc-relative relocations",5)" ( number_literal , (string_literal ""there are no unsigned pc-relative relocations"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar3);" (call_expression "as_bad(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) })) (if_statement "if (size == 2) {\n        return BFD_RELOC_16_PCREL;\n      }" if (parenthesized_expression "(size == 2)" ( (binary_expression "size == 2" identifier == number_literal) )) (compound_statement "{\n        return BFD_RELOC_16_PCREL;\n      }" { (return_statement "return BFD_RELOC_16_PCREL;" return identifier ;) })) (if_statement "if (size < 3) {\n        if (size == 1) {\n          return BFD_RELOC_8_PCREL;\n        }\n      }\n      else {\n        if (size == 4) {\n          return BFD_RELOC_32_PCREL;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64_PCREL;\n        }\n      }" if (parenthesized_expression "(size < 3)" ( (binary_expression "size < 3" identifier < number_literal) )) (compound_statement "{\n        if (size == 1) {\n          return BFD_RELOC_8_PCREL;\n        }\n      }" { (if_statement "if (size == 1) {\n          return BFD_RELOC_8_PCREL;\n        }" if (parenthesized_expression "(size == 1)" ( (binary_expression "size == 1" identifier == number_literal) )) (compound_statement "{\n          return BFD_RELOC_8_PCREL;\n        }" { (return_statement "return BFD_RELOC_8_PCREL;" return identifier ;) })) }) (else_clause "else {\n        if (size == 4) {\n          return BFD_RELOC_32_PCREL;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64_PCREL;\n        }\n      }" else (compound_statement "{\n        if (size == 4) {\n          return BFD_RELOC_32_PCREL;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64_PCREL;\n        }\n      }" { (if_statement "if (size == 4) {\n          return BFD_RELOC_32_PCREL;\n        }" if (parenthesized_expression "(size == 4)" ( (binary_expression "size == 4" identifier == number_literal) )) (compound_statement "{\n          return BFD_RELOC_32_PCREL;\n        }" { (return_statement "return BFD_RELOC_32_PCREL;" return identifier ;) })) (if_statement "if (size == 8) {\n          return BFD_RELOC_64_PCREL;\n        }" if (parenthesized_expression "(size == 8)" ( (binary_expression "size == 8" identifier == number_literal) )) (compound_statement "{\n          return BFD_RELOC_64_PCREL;\n        }" { (return_statement "return BFD_RELOC_64_PCREL;" return identifier ;) })) }))) (expression_statement "pcVar3 = (char *)dcgettext(0,"cannot do %u byte pc-relative relocation",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"cannot do %u byte pc-relative relocation",5)" identifier = (cast_expression "(char *)dcgettext(0,"cannot do %u byte pc-relative relocation",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"cannot do %u byte pc-relative relocation",5)" identifier (argument_list "(0,"cannot do %u byte pc-relative relocation",5)" ( number_literal , (string_literal ""cannot do %u byte pc-relative relocation"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar3,size);" (call_expression "as_bad(pcVar3,size)" identifier (argument_list "(pcVar3,size)" ( identifier , identifier ))) ;) (return_statement "return BFD_RELOC_NONE;" return identifier ;) })) (if_statement "if (sign < 1) {\n      if (size == 2) {\n        return BFD_RELOC_16;\n      }\n      if (size < 3) {\n        if (size == 1) {\n          return BFD_RELOC_8;\n        }\n      }\n      else {\n        if (size == 4) {\n          return BFD_RELOC_32;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64;\n        }\n      }\n      pcVar3 = "unsigned";\n    }\n    else {\n      pcVar3 = "signed";\n      if (size == 4) {\n        return BFD_RELOC_X86_64_32S;\n      }\n    }" if (parenthesized_expression "(sign < 1)" ( (binary_expression "sign < 1" identifier < number_literal) )) (compound_statement "{\n      if (size == 2) {\n        return BFD_RELOC_16;\n      }\n      if (size < 3) {\n        if (size == 1) {\n          return BFD_RELOC_8;\n        }\n      }\n      else {\n        if (size == 4) {\n          return BFD_RELOC_32;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64;\n        }\n      }\n      pcVar3 = "unsigned";\n    }" { (if_statement "if (size == 2) {\n        return BFD_RELOC_16;\n      }" if (parenthesized_expression "(size == 2)" ( (binary_expression "size == 2" identifier == number_literal) )) (compound_statement "{\n        return BFD_RELOC_16;\n      }" { (return_statement "return BFD_RELOC_16;" return identifier ;) })) (if_statement "if (size < 3) {\n        if (size == 1) {\n          return BFD_RELOC_8;\n        }\n      }\n      else {\n        if (size == 4) {\n          return BFD_RELOC_32;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64;\n        }\n      }" if (parenthesized_expression "(size < 3)" ( (binary_expression "size < 3" identifier < number_literal) )) (compound_statement "{\n        if (size == 1) {\n          return BFD_RELOC_8;\n        }\n      }" { (if_statement "if (size == 1) {\n          return BFD_RELOC_8;\n        }" if (parenthesized_expression "(size == 1)" ( (binary_expression "size == 1" identifier == number_literal) )) (compound_statement "{\n          return BFD_RELOC_8;\n        }" { (return_statement "return BFD_RELOC_8;" return identifier ;) })) }) (else_clause "else {\n        if (size == 4) {\n          return BFD_RELOC_32;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64;\n        }\n      }" else (compound_statement "{\n        if (size == 4) {\n          return BFD_RELOC_32;\n        }\n        if (size == 8) {\n          return BFD_RELOC_64;\n        }\n      }" { (if_statement "if (size == 4) {\n          return BFD_RELOC_32;\n        }" if (parenthesized_expression "(size == 4)" ( (binary_expression "size == 4" identifier == number_literal) )) (compound_statement "{\n          return BFD_RELOC_32;\n        }" { (return_statement "return BFD_RELOC_32;" return identifier ;) })) (if_statement "if (size == 8) {\n          return BFD_RELOC_64;\n        }" if (parenthesized_expression "(size == 8)" ( (binary_expression "size == 8" identifier == number_literal) )) (compound_statement "{\n          return BFD_RELOC_64;\n        }" { (return_statement "return BFD_RELOC_64;" return identifier ;) })) }))) (expression_statement "pcVar3 = "unsigned";" (assignment_expression "pcVar3 = "unsigned"" identifier = (string_literal ""unsigned"" " string_content ")) ;) }) (else_clause "else {\n      pcVar3 = "signed";\n      if (size == 4) {\n        return BFD_RELOC_X86_64_32S;\n      }\n    }" else (compound_statement "{\n      pcVar3 = "signed";\n      if (size == 4) {\n        return BFD_RELOC_X86_64_32S;\n      }\n    }" { (expression_statement "pcVar3 = "signed";" (assignment_expression "pcVar3 = "signed"" identifier = (string_literal ""signed"" " string_content ")) ;) (if_statement "if (size == 4) {\n        return BFD_RELOC_X86_64_32S;\n      }" if (parenthesized_expression "(size == 4)" ( (binary_expression "size == 4" identifier == number_literal) )) (compound_statement "{\n        return BFD_RELOC_X86_64_32S;\n      }" { (return_statement "return BFD_RELOC_X86_64_32S;" return identifier ;) })) }))) (expression_statement "pcVar4 = "cannot do %s %u byte relocation";" (assignment_expression "pcVar4 = "cannot do %s %u byte relocation"" identifier = (string_literal ""cannot do %s %u byte relocation"" " string_content ")) ;) (goto_statement "goto LAB_0004581f;" goto statement_identifier ;) })) (if_statement "if (size == 8) {\n    switch(other) {\n    case BFD_RELOC_X86_64_GOT32:\n      return BFD_RELOC_X86_64_GOT64;\n    default:\n      if (other == BFD_RELOC_SIZE32) {\n        if (pcrel != 0) goto LAB_00045888;\n        other = BFD_RELOC_SIZE64;\n      }\n      break;\n    case BFD_RELOC_X86_64_GOTPCREL:\n      other = BFD_RELOC_X86_64_GOTPCREL64;\n      break;\n    case BFD_RELOC_X86_64_DTPOFF32:\n      other = BFD_RELOC_X86_64_DTPOFF64;\n      break;\n    case BFD_RELOC_X86_64_TPOFF32:\n      other = BFD_RELOC_X86_64_TPOFF64;\n      break;\n    case BFD_RELOC_X86_64_GOTPC32:\n      other = BFD_RELOC_X86_64_GOTPC64;\n      break;\n    case BFD_RELOC_X86_64_GOTPLT64:\n    case BFD_RELOC_X86_64_PLTOFF64:\n      goto _L1242;\n    }\n  }\n  else {\n    if ((other == BFD_RELOC_SIZE32) && (pcrel != 0)) {\nLAB_00045888:\n      pcVar3 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (size == 4) {\n      if (flag_code == CODE_64BIT) {\n        if (disallow_64bit_reloc != 0) {\n          sign = -1;\n        }\n      }\n      else {\n        sign = -1;\n      }\n    }\n  }" if (parenthesized_expression "(size == 8)" ( (binary_expression "size == 8" identifier == number_literal) )) (compound_statement "{\n    switch(other) {\n    case BFD_RELOC_X86_64_GOT32:\n      return BFD_RELOC_X86_64_GOT64;\n    default:\n      if (other == BFD_RELOC_SIZE32) {\n        if (pcrel != 0) goto LAB_00045888;\n        other = BFD_RELOC_SIZE64;\n      }\n      break;\n    case BFD_RELOC_X86_64_GOTPCREL:\n      other = BFD_RELOC_X86_64_GOTPCREL64;\n      break;\n    case BFD_RELOC_X86_64_DTPOFF32:\n      other = BFD_RELOC_X86_64_DTPOFF64;\n      break;\n    case BFD_RELOC_X86_64_TPOFF32:\n      other = BFD_RELOC_X86_64_TPOFF64;\n      break;\n    case BFD_RELOC_X86_64_GOTPC32:\n      other = BFD_RELOC_X86_64_GOTPC64;\n      break;\n    case BFD_RELOC_X86_64_GOTPLT64:\n    case BFD_RELOC_X86_64_PLTOFF64:\n      goto _L1242;\n    }\n  }" { (switch_statement "switch(other) {\n    case BFD_RELOC_X86_64_GOT32:\n      return BFD_RELOC_X86_64_GOT64;\n    default:\n      if (other == BFD_RELOC_SIZE32) {\n        if (pcrel != 0) goto LAB_00045888;\n        other = BFD_RELOC_SIZE64;\n      }\n      break;\n    case BFD_RELOC_X86_64_GOTPCREL:\n      other = BFD_RELOC_X86_64_GOTPCREL64;\n      break;\n    case BFD_RELOC_X86_64_DTPOFF32:\n      other = BFD_RELOC_X86_64_DTPOFF64;\n      break;\n    case BFD_RELOC_X86_64_TPOFF32:\n      other = BFD_RELOC_X86_64_TPOFF64;\n      break;\n    case BFD_RELOC_X86_64_GOTPC32:\n      other = BFD_RELOC_X86_64_GOTPC64;\n      break;\n    case BFD_RELOC_X86_64_GOTPLT64:\n    case BFD_RELOC_X86_64_PLTOFF64:\n      goto _L1242;\n    }" switch (parenthesized_expression "(other)" ( identifier )) (compound_statement "{\n    case BFD_RELOC_X86_64_GOT32:\n      return BFD_RELOC_X86_64_GOT64;\n    default:\n      if (other == BFD_RELOC_SIZE32) {\n        if (pcrel != 0) goto LAB_00045888;\n        other = BFD_RELOC_SIZE64;\n      }\n      break;\n    case BFD_RELOC_X86_64_GOTPCREL:\n      other = BFD_RELOC_X86_64_GOTPCREL64;\n      break;\n    case BFD_RELOC_X86_64_DTPOFF32:\n      other = BFD_RELOC_X86_64_DTPOFF64;\n      break;\n    case BFD_RELOC_X86_64_TPOFF32:\n      other = BFD_RELOC_X86_64_TPOFF64;\n      break;\n    case BFD_RELOC_X86_64_GOTPC32:\n      other = BFD_RELOC_X86_64_GOTPC64;\n      break;\n    case BFD_RELOC_X86_64_GOTPLT64:\n    case BFD_RELOC_X86_64_PLTOFF64:\n      goto _L1242;\n    }" { (case_statement "case BFD_RELOC_X86_64_GOT32:\n      return BFD_RELOC_X86_64_GOT64;" case identifier : (return_statement "return BFD_RELOC_X86_64_GOT64;" return identifier ;)) (case_statement "default:\n      if (other == BFD_RELOC_SIZE32) {\n        if (pcrel != 0) goto LAB_00045888;\n        other = BFD_RELOC_SIZE64;\n      }\n      break;" default : (if_statement "if (other == BFD_RELOC_SIZE32) {\n        if (pcrel != 0) goto LAB_00045888;\n        other = BFD_RELOC_SIZE64;\n      }" if (parenthesized_expression "(other == BFD_RELOC_SIZE32)" ( (binary_expression "other == BFD_RELOC_SIZE32" identifier == identifier) )) (compound_statement "{\n        if (pcrel != 0) goto LAB_00045888;\n        other = BFD_RELOC_SIZE64;\n      }" { (if_statement "if (pcrel != 0) goto LAB_00045888;" if (parenthesized_expression "(pcrel != 0)" ( (binary_expression "pcrel != 0" identifier != number_literal) )) (goto_statement "goto LAB_00045888;" goto statement_identifier ;)) (expression_statement "other = BFD_RELOC_SIZE64;" (assignment_expression "other = BFD_RELOC_SIZE64" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case BFD_RELOC_X86_64_GOTPCREL:\n      other = BFD_RELOC_X86_64_GOTPCREL64;\n      break;" case identifier : (expression_statement "other = BFD_RELOC_X86_64_GOTPCREL64;" (assignment_expression "other = BFD_RELOC_X86_64_GOTPCREL64" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case BFD_RELOC_X86_64_DTPOFF32:\n      other = BFD_RELOC_X86_64_DTPOFF64;\n      break;" case identifier : (expression_statement "other = BFD_RELOC_X86_64_DTPOFF64;" (assignment_expression "other = BFD_RELOC_X86_64_DTPOFF64" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case BFD_RELOC_X86_64_TPOFF32:\n      other = BFD_RELOC_X86_64_TPOFF64;\n      break;" case identifier : (expression_statement "other = BFD_RELOC_X86_64_TPOFF64;" (assignment_expression "other = BFD_RELOC_X86_64_TPOFF64" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case BFD_RELOC_X86_64_GOTPC32:\n      other = BFD_RELOC_X86_64_GOTPC64;\n      break;" case identifier : (expression_statement "other = BFD_RELOC_X86_64_GOTPC64;" (assignment_expression "other = BFD_RELOC_X86_64_GOTPC64" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case BFD_RELOC_X86_64_GOTPLT64:" case identifier :) (case_statement "case BFD_RELOC_X86_64_PLTOFF64:\n      goto _L1242;" case identifier : (goto_statement "goto _L1242;" goto statement_identifier ;)) })) }) (else_clause "else {\n    if ((other == BFD_RELOC_SIZE32) && (pcrel != 0)) {\nLAB_00045888:\n      pcVar3 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (size == 4) {\n      if (flag_code == CODE_64BIT) {\n        if (disallow_64bit_reloc != 0) {\n          sign = -1;\n        }\n      }\n      else {\n        sign = -1;\n      }\n    }\n  }" else (compound_statement "{\n    if ((other == BFD_RELOC_SIZE32) && (pcrel != 0)) {\nLAB_00045888:\n      pcVar3 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (size == 4) {\n      if (flag_code == CODE_64BIT) {\n        if (disallow_64bit_reloc != 0) {\n          sign = -1;\n        }\n      }\n      else {\n        sign = -1;\n      }\n    }\n  }" { (if_statement "if ((other == BFD_RELOC_SIZE32) && (pcrel != 0)) {\nLAB_00045888:\n      pcVar3 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }" if (parenthesized_expression "((other == BFD_RELOC_SIZE32) && (pcrel != 0))" ( (binary_expression "(other == BFD_RELOC_SIZE32) && (pcrel != 0)" (parenthesized_expression "(other == BFD_RELOC_SIZE32)" ( (binary_expression "other == BFD_RELOC_SIZE32" identifier == identifier) )) && (parenthesized_expression "(pcrel != 0)" ( (binary_expression "pcrel != 0" identifier != number_literal) ))) )) (compound_statement "{\nLAB_00045888:\n      pcVar3 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }" { (labeled_statement "LAB_00045888:\n      pcVar3 = "there are no pc-relative size relocations";" statement_identifier : (expression_statement "pcVar3 = "there are no pc-relative size relocations";" (assignment_expression "pcVar3 = "there are no pc-relative size relocations"" identifier = (string_literal ""there are no pc-relative size relocations"" " string_content ")) ;)) (goto_statement "goto LAB_0004572f;" goto statement_identifier ;) })) (if_statement "if (size == 4) {\n      if (flag_code == CODE_64BIT) {\n        if (disallow_64bit_reloc != 0) {\n          sign = -1;\n        }\n      }\n      else {\n        sign = -1;\n      }\n    }" if (parenthesized_expression "(size == 4)" ( (binary_expression "size == 4" identifier == number_literal) )) (compound_statement "{\n      if (flag_code == CODE_64BIT) {\n        if (disallow_64bit_reloc != 0) {\n          sign = -1;\n        }\n      }\n      else {\n        sign = -1;\n      }\n    }" { (if_statement "if (flag_code == CODE_64BIT) {\n        if (disallow_64bit_reloc != 0) {\n          sign = -1;\n        }\n      }\n      else {\n        sign = -1;\n      }" if (parenthesized_expression "(flag_code == CODE_64BIT)" ( (binary_expression "flag_code == CODE_64BIT" identifier == identifier) )) (compound_statement "{\n        if (disallow_64bit_reloc != 0) {\n          sign = -1;\n        }\n      }" { (if_statement "if (disallow_64bit_reloc != 0) {\n          sign = -1;\n        }" if (parenthesized_expression "(disallow_64bit_reloc != 0)" ( (binary_expression "disallow_64bit_reloc != 0" identifier != number_literal) )) (compound_statement "{\n          sign = -1;\n        }" { (expression_statement "sign = -1;" (assignment_expression "sign = -1" identifier = number_literal) ;) })) }) (else_clause "else {\n        sign = -1;\n      }" else (compound_statement "{\n        sign = -1;\n      }" { (expression_statement "sign = -1;" (assignment_expression "sign = -1" identifier = number_literal) ;) }))) })) }))) (expression_statement "iVar1 = bfd_reloc_type_lookup(stdoutput,other);" (assignment_expression "iVar1 = bfd_reloc_type_lookup(stdoutput,other)" identifier = (call_expression "bfd_reloc_type_lookup(stdoutput,other)" identifier (argument_list "(stdoutput,other)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n    pcVar3 = (char *)dcgettext(0,"unknown relocation (%u)",5);\n    as_bad(pcVar3,other);\n    return BFD_RELOC_NONE;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar3 = (char *)dcgettext(0,"unknown relocation (%u)",5);\n    as_bad(pcVar3,other);\n    return BFD_RELOC_NONE;\n  }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"unknown relocation (%u)",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"unknown relocation (%u)",5)" identifier = (cast_expression "(char *)dcgettext(0,"unknown relocation (%u)",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"unknown relocation (%u)",5)" identifier (argument_list "(0,"unknown relocation (%u)",5)" ( number_literal , (string_literal ""unknown relocation (%u)"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar3,other);" (call_expression "as_bad(pcVar3,other)" identifier (argument_list "(pcVar3,other)" ( identifier , identifier ))) ;) (return_statement "return BFD_RELOC_NONE;" return identifier ;) })) (expression_statement "uVar2 = bfd_get_reloc_size(iVar1);" (assignment_expression "uVar2 = bfd_get_reloc_size(iVar1)" identifier = (call_expression "bfd_get_reloc_size(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (if_statement "if (uVar2 != size) {\n    pcVar3 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    pcVar4 = (char *)dcgettext(0,pcVar4,5);\n    as_bad(pcVar4,pcVar3,size);\n    return BFD_RELOC_NONE;\n  }" if (parenthesized_expression "(uVar2 != size)" ( (binary_expression "uVar2 != size" identifier != identifier) )) (compound_statement "{\n    pcVar3 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    pcVar4 = (char *)dcgettext(0,pcVar4,5);\n    as_bad(pcVar4,pcVar3,size);\n    return BFD_RELOC_NONE;\n  }" { (expression_statement "pcVar3 = (char *)bfd_get_reloc_size(iVar1);" (assignment_expression "pcVar3 = (char *)bfd_get_reloc_size(iVar1)" identifier = (cast_expression "(char *)bfd_get_reloc_size(iVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_get_reloc_size(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))))) ;) (expression_statement "pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";" (assignment_expression "pcVar4 = "%u-byte relocation cannot be applied to %u-byte field"" identifier = (string_literal ""%u-byte relocation cannot be applied to %u-byte field"" " string_content ")) ;) (labeled_statement "LAB_0004581f:\n    pcVar4 = (char *)dcgettext(0,pcVar4,5);" statement_identifier : (expression_statement "pcVar4 = (char *)dcgettext(0,pcVar4,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,pcVar4,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar4,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar4,5)" identifier (argument_list "(0,pcVar4,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "as_bad(pcVar4,pcVar3,size);" (call_expression "as_bad(pcVar4,pcVar3,size)" identifier (argument_list "(pcVar4,pcVar3,size)" ( identifier , identifier , identifier ))) ;) (return_statement "return BFD_RELOC_NONE;" return identifier ;) })) (if_statement "if ((pcrel == 0) || (*(int *)(iVar1 + 0x10) != 0)) {\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (sign != 0) {\n        return other;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (sign < 1)) {\n_L1242:\n      return other;\n    }\n    pcVar3 = "relocated field and relocation type differ in signedness";\n  }\n  else {\n    pcVar3 = "non-pc-relative relocation for pc-relative field";\n  }" if (parenthesized_expression "((pcrel == 0) || (*(int *)(iVar1 + 0x10) != 0))" ( (binary_expression "(pcrel == 0) || (*(int *)(iVar1 + 0x10) != 0)" (parenthesized_expression "(pcrel == 0)" ( (binary_expression "pcrel == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(iVar1 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x10) != 0" (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (sign != 0) {\n        return other;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (sign < 1)) {\n_L1242:\n      return other;\n    }\n    pcVar3 = "relocated field and relocation type differ in signedness";\n  }" { (if_statement "if (*(int *)(iVar1 + 0x18) == 2) {\n      if (sign != 0) {\n        return other;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (sign < 1)) {\n_L1242:\n      return other;\n    }" if (parenthesized_expression "(*(int *)(iVar1 + 0x18) == 2)" ( (binary_expression "*(int *)(iVar1 + 0x18) == 2" (pointer_expression "*(int *)(iVar1 + 0x18)" * (cast_expression "(int *)(iVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (sign != 0) {\n        return other;\n      }\n    }" { (if_statement "if (sign != 0) {\n        return other;\n      }" if (parenthesized_expression "(sign != 0)" ( (binary_expression "sign != 0" identifier != number_literal) )) (compound_statement "{\n        return other;\n      }" { (return_statement "return other;" return identifier ;) })) }) (else_clause "else if ((*(int *)(iVar1 + 0x18) != 3) || (sign < 1)) {\n_L1242:\n      return other;\n    }" else (if_statement "if ((*(int *)(iVar1 + 0x18) != 3) || (sign < 1)) {\n_L1242:\n      return other;\n    }" if (parenthesized_expression "((*(int *)(iVar1 + 0x18) != 3) || (sign < 1))" ( (binary_expression "(*(int *)(iVar1 + 0x18) != 3) || (sign < 1)" (parenthesized_expression "(*(int *)(iVar1 + 0x18) != 3)" ( (binary_expression "*(int *)(iVar1 + 0x18) != 3" (pointer_expression "*(int *)(iVar1 + 0x18)" * (cast_expression "(int *)(iVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(sign < 1)" ( (binary_expression "sign < 1" identifier < number_literal) ))) )) (compound_statement "{\n_L1242:\n      return other;\n    }" { (labeled_statement "_L1242:\n      return other;" statement_identifier : (return_statement "return other;" return identifier ;)) })))) (expression_statement "pcVar3 = "relocated field and relocation type differ in signedness";" (assignment_expression "pcVar3 = "relocated field and relocation type differ in signedness"" identifier = (string_literal ""relocated field and relocation type differ in signedness"" " string_content ")) ;) }) (else_clause "else {\n    pcVar3 = "non-pc-relative relocation for pc-relative field";\n  }" else (compound_statement "{\n    pcVar3 = "non-pc-relative relocation for pc-relative field";\n  }" { (expression_statement "pcVar3 = "non-pc-relative relocation for pc-relative field";" (assignment_expression "pcVar3 = "non-pc-relative relocation for pc-relative field"" identifier = (string_literal ""non-pc-relative relocation for pc-relative field"" " string_content ")) ;) }))) (labeled_statement "LAB_0004572f:\n  pcVar3 = (char *)dcgettext(0,pcVar3,5);" statement_identifier : (expression_statement "pcVar3 = (char *)dcgettext(0,pcVar3,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,pcVar3,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar3,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "as_bad(pcVar3);" (call_expression "as_bad(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (return_statement "return BFD_RELOC_NONE;" return identifier ;) })))
(translation_unit "int __regparm3 FUN_00045690(uint param_1,int param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  if (param_4 == 0x47) {\n    if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }\n    if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }\n  if (param_1 == 8) {\n    switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }\n  }\n  else {\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }\n  iVar1 = bfd_reloc_type_lookup(DAT_00089944,param_4);\n  if (iVar1 == 0) {\n    uVar3 = dcgettext(0,"unknown relocation (%u)",5);\n    FUN_0002bd60(uVar3,param_4);\n    return 0x47;\n  }\n  uVar2 = bfd_get_reloc_size(iVar1);\n  if (uVar2 != param_1) {\n    pcVar5 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);\n    FUN_0002bd60(uVar3,pcVar5,param_1);\n    return 0x47;\n  }\n  if ((param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0)) {\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }\n    pcVar5 = "relocated field and relocation type differ in signedness";\n  }\n  else {\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }\nLAB_0004572f:\n  uVar3 = dcgettext(0,pcVar5,5);\n  FUN_0002bd60(uVar3);\n  return 0x47;\n}\n\n" (function_definition "int __regparm3 FUN_00045690(uint param_1,int param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  if (param_4 == 0x47) {\n    if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }\n    if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }\n  if (param_1 == 8) {\n    switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }\n  }\n  else {\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }\n  iVar1 = bfd_reloc_type_lookup(DAT_00089944,param_4);\n  if (iVar1 == 0) {\n    uVar3 = dcgettext(0,"unknown relocation (%u)",5);\n    FUN_0002bd60(uVar3,param_4);\n    return 0x47;\n  }\n  uVar2 = bfd_get_reloc_size(iVar1);\n  if (uVar2 != param_1) {\n    pcVar5 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);\n    FUN_0002bd60(uVar3,pcVar5,param_1);\n    return 0x47;\n  }\n  if ((param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0)) {\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }\n    pcVar5 = "relocated field and relocation type differ in signedness";\n  }\n  else {\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }\nLAB_0004572f:\n  uVar3 = dcgettext(0,pcVar5,5);\n  FUN_0002bd60(uVar3);\n  return 0x47;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00045690(uint param_1,int param_2,int param_3,int param_4)" identifier (parameter_list "(uint param_1,int param_2,int param_3,int param_4)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  if (param_4 == 0x47) {\n    if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }\n    if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }\n  if (param_1 == 8) {\n    switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }\n  }\n  else {\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }\n  iVar1 = bfd_reloc_type_lookup(DAT_00089944,param_4);\n  if (iVar1 == 0) {\n    uVar3 = dcgettext(0,"unknown relocation (%u)",5);\n    FUN_0002bd60(uVar3,param_4);\n    return 0x47;\n  }\n  uVar2 = bfd_get_reloc_size(iVar1);\n  if (uVar2 != param_1) {\n    pcVar5 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);\n    FUN_0002bd60(uVar3,pcVar5,param_1);\n    return 0x47;\n  }\n  if ((param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0)) {\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }\n    pcVar5 = "relocated field and relocation type differ in signedness";\n  }\n  else {\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }\nLAB_0004572f:\n  uVar3 = dcgettext(0,pcVar5,5);\n  FUN_0002bd60(uVar3);\n  return 0x47;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (if_statement "if (param_4 == 0x47) {\n    if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }\n    if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }" if (parenthesized_expression "(param_4 == 0x47)" ( (binary_expression "param_4 == 0x47" identifier == number_literal) )) (compound_statement "{\n    if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }\n    if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }" { (if_statement "if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }" { (if_statement "if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }" { (expression_statement "uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);" (assignment_expression "uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5)" identifier = (call_expression "dcgettext(0,"there are no unsigned pc-relative relocations",5)" identifier (argument_list "(0,"there are no unsigned pc-relative relocations",5)" ( number_literal , (string_literal ""there are no unsigned pc-relative relocations"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar3);" (call_expression "FUN_0002bd60(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) })) (if_statement "if (param_1 == 2) {\n        return 0xb;\n      }" if (parenthesized_expression "(param_1 == 2)" ( (binary_expression "param_1 == 2" identifier == number_literal) )) (compound_statement "{\n        return 0xb;\n      }" { (return_statement "return 0xb;" return number_literal ;) })) (if_statement "if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }" if (parenthesized_expression "(param_1 < 3)" ( (binary_expression "param_1 < 3" identifier < number_literal) )) (compound_statement "{\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }" { (if_statement "if (param_1 == 1) {\n          return 0xd;\n        }" if (parenthesized_expression "(param_1 == 1)" ( (binary_expression "param_1 == 1" identifier == number_literal) )) (compound_statement "{\n          return 0xd;\n        }" { (return_statement "return 0xd;" return number_literal ;) })) }) (else_clause "else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }" else (compound_statement "{\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }" { (if_statement "if (param_1 == 4) {\n          return 9;\n        }" if (parenthesized_expression "(param_1 == 4)" ( (binary_expression "param_1 == 4" identifier == number_literal) )) (compound_statement "{\n          return 9;\n        }" { (return_statement "return 9;" return number_literal ;) })) (if_statement "if (param_1 == 8) {\n          return 8;\n        }" if (parenthesized_expression "(param_1 == 8)" ( (binary_expression "param_1 == 8" identifier == number_literal) )) (compound_statement "{\n          return 8;\n        }" { (return_statement "return 8;" return number_literal ;) })) }))) (expression_statement "uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);" (assignment_expression "uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5)" identifier = (call_expression "dcgettext(0,"cannot do %u byte pc-relative relocation",5)" identifier (argument_list "(0,"cannot do %u byte pc-relative relocation",5)" ( number_literal , (string_literal ""cannot do %u byte pc-relative relocation"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar3,param_1);" (call_expression "FUN_0002bd60(uVar3,param_1)" identifier (argument_list "(uVar3,param_1)" ( identifier , identifier ))) ;) (return_statement "return 0x47;" return number_literal ;) })) (if_statement "if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }" { (if_statement "if (param_1 == 2) {\n        return 5;\n      }" if (parenthesized_expression "(param_1 == 2)" ( (binary_expression "param_1 == 2" identifier == number_literal) )) (compound_statement "{\n        return 5;\n      }" { (return_statement "return 5;" return number_literal ;) })) (if_statement "if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }" if (parenthesized_expression "(param_1 < 3)" ( (binary_expression "param_1 < 3" identifier < number_literal) )) (compound_statement "{\n        if (param_1 == 1) {\n          return 7;\n        }\n      }" { (if_statement "if (param_1 == 1) {\n          return 7;\n        }" if (parenthesized_expression "(param_1 == 1)" ( (binary_expression "param_1 == 1" identifier == number_literal) )) (compound_statement "{\n          return 7;\n        }" { (return_statement "return 7;" return number_literal ;) })) }) (else_clause "else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }" else (compound_statement "{\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }" { (if_statement "if (param_1 == 4) {\n          return 2;\n        }" if (parenthesized_expression "(param_1 == 4)" ( (binary_expression "param_1 == 4" identifier == number_literal) )) (compound_statement "{\n          return 2;\n        }" { (return_statement "return 2;" return number_literal ;) })) (if_statement "if (param_1 == 8) {\n          return 1;\n        }" if (parenthesized_expression "(param_1 == 8)" ( (binary_expression "param_1 == 8" identifier == number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) }))) (expression_statement "pcVar5 = "unsigned";" (assignment_expression "pcVar5 = "unsigned"" identifier = (string_literal ""unsigned"" " string_content ")) ;) }) (else_clause "else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }" else (compound_statement "{\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }" { (expression_statement "pcVar5 = "signed";" (assignment_expression "pcVar5 = "signed"" identifier = (string_literal ""signed"" " string_content ")) ;) (if_statement "if (param_1 == 4) {\n        return 0x184;\n      }" if (parenthesized_expression "(param_1 == 4)" ( (binary_expression "param_1 == 4" identifier == number_literal) )) (compound_statement "{\n        return 0x184;\n      }" { (return_statement "return 0x184;" return number_literal ;) })) }))) (expression_statement "pcVar4 = "cannot do %s %u byte relocation";" (assignment_expression "pcVar4 = "cannot do %s %u byte relocation"" identifier = (string_literal ""cannot do %s %u byte relocation"" " string_content ")) ;) (goto_statement "goto LAB_0004581f;" goto statement_identifier ;) })) (if_statement "if (param_1 == 8) {\n    switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }\n  }\n  else {\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }" if (parenthesized_expression "(param_1 == 8)" ( (binary_expression "param_1 == 8" identifier == number_literal) )) (compound_statement "{\n    switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }\n  }" { (switch_statement "switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }" switch (parenthesized_expression "(param_4)" ( identifier )) (compound_statement "{\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }" { (case_statement "case 0x17d:\n      return 399;" case number_literal : (return_statement "return 399;" return number_literal ;)) (case_statement "default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;" default : (if_statement "if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }" if (parenthesized_expression "(param_4 == 0x24)" ( (binary_expression "param_4 == 0x24" identifier == number_literal) )) (compound_statement "{\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }" { (if_statement "if (param_2 != 0) goto LAB_00045888;" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00045888;" goto statement_identifier ;)) (expression_statement "param_4 = 0x25;" (assignment_expression "param_4 = 0x25" identifier = number_literal) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x183:\n      param_4 = 400;\n      break;" case number_literal : (expression_statement "param_4 = 400;" (assignment_expression "param_4 = 400" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x18a:\n      param_4 = 0x186;\n      break;" case number_literal : (expression_statement "param_4 = 0x186;" (assignment_expression "param_4 = 0x186" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x18c:\n      param_4 = 0x187;\n      break;" case number_literal : (expression_statement "param_4 = 0x187;" (assignment_expression "param_4 = 0x187" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x18e:\n      param_4 = 0x191;\n      break;" case number_literal : (expression_statement "param_4 = 0x191;" (assignment_expression "param_4 = 0x191" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x192:" case number_literal :) (case_statement "case 0x193:\n      goto LAB_00045774;" case number_literal : (goto_statement "goto LAB_00045774;" goto statement_identifier ;)) })) }) (else_clause "else {\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }" else (compound_statement "{\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }" { (if_statement "if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }" if (parenthesized_expression "((param_4 == 0x24) && (param_2 != 0))" ( (binary_expression "(param_4 == 0x24) && (param_2 != 0)" (parenthesized_expression "(param_4 == 0x24)" ( (binary_expression "param_4 == 0x24" identifier == number_literal) )) && (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) ))) )) (compound_statement "{\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }" { (labeled_statement "LAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";" statement_identifier : (expression_statement "pcVar5 = "there are no pc-relative size relocations";" (assignment_expression "pcVar5 = "there are no pc-relative size relocations"" identifier = (string_literal ""there are no pc-relative size relocations"" " string_content ")) ;)) (goto_statement "goto LAB_0004572f;" goto statement_identifier ;) })) (if_statement "if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }" if (parenthesized_expression "(param_1 == 4)" ( (binary_expression "param_1 == 4" identifier == number_literal) )) (compound_statement "{\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }" { (if_statement "if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }" if (parenthesized_expression "(DAT_00088f0c == 2)" ( (binary_expression "DAT_00088f0c == 2" identifier == number_literal) )) (compound_statement "{\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }" { (if_statement "if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }" if (parenthesized_expression "(DAT_00088f04 != 0)" ( (binary_expression "DAT_00088f04 != 0" identifier != number_literal) )) (compound_statement "{\n          param_3 = -1;\n        }" { (expression_statement "param_3 = -1;" (assignment_expression "param_3 = -1" identifier = number_literal) ;) })) }) (else_clause "else {\n        param_3 = -1;\n      }" else (compound_statement "{\n        param_3 = -1;\n      }" { (expression_statement "param_3 = -1;" (assignment_expression "param_3 = -1" identifier = number_literal) ;) }))) })) }))) (expression_statement "iVar1 = bfd_reloc_type_lookup(DAT_00089944,param_4);" (assignment_expression "iVar1 = bfd_reloc_type_lookup(DAT_00089944,param_4)" identifier = (call_expression "bfd_reloc_type_lookup(DAT_00089944,param_4)" identifier (argument_list "(DAT_00089944,param_4)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n    uVar3 = dcgettext(0,"unknown relocation (%u)",5);\n    FUN_0002bd60(uVar3,param_4);\n    return 0x47;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar3 = dcgettext(0,"unknown relocation (%u)",5);\n    FUN_0002bd60(uVar3,param_4);\n    return 0x47;\n  }" { (expression_statement "uVar3 = dcgettext(0,"unknown relocation (%u)",5);" (assignment_expression "uVar3 = dcgettext(0,"unknown relocation (%u)",5)" identifier = (call_expression "dcgettext(0,"unknown relocation (%u)",5)" identifier (argument_list "(0,"unknown relocation (%u)",5)" ( number_literal , (string_literal ""unknown relocation (%u)"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar3,param_4);" (call_expression "FUN_0002bd60(uVar3,param_4)" identifier (argument_list "(uVar3,param_4)" ( identifier , identifier ))) ;) (return_statement "return 0x47;" return number_literal ;) })) (expression_statement "uVar2 = bfd_get_reloc_size(iVar1);" (assignment_expression "uVar2 = bfd_get_reloc_size(iVar1)" identifier = (call_expression "bfd_get_reloc_size(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (if_statement "if (uVar2 != param_1) {\n    pcVar5 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);\n    FUN_0002bd60(uVar3,pcVar5,param_1);\n    return 0x47;\n  }" if (parenthesized_expression "(uVar2 != param_1)" ( (binary_expression "uVar2 != param_1" identifier != identifier) )) (compound_statement "{\n    pcVar5 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);\n    FUN_0002bd60(uVar3,pcVar5,param_1);\n    return 0x47;\n  }" { (expression_statement "pcVar5 = (char *)bfd_get_reloc_size(iVar1);" (assignment_expression "pcVar5 = (char *)bfd_get_reloc_size(iVar1)" identifier = (cast_expression "(char *)bfd_get_reloc_size(iVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_get_reloc_size(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))))) ;) (expression_statement "pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";" (assignment_expression "pcVar4 = "%u-byte relocation cannot be applied to %u-byte field"" identifier = (string_literal ""%u-byte relocation cannot be applied to %u-byte field"" " string_content ")) ;) (labeled_statement "LAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);" statement_identifier : (expression_statement "uVar3 = dcgettext(0,pcVar4,5);" (assignment_expression "uVar3 = dcgettext(0,pcVar4,5)" identifier = (call_expression "dcgettext(0,pcVar4,5)" identifier (argument_list "(0,pcVar4,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002bd60(uVar3,pcVar5,param_1);" (call_expression "FUN_0002bd60(uVar3,pcVar5,param_1)" identifier (argument_list "(uVar3,pcVar5,param_1)" ( identifier , identifier , identifier ))) ;) (return_statement "return 0x47;" return number_literal ;) })) (if_statement "if ((param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0)) {\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }\n    pcVar5 = "relocated field and relocation type differ in signedness";\n  }\n  else {\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }" if (parenthesized_expression "((param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0))" ( (binary_expression "(param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(iVar1 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x10) != 0" (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }\n    pcVar5 = "relocated field and relocation type differ in signedness";\n  }" { (if_statement "if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }" if (parenthesized_expression "(*(int *)(iVar1 + 0x18) == 2)" ( (binary_expression "*(int *)(iVar1 + 0x18) == 2" (pointer_expression "*(int *)(iVar1 + 0x18)" * (cast_expression "(int *)(iVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }" { (if_statement "if (param_3 != 0) {\n        return param_4;\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        return param_4;\n      }" { (return_statement "return param_4;" return identifier ;) })) }) (else_clause "else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }" else (if_statement "if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }" if (parenthesized_expression "((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1))" ( (binary_expression "(*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)" (parenthesized_expression "(*(int *)(iVar1 + 0x18) != 3)" ( (binary_expression "*(int *)(iVar1 + 0x18) != 3" (pointer_expression "*(int *)(iVar1 + 0x18)" * (cast_expression "(int *)(iVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) ))) )) (compound_statement "{\nLAB_00045774:\n      return param_4;\n    }" { (labeled_statement "LAB_00045774:\n      return param_4;" statement_identifier : (return_statement "return param_4;" return identifier ;)) })))) (expression_statement "pcVar5 = "relocated field and relocation type differ in signedness";" (assignment_expression "pcVar5 = "relocated field and relocation type differ in signedness"" identifier = (string_literal ""relocated field and relocation type differ in signedness"" " string_content ")) ;) }) (else_clause "else {\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }" else (compound_statement "{\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }" { (expression_statement "pcVar5 = "non-pc-relative relocation for pc-relative field";" (assignment_expression "pcVar5 = "non-pc-relative relocation for pc-relative field"" identifier = (string_literal ""non-pc-relative relocation for pc-relative field"" " string_content ")) ;) }))) (labeled_statement "LAB_0004572f:\n  uVar3 = dcgettext(0,pcVar5,5);" statement_identifier : (expression_statement "uVar3 = dcgettext(0,pcVar5,5);" (assignment_expression "uVar3 = dcgettext(0,pcVar5,5)" identifier = (call_expression "dcgettext(0,pcVar5,5)" identifier (argument_list "(0,pcVar5,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002bd60(uVar3);" (call_expression "FUN_0002bd60(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (return_statement "return 0x47;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }))) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }))) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (return_statement return LIT ;)) (case_statement default : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (return_statement return IDENT ;)) })))) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "int __regparm3 FUN_00045690(uint param_1,int param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  if (param_4 == 0x47) {\n    if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }\n    if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }\n  if (param_1 == 8) {\n    switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }\n  }\n  else {\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }\n  iVar1 = bfd_reloc_type_lookup(DAT_00089944,param_4);\n  if (iVar1 == 0) {\n    uVar3 = dcgettext(0,"unknown relocation (%u)",5);\n    FUN_0002bd60(uVar3,param_4);\n    return 0x47;\n  }\n  uVar2 = bfd_get_reloc_size(iVar1);\n  if (uVar2 != param_1) {\n    pcVar5 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);\n    FUN_0002bd60(uVar3,pcVar5,param_1);\n    return 0x47;\n  }\n  if ((param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0)) {\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }\n    pcVar5 = "relocated field and relocation type differ in signedness";\n  }\n  else {\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }\nLAB_0004572f:\n  uVar3 = dcgettext(0,pcVar5,5);\n  FUN_0002bd60(uVar3);\n  return 0x47;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00045690(uint param_1,int param_2,int param_3,int param_4)" (identifier "FUN_00045690") (parameter_list "(uint param_1,int param_2,int param_3,int param_4)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  if (param_4 == 0x47) {\n    if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }\n    if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }\n  if (param_1 == 8) {\n    switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }\n  }\n  else {\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }\n  iVar1 = bfd_reloc_type_lookup(DAT_00089944,param_4);\n  if (iVar1 == 0) {\n    uVar3 = dcgettext(0,"unknown relocation (%u)",5);\n    FUN_0002bd60(uVar3,param_4);\n    return 0x47;\n  }\n  uVar2 = bfd_get_reloc_size(iVar1);\n  if (uVar2 != param_1) {\n    pcVar5 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);\n    FUN_0002bd60(uVar3,pcVar5,param_1);\n    return 0x47;\n  }\n  if ((param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0)) {\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }\n    pcVar5 = "relocated field and relocation type differ in signedness";\n  }\n  else {\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }\nLAB_0004572f:\n  uVar3 = dcgettext(0,pcVar5,5);\n  FUN_0002bd60(uVar3);\n  return 0x47;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (if_statement "if (param_4 == 0x47) {\n    if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }\n    if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }" (if "if") (parenthesized_expression "(param_4 == 0x47)" (( "(") (binary_expression "param_4 == 0x47" (identifier "param_4") (== "==") (number_literal "0x47")) () ")")) (compound_statement "{\n    if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }\n    if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }\n    pcVar4 = "cannot do %s %u byte relocation";\n    goto LAB_0004581f;\n  }" ({ "{") (if_statement "if (param_2 != 0) {\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }\n      if (param_1 == 2) {\n        return 0xb;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }\n      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);\n      FUN_0002bd60(uVar3,param_1);\n      return 0x47;\n    }" ({ "{") (if_statement "if (param_3 == 0) {\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);\n        FUN_0002bd60(uVar3);\n      }" ({ "{") (expression_statement "uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);" (assignment_expression "uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"there are no unsigned pc-relative relocations",5)" (identifier "dcgettext") (argument_list "(0,"there are no unsigned pc-relative relocations",5)" (( "(") (number_literal "0") (, ",") (string_literal ""there are no unsigned pc-relative relocations"" (" """) (string_content "there are no unsigned pc-relative relocations") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar3);" (call_expression "FUN_0002bd60(uVar3)" (identifier "FUN_0002bd60") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1 == 2) {\n        return 0xb;\n      }" (if "if") (parenthesized_expression "(param_1 == 2)" (( "(") (binary_expression "param_1 == 2" (identifier "param_1") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        return 0xb;\n      }" ({ "{") (return_statement "return 0xb;" (return "return") (number_literal "0xb") (; ";")) (} "}"))) (if_statement "if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }" (if "if") (parenthesized_expression "(param_1 < 3)" (( "(") (binary_expression "param_1 < 3" (identifier "param_1") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n        if (param_1 == 1) {\n          return 0xd;\n        }\n      }" ({ "{") (if_statement "if (param_1 == 1) {\n          return 0xd;\n        }" (if "if") (parenthesized_expression "(param_1 == 1)" (( "(") (binary_expression "param_1 == 1" (identifier "param_1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          return 0xd;\n        }" ({ "{") (return_statement "return 0xd;" (return "return") (number_literal "0xd") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }" (else "else") (compound_statement "{\n        if (param_1 == 4) {\n          return 9;\n        }\n        if (param_1 == 8) {\n          return 8;\n        }\n      }" ({ "{") (if_statement "if (param_1 == 4) {\n          return 9;\n        }" (if "if") (parenthesized_expression "(param_1 == 4)" (( "(") (binary_expression "param_1 == 4" (identifier "param_1") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n          return 9;\n        }" ({ "{") (return_statement "return 9;" (return "return") (number_literal "9") (; ";")) (} "}"))) (if_statement "if (param_1 == 8) {\n          return 8;\n        }" (if "if") (parenthesized_expression "(param_1 == 8)" (( "(") (binary_expression "param_1 == 8" (identifier "param_1") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n          return 8;\n        }" ({ "{") (return_statement "return 8;" (return "return") (number_literal "8") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);" (assignment_expression "uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"cannot do %u byte pc-relative relocation",5)" (identifier "dcgettext") (argument_list "(0,"cannot do %u byte pc-relative relocation",5)" (( "(") (number_literal "0") (, ",") (string_literal ""cannot do %u byte pc-relative relocation"" (" """) (string_content "cannot do %u byte pc-relative relocation") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar3,param_1);" (call_expression "FUN_0002bd60(uVar3,param_1)" (identifier "FUN_0002bd60") (argument_list "(uVar3,param_1)" (( "(") (identifier "uVar3") (, ",") (identifier "param_1") () ")"))) (; ";")) (return_statement "return 0x47;" (return "return") (number_literal "0x47") (; ";")) (} "}"))) (if_statement "if (param_3 < 1) {\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }\n    else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }" (if "if") (parenthesized_expression "(param_3 < 1)" (( "(") (binary_expression "param_3 < 1" (identifier "param_3") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      if (param_1 == 2) {\n        return 5;\n      }\n      if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }\n      pcVar5 = "unsigned";\n    }" ({ "{") (if_statement "if (param_1 == 2) {\n        return 5;\n      }" (if "if") (parenthesized_expression "(param_1 == 2)" (( "(") (binary_expression "param_1 == 2" (identifier "param_1") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        return 5;\n      }" ({ "{") (return_statement "return 5;" (return "return") (number_literal "5") (; ";")) (} "}"))) (if_statement "if (param_1 < 3) {\n        if (param_1 == 1) {\n          return 7;\n        }\n      }\n      else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }" (if "if") (parenthesized_expression "(param_1 < 3)" (( "(") (binary_expression "param_1 < 3" (identifier "param_1") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n        if (param_1 == 1) {\n          return 7;\n        }\n      }" ({ "{") (if_statement "if (param_1 == 1) {\n          return 7;\n        }" (if "if") (parenthesized_expression "(param_1 == 1)" (( "(") (binary_expression "param_1 == 1" (identifier "param_1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          return 7;\n        }" ({ "{") (return_statement "return 7;" (return "return") (number_literal "7") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }" (else "else") (compound_statement "{\n        if (param_1 == 4) {\n          return 2;\n        }\n        if (param_1 == 8) {\n          return 1;\n        }\n      }" ({ "{") (if_statement "if (param_1 == 4) {\n          return 2;\n        }" (if "if") (parenthesized_expression "(param_1 == 4)" (( "(") (binary_expression "param_1 == 4" (identifier "param_1") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n          return 2;\n        }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (if_statement "if (param_1 == 8) {\n          return 1;\n        }" (if "if") (parenthesized_expression "(param_1 == 8)" (( "(") (binary_expression "param_1 == 8" (identifier "param_1") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n          return 1;\n        }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar5 = "unsigned";" (assignment_expression "pcVar5 = "unsigned"" (identifier "pcVar5") (= "=") (string_literal ""unsigned"" (" """) (string_content "unsigned") (" """))) (; ";")) (} "}")) (else_clause "else {\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }" (else "else") (compound_statement "{\n      pcVar5 = "signed";\n      if (param_1 == 4) {\n        return 0x184;\n      }\n    }" ({ "{") (expression_statement "pcVar5 = "signed";" (assignment_expression "pcVar5 = "signed"" (identifier "pcVar5") (= "=") (string_literal ""signed"" (" """) (string_content "signed") (" """))) (; ";")) (if_statement "if (param_1 == 4) {\n        return 0x184;\n      }" (if "if") (parenthesized_expression "(param_1 == 4)" (( "(") (binary_expression "param_1 == 4" (identifier "param_1") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n        return 0x184;\n      }" ({ "{") (return_statement "return 0x184;" (return "return") (number_literal "0x184") (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar4 = "cannot do %s %u byte relocation";" (assignment_expression "pcVar4 = "cannot do %s %u byte relocation"" (identifier "pcVar4") (= "=") (string_literal ""cannot do %s %u byte relocation"" (" """) (string_content "cannot do %s %u byte relocation") (" """))) (; ";")) (goto_statement "goto LAB_0004581f;" (goto "goto") (statement_identifier "LAB_0004581f") (; ";")) (} "}"))) (if_statement "if (param_1 == 8) {\n    switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }\n  }\n  else {\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(param_1 == 8)" (( "(") (binary_expression "param_1 == 8" (identifier "param_1") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n    switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }\n  }" ({ "{") (switch_statement "switch(param_4) {\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }" (switch "switch") (parenthesized_expression "(param_4)" (( "(") (identifier "param_4") () ")")) (compound_statement "{\n    case 0x17d:\n      return 399;\n    default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;\n    case 0x183:\n      param_4 = 400;\n      break;\n    case 0x18a:\n      param_4 = 0x186;\n      break;\n    case 0x18c:\n      param_4 = 0x187;\n      break;\n    case 0x18e:\n      param_4 = 0x191;\n      break;\n    case 0x192:\n    case 0x193:\n      goto LAB_00045774;\n    }" ({ "{") (case_statement "case 0x17d:\n      return 399;" (case "case") (number_literal "0x17d") (: ":") (return_statement "return 399;" (return "return") (number_literal "399") (; ";"))) (case_statement "default:\n      if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }\n      break;" (default "default") (: ":") (if_statement "if (param_4 == 0x24) {\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }" (if "if") (parenthesized_expression "(param_4 == 0x24)" (( "(") (binary_expression "param_4 == 0x24" (identifier "param_4") (== "==") (number_literal "0x24")) () ")")) (compound_statement "{\n        if (param_2 != 0) goto LAB_00045888;\n        param_4 = 0x25;\n      }" ({ "{") (if_statement "if (param_2 != 0) goto LAB_00045888;" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00045888;" (goto "goto") (statement_identifier "LAB_00045888") (; ";"))) (expression_statement "param_4 = 0x25;" (assignment_expression "param_4 = 0x25" (identifier "param_4") (= "=") (number_literal "0x25")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x183:\n      param_4 = 400;\n      break;" (case "case") (number_literal "0x183") (: ":") (expression_statement "param_4 = 400;" (assignment_expression "param_4 = 400" (identifier "param_4") (= "=") (number_literal "400")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x18a:\n      param_4 = 0x186;\n      break;" (case "case") (number_literal "0x18a") (: ":") (expression_statement "param_4 = 0x186;" (assignment_expression "param_4 = 0x186" (identifier "param_4") (= "=") (number_literal "0x186")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x18c:\n      param_4 = 0x187;\n      break;" (case "case") (number_literal "0x18c") (: ":") (expression_statement "param_4 = 0x187;" (assignment_expression "param_4 = 0x187" (identifier "param_4") (= "=") (number_literal "0x187")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x18e:\n      param_4 = 0x191;\n      break;" (case "case") (number_literal "0x18e") (: ":") (expression_statement "param_4 = 0x191;" (assignment_expression "param_4 = 0x191" (identifier "param_4") (= "=") (number_literal "0x191")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x192:" (case "case") (number_literal "0x192") (: ":")) (case_statement "case 0x193:\n      goto LAB_00045774;" (case "case") (number_literal "0x193") (: ":") (goto_statement "goto LAB_00045774;" (goto "goto") (statement_identifier "LAB_00045774") (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }\n    if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }\n  }" ({ "{") (if_statement "if ((param_4 == 0x24) && (param_2 != 0)) {\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }" (if "if") (parenthesized_expression "((param_4 == 0x24) && (param_2 != 0))" (( "(") (binary_expression "(param_4 == 0x24) && (param_2 != 0)" (parenthesized_expression "(param_4 == 0x24)" (( "(") (binary_expression "param_4 == 0x24" (identifier "param_4") (== "==") (number_literal "0x24")) () ")")) (&& "&&") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";\n      goto LAB_0004572f;\n    }" ({ "{") (labeled_statement "LAB_00045888:\n      pcVar5 = "there are no pc-relative size relocations";" (statement_identifier "LAB_00045888") (: ":") (expression_statement "pcVar5 = "there are no pc-relative size relocations";" (assignment_expression "pcVar5 = "there are no pc-relative size relocations"" (identifier "pcVar5") (= "=") (string_literal ""there are no pc-relative size relocations"" (" """) (string_content "there are no pc-relative size relocations") (" """))) (; ";"))) (goto_statement "goto LAB_0004572f;" (goto "goto") (statement_identifier "LAB_0004572f") (; ";")) (} "}"))) (if_statement "if (param_1 == 4) {\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }" (if "if") (parenthesized_expression "(param_1 == 4)" (( "(") (binary_expression "param_1 == 4" (identifier "param_1") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n      if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }\n    }" ({ "{") (if_statement "if (DAT_00088f0c == 2) {\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }\n      else {\n        param_3 = -1;\n      }" (if "if") (parenthesized_expression "(DAT_00088f0c == 2)" (( "(") (binary_expression "DAT_00088f0c == 2" (identifier "DAT_00088f0c") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }\n      }" ({ "{") (if_statement "if (DAT_00088f04 != 0) {\n          param_3 = -1;\n        }" (if "if") (parenthesized_expression "(DAT_00088f04 != 0)" (( "(") (binary_expression "DAT_00088f04 != 0" (identifier "DAT_00088f04") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          param_3 = -1;\n        }" ({ "{") (expression_statement "param_3 = -1;" (assignment_expression "param_3 = -1" (identifier "param_3") (= "=") (number_literal "-1")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        param_3 = -1;\n      }" (else "else") (compound_statement "{\n        param_3 = -1;\n      }" ({ "{") (expression_statement "param_3 = -1;" (assignment_expression "param_3 = -1" (identifier "param_3") (= "=") (number_literal "-1")) (; ";")) (} "}")))) (} "}"))) (} "}")))) (expression_statement "iVar1 = bfd_reloc_type_lookup(DAT_00089944,param_4);" (assignment_expression "iVar1 = bfd_reloc_type_lookup(DAT_00089944,param_4)" (identifier "iVar1") (= "=") (call_expression "bfd_reloc_type_lookup(DAT_00089944,param_4)" (identifier "bfd_reloc_type_lookup") (argument_list "(DAT_00089944,param_4)" (( "(") (identifier "DAT_00089944") (, ",") (identifier "param_4") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    uVar3 = dcgettext(0,"unknown relocation (%u)",5);\n    FUN_0002bd60(uVar3,param_4);\n    return 0x47;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = dcgettext(0,"unknown relocation (%u)",5);\n    FUN_0002bd60(uVar3,param_4);\n    return 0x47;\n  }" ({ "{") (expression_statement "uVar3 = dcgettext(0,"unknown relocation (%u)",5);" (assignment_expression "uVar3 = dcgettext(0,"unknown relocation (%u)",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"unknown relocation (%u)",5)" (identifier "dcgettext") (argument_list "(0,"unknown relocation (%u)",5)" (( "(") (number_literal "0") (, ",") (string_literal ""unknown relocation (%u)"" (" """) (string_content "unknown relocation (%u)") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar3,param_4);" (call_expression "FUN_0002bd60(uVar3,param_4)" (identifier "FUN_0002bd60") (argument_list "(uVar3,param_4)" (( "(") (identifier "uVar3") (, ",") (identifier "param_4") () ")"))) (; ";")) (return_statement "return 0x47;" (return "return") (number_literal "0x47") (; ";")) (} "}"))) (expression_statement "uVar2 = bfd_get_reloc_size(iVar1);" (assignment_expression "uVar2 = bfd_get_reloc_size(iVar1)" (identifier "uVar2") (= "=") (call_expression "bfd_get_reloc_size(iVar1)" (identifier "bfd_get_reloc_size") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (if_statement "if (uVar2 != param_1) {\n    pcVar5 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);\n    FUN_0002bd60(uVar3,pcVar5,param_1);\n    return 0x47;\n  }" (if "if") (parenthesized_expression "(uVar2 != param_1)" (( "(") (binary_expression "uVar2 != param_1" (identifier "uVar2") (!= "!=") (identifier "param_1")) () ")")) (compound_statement "{\n    pcVar5 = (char *)bfd_get_reloc_size(iVar1);\n    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";\nLAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);\n    FUN_0002bd60(uVar3,pcVar5,param_1);\n    return 0x47;\n  }" ({ "{") (expression_statement "pcVar5 = (char *)bfd_get_reloc_size(iVar1);" (assignment_expression "pcVar5 = (char *)bfd_get_reloc_size(iVar1)" (identifier "pcVar5") (= "=") (cast_expression "(char *)bfd_get_reloc_size(iVar1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "bfd_get_reloc_size(iVar1)" (identifier "bfd_get_reloc_size") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")"))))) (; ";")) (expression_statement "pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";" (assignment_expression "pcVar4 = "%u-byte relocation cannot be applied to %u-byte field"" (identifier "pcVar4") (= "=") (string_literal ""%u-byte relocation cannot be applied to %u-byte field"" (" """) (string_content "%u-byte relocation cannot be applied to %u-byte field") (" """))) (; ";")) (labeled_statement "LAB_0004581f:\n    uVar3 = dcgettext(0,pcVar4,5);" (statement_identifier "LAB_0004581f") (: ":") (expression_statement "uVar3 = dcgettext(0,pcVar4,5);" (assignment_expression "uVar3 = dcgettext(0,pcVar4,5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,pcVar4,5)" (identifier "dcgettext") (argument_list "(0,pcVar4,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar4") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002bd60(uVar3,pcVar5,param_1);" (call_expression "FUN_0002bd60(uVar3,pcVar5,param_1)" (identifier "FUN_0002bd60") (argument_list "(uVar3,pcVar5,param_1)" (( "(") (identifier "uVar3") (, ",") (identifier "pcVar5") (, ",") (identifier "param_1") () ")"))) (; ";")) (return_statement "return 0x47;" (return "return") (number_literal "0x47") (; ";")) (} "}"))) (if_statement "if ((param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0)) {\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }\n    pcVar5 = "relocated field and relocation type differ in signedness";\n  }\n  else {\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }" (if "if") (parenthesized_expression "((param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0))" (( "(") (binary_expression "(param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0)" (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar1 + 0x10) != 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x10) != 0" (pointer_expression "*(int *)(iVar1 + 0x10)" (* "*") (cast_expression "(int *)(iVar1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x10)" (( "(") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }\n    pcVar5 = "relocated field and relocation type differ in signedness";\n  }" ({ "{") (if_statement "if (*(int *)(iVar1 + 0x18) == 2) {\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }\n    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x18) == 2)" (( "(") (binary_expression "*(int *)(iVar1 + 0x18) == 2" (pointer_expression "*(int *)(iVar1 + 0x18)" (* "*") (cast_expression "(int *)(iVar1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x18)" (( "(") (binary_expression "iVar1 + 0x18" (identifier "iVar1") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      if (param_3 != 0) {\n        return param_4;\n      }\n    }" ({ "{") (if_statement "if (param_3 != 0) {\n        return param_4;\n      }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return param_4;\n      }" ({ "{") (return_statement "return param_4;" (return "return") (identifier "param_4") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }" (else "else") (if_statement "if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {\nLAB_00045774:\n      return param_4;\n    }" (if "if") (parenthesized_expression "((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1))" (( "(") (binary_expression "(*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)" (parenthesized_expression "(*(int *)(iVar1 + 0x18) != 3)" (( "(") (binary_expression "*(int *)(iVar1 + 0x18) != 3" (pointer_expression "*(int *)(iVar1 + 0x18)" (* "*") (cast_expression "(int *)(iVar1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x18)" (( "(") (binary_expression "iVar1 + 0x18" (identifier "iVar1") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "3")) () ")")) (|| "||") (parenthesized_expression "(param_3 < 1)" (( "(") (binary_expression "param_3 < 1" (identifier "param_3") (< "<") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\nLAB_00045774:\n      return param_4;\n    }" ({ "{") (labeled_statement "LAB_00045774:\n      return param_4;" (statement_identifier "LAB_00045774") (: ":") (return_statement "return param_4;" (return "return") (identifier "param_4") (; ";"))) (} "}"))))) (expression_statement "pcVar5 = "relocated field and relocation type differ in signedness";" (assignment_expression "pcVar5 = "relocated field and relocation type differ in signedness"" (identifier "pcVar5") (= "=") (string_literal ""relocated field and relocation type differ in signedness"" (" """) (string_content "relocated field and relocation type differ in signedness") (" """))) (; ";")) (} "}")) (else_clause "else {\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }" (else "else") (compound_statement "{\n    pcVar5 = "non-pc-relative relocation for pc-relative field";\n  }" ({ "{") (expression_statement "pcVar5 = "non-pc-relative relocation for pc-relative field";" (assignment_expression "pcVar5 = "non-pc-relative relocation for pc-relative field"" (identifier "pcVar5") (= "=") (string_literal ""non-pc-relative relocation for pc-relative field"" (" """) (string_content "non-pc-relative relocation for pc-relative field") (" """))) (; ";")) (} "}")))) (labeled_statement "LAB_0004572f:\n  uVar3 = dcgettext(0,pcVar5,5);" (statement_identifier "LAB_0004572f") (: ":") (expression_statement "uVar3 = dcgettext(0,pcVar5,5);" (assignment_expression "uVar3 = dcgettext(0,pcVar5,5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,pcVar5,5)" (identifier "dcgettext") (argument_list "(0,pcVar5,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar5") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002bd60(uVar3);" (call_expression "FUN_0002bd60(uVar3)" (identifier "FUN_0002bd60") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (return_statement "return 0x47;" (return "return") (number_literal "0x47") (; ";")) (} "}")))

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

type_1 __regparm3
function_1(type_2 var_7,int var_3,int var_4,type_1 var_1)

{
  int var_13;
  type_2 var_15;
  char *pcVar3;
  char *pcVar4;
  
  if (var_1 == var_2) {
    if (var_3 != 0) {
      if (var_4 == 0) {
        pcVar3 = (char *)var_5(0,"there are no unsigned pc-relative relocations",5);
        var_6(pcVar3);
      }
      if (var_7 == 2) {
        return BFD_RELOC_16_PCREL;
      }
      if (var_7 < 3) {
        if (var_7 == 1) {
          return BFD_RELOC_8_PCREL;
        }
      }
      else {
        if (var_7 == 4) {
          return BFD_RELOC_32_PCREL;
        }
        if (var_7 == 8) {
          return BFD_RELOC_64_PCREL;
        }
      }
      pcVar3 = (char *)var_5(0,"cannot do %u byte pc-relative relocation",5);
      var_6(pcVar3,var_7);
      return var_2;
    }
    if (var_4 < 1) {
      if (var_7 == 2) {
        return BFD_RELOC_16;
      }
      if (var_7 < 3) {
        if (var_7 == 1) {
          return BFD_RELOC_8;
        }
      }
      else {
        if (var_7 == 4) {
          return BFD_RELOC_32;
        }
        if (var_7 == 8) {
          return BFD_RELOC_64;
        }
      }
      pcVar3 = "unsigned";
    }
    else {
      pcVar3 = "signed";
      if (var_7 == 4) {
        return BFD_RELOC_X86_64_32S;
      }
    }
    pcVar4 = "cannot do %s %u byte relocation";
    goto LAB_0004581f;
  }
  if (var_7 == 8) {
    switch(var_1) {
    case BFD_RELOC_X86_64_GOT32:
      return BFD_RELOC_X86_64_GOT64;
    default:
      if (var_1 == var_8) {
        if (var_3 != 0) goto LAB_00045888;
        var_1 = BFD_RELOC_SIZE64;
      }
      break;
    case BFD_RELOC_X86_64_GOTPCREL:
      var_1 = BFD_RELOC_X86_64_GOTPCREL64;
      break;
    case BFD_RELOC_X86_64_DTPOFF32:
      var_1 = BFD_RELOC_X86_64_DTPOFF64;
      break;
    case BFD_RELOC_X86_64_TPOFF32:
      var_1 = BFD_RELOC_X86_64_TPOFF64;
      break;
    case BFD_RELOC_X86_64_GOTPC32:
      var_1 = BFD_RELOC_X86_64_GOTPC64;
      break;
    case BFD_RELOC_X86_64_GOTPLT64:
    case BFD_RELOC_X86_64_PLTOFF64:
      goto _L1242;
    }
  }
  else {
    if ((var_1 == var_8) && (var_3 != 0)) {
LAB_00045888:
      pcVar3 = "there are no pc-relative size relocations";
      goto LAB_0004572f;
    }
    if (var_7 == 4) {
      if (var_9 == var_10) {
        if (var_11 != 0) {
          var_4 = -1;
        }
      }
      else {
        var_4 = -1;
      }
    }
  }
  var_13 = var_12(stdoutput,var_1);
  if (var_13 == 0) {
    pcVar3 = (char *)var_5(0,"unknown relocation (%u)",5);
    var_6(pcVar3,var_1);
    return var_2;
  }
  var_15 = var_14(var_13);
  if (var_15 != var_7) {
    pcVar3 = (char *)var_14(var_13);
    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";
LAB_0004581f:
    pcVar4 = (char *)var_5(0,pcVar4,5);
    var_6(pcVar4,pcVar3,var_7);
    return var_2;
  }
  if ((var_3 == 0) || (*(int *)(var_13 + 0x10) != 0)) {
    if (*(int *)(var_13 + 0x18) == 2) {
      if (var_4 != 0) {
        return var_1;
      }
    }
    else if ((*(int *)(var_13 + 0x18) != 3) || (var_4 < 1)) {
_L1242:
      return var_1;
    }
    pcVar3 = "relocated field and relocation type differ in signedness";
  }
  else {
    pcVar3 = "non-pc-relative relocation for pc-relative field";
  }
LAB_0004572f:
  pcVar3 = (char *)var_5(0,pcVar3,5);
  var_6(pcVar3);
  return var_2;
}


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

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

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

{
  int iVar1;
  uint uVar2;
  undefined4 uVar3;
  char *pcVar4;
  char *pcVar5;
  
  if (param_4 == 0x47) {
    if (param_2 != 0) {
      if (param_3 == 0) {
        uVar3 = dcgettext(0,"there are no unsigned pc-relative relocations",5);
        FUN_0002bd60(uVar3);
      }
      if (param_1 == 2) {
        return 0xb;
      }
      if (param_1 < 3) {
        if (param_1 == 1) {
          return 0xd;
        }
      }
      else {
        if (param_1 == 4) {
          return 9;
        }
        if (param_1 == 8) {
          return 8;
        }
      }
      uVar3 = dcgettext(0,"cannot do %u byte pc-relative relocation",5);
      FUN_0002bd60(uVar3,param_1);
      return 0x47;
    }
    if (param_3 < 1) {
      if (param_1 == 2) {
        return 5;
      }
      if (param_1 < 3) {
        if (param_1 == 1) {
          return 7;
        }
      }
      else {
        if (param_1 == 4) {
          return 2;
        }
        if (param_1 == 8) {
          return 1;
        }
      }
      pcVar5 = "unsigned";
    }
    else {
      pcVar5 = "signed";
      if (param_1 == 4) {
        return 0x184;
      }
    }
    pcVar4 = "cannot do %s %u byte relocation";
    goto LAB_0004581f;
  }
  if (param_1 == 8) {
    switch(param_4) {
    case 0x17d:
      return 399;
    default:
      if (param_4 == 0x24) {
        if (param_2 != 0) goto LAB_00045888;
        param_4 = 0x25;
      }
      break;
    case 0x183:
      param_4 = 400;
      break;
    case 0x18a:
      param_4 = 0x186;
      break;
    case 0x18c:
      param_4 = 0x187;
      break;
    case 0x18e:
      param_4 = 0x191;
      break;
    case 0x192:
    case 0x193:
      goto LAB_00045774;
    }
  }
  else {
    if ((param_4 == 0x24) && (param_2 != 0)) {
LAB_00045888:
      pcVar5 = "there are no pc-relative size relocations";
      goto LAB_0004572f;
    }
    if (param_1 == 4) {
      if (DAT_00088f0c == 2) {
        if (DAT_00088f04 != 0) {
          param_3 = -1;
        }
      }
      else {
        param_3 = -1;
      }
    }
  }
  iVar1 = bfd_reloc_type_lookup(DAT_00089944,param_4);
  if (iVar1 == 0) {
    uVar3 = dcgettext(0,"unknown relocation (%u)",5);
    FUN_0002bd60(uVar3,param_4);
    return 0x47;
  }
  uVar2 = bfd_get_reloc_size(iVar1);
  if (uVar2 != param_1) {
    pcVar5 = (char *)bfd_get_reloc_size(iVar1);
    pcVar4 = "%u-byte relocation cannot be applied to %u-byte field";
LAB_0004581f:
    uVar3 = dcgettext(0,pcVar4,5);
    FUN_0002bd60(uVar3,pcVar5,param_1);
    return 0x47;
  }
  if ((param_2 == 0) || (*(int *)(iVar1 + 0x10) != 0)) {
    if (*(int *)(iVar1 + 0x18) == 2) {
      if (param_3 != 0) {
        return param_4;
      }
    }
    else if ((*(int *)(iVar1 + 0x18) != 3) || (param_3 < 1)) {
LAB_00045774:
      return param_4;
    }
    pcVar5 = "relocated field and relocation type differ in signedness";
  }
  else {
    pcVar5 = "non-pc-relative relocation for pc-relative field";
  }
LAB_0004572f:
  uVar3 = dcgettext(0,pcVar5,5);
  FUN_0002bd60(uVar3);
  return 0x47;
}

