
void emit_expr_fix(expressionS *exp,uint nbytes,fragS *frag,char *p,bfd_reloc_code_real_type r)

{
  undefined8 uVar1;
  uint size;
  long lVar2;
  char *pcVar3;
  int iVar4;
  ulong __n;
  
  __n = (ulong)nbytes;
  memset(p,0,__n);
  if (r == BFD_RELOC_NONE) {
    switch(__n) {
    default:
      pcVar3 = (char *)dcgettext(0,"unsupported BFD relocation size %u",5);
      as_bad(pcVar3,__n);
      return;
    case 1:
      iVar4 = 0;
      size = 1;
      r = BFD_RELOC_8;
      break;
    case 2:
      iVar4 = 0;
      size = 2;
      r = BFD_RELOC_16;
      break;
    case 3:
      iVar4 = 0;
      size = 3;
      r = BFD_RELOC_24;
      break;
    case 4:
      iVar4 = 0;
      size = 4;
      r = BFD_RELOC_32;
      break;
    case 8:
      iVar4 = 0;
      size = 8;
      r = BFD_RELOC_64;
    }
  }
  else {
    lVar2 = bfd_reloc_type_lookup(stdoutput);
    size = bfd_get_reloc_size(lVar2);
    if (nbytes < size) {
      uVar1 = *(undefined8 *)(lVar2 + 0x28);
      pcVar3 = (char *)dcngettext(0,"%s relocations do not fit in %u byte",
                                  "%s relocations do not fit in %u bytes",__n,5);
      as_bad(pcVar3,uVar1,__n);
      return;
    }
    iVar4 = 0;
    if (target_big_endian != 0) {
      iVar4 = nbytes - size;
    }
  }
  fix_new_exp(frag,iVar4 + ((int)p - ((int)frag + 100)),size,exp,0,r);
  return;
}



void FUN_00123b40(undefined8 param_1,uint param_2,undefined8 param_3,void *param_4,int param_5)

{
  uint uVar1;
  long lVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  int iVar5;
  ulong __n;
  
  __n = (ulong)param_2;
  memset(param_4,0,__n);
  if (param_5 == 0x47) {
    switch(__n) {
    default:
      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);
      FUN_0011f6d0(uVar3,__n);
      return;
    case 1:
      iVar5 = 0;
      uVar1 = 1;
      param_5 = 7;
      break;
    case 2:
      iVar5 = 0;
      uVar1 = 2;
      param_5 = 5;
      break;
    case 3:
      iVar5 = 0;
      uVar1 = 3;
      param_5 = 4;
      break;
    case 4:
      iVar5 = 0;
      uVar1 = 4;
      param_5 = 2;
      break;
    case 8:
      iVar5 = 0;
      uVar1 = 8;
      param_5 = 1;
    }
  }
  else {
    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);
    uVar1 = bfd_get_reloc_size(lVar2);
    if (param_2 < uVar1) {
      uVar3 = *(undefined8 *)(lVar2 + 0x28);
      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",
                         "%s relocations do not fit in %u bytes",__n,5);
      FUN_0011f6d0(uVar4,uVar3,__n);
      return;
    }
    iVar5 = 0;
    if (DAT_0019d218 != 0) {
      iVar5 = param_2 - uVar1;
    }
  }
  FUN_00130ce0(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5);
  return;
}


PUSH R15
MOV R15D,ESI
XOR ESI,ESI
PUSH R14
MOV R14,R15
PUSH R13
MOV R13,RDI
MOV RDI,RCX
PUSH R12
MOV R12,RDX
MOV RDX,R15
PUSH RBP
MOV EBP,R8D
PUSH RBX
MOV RBX,RCX
SUB RSP,0x18
CALL 0x0010a2c0
CMP EBP,0x47
JNZ 0x00123b90
CMP R15D,0x8
JA 0x00123c58
LEA RDX,[0x142aac]
MOVSXD RAX,dword ptr [RDX + R15*0x4]
ADD RAX,RDX
JMP RAX
MOV RDI,qword ptr [0x0019d970]
MOV ESI,EBP
CALL 0x0010a210
MOV RDI,RAX
MOV qword ptr [RSP + 0x8],RAX
CALL 0x0010a200
MOV RDX,qword ptr [RSP + 0x8]
CMP R15D,EAX
JC 0x00123c90
MOV EDX,EAX
MOV EAX,dword ptr [0x0019d218]
XOR ESI,ESI
TEST EAX,EAX
JZ 0x00123bcc
MOV ESI,R15D
SUB ESI,EDX
LEA RAX,[R12 + 0x64]
ADD RSP,0x18
MOV R9D,EBP
MOV RCX,R13
SUB RBX,RAX
MOV RDI,R12
XOR R8D,R8D
ADD ESI,EBX
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP 0x00130ce0
XOR ESI,ESI
MOV EDX,0x2
MOV EBP,0x5
JMP 0x00123bcc
XOR ESI,ESI
MOV EDX,0x8
MOV EBP,0x1
JMP 0x00123bcc
XOR ESI,ESI
MOV EDX,0x1
MOV EBP,0x7
JMP 0x00123bcc
XOR ESI,ESI
MOV EDX,0x4
MOV EBP,0x2
JMP 0x00123bcc
XOR ESI,ESI
MOV EDX,0x3
MOV EBP,0x4
JMP 0x00123bcc
LEA RSI,[0x141df8]
XOR EDI,EDI
MOV EDX,0x5
CALL 0x0010a1d0
ADD RSP,0x18
MOV ESI,R14D
POP RBX
MOV RDI,RAX
POP RBP
XOR EAX,EAX
POP R12
POP R13
POP R14
POP R15
JMP 0x0011f6d0
MOV RBX,qword ptr [RDX + 0x28]
MOV RCX,R15
LEA RDX,[0x141da8]
XOR EDI,EDI
LEA RSI,[0x141dd0]
MOV R8D,0x5
CALL 0x0010a6a0
ADD RSP,0x18
MOV EDX,R15D
MOV RSI,RBX
MOV RDI,RAX
POP RBX
XOR EAX,EAX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP 0x0011f6d0
(translation_unit "void FUN_00123b40(undefined8 param_1,uint param_2,undefined8 param_3,void *param_4,int param_5)\n\n{\n  uint uVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  int iVar5;\n  ulong __n;\n  \n  __n = (ulong)param_2;\n  memset(param_4,0,__n);\n  if (param_5 == 0x47) {\n    switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }\n  }\n  else {\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }\n  FUN_00130ce0(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5);\n  return;\n}\n\n" (function_definition "void FUN_00123b40(undefined8 param_1,uint param_2,undefined8 param_3,void *param_4,int param_5)\n\n{\n  uint uVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  int iVar5;\n  ulong __n;\n  \n  __n = (ulong)param_2;\n  memset(param_4,0,__n);\n  if (param_5 == 0x47) {\n    switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }\n  }\n  else {\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }\n  FUN_00130ce0(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5);\n  return;\n}" primitive_type (function_declarator "FUN_00123b40(undefined8 param_1,uint param_2,undefined8 param_3,void *param_4,int param_5)" identifier (parameter_list "(undefined8 param_1,uint param_2,undefined8 param_3,void *param_4,int param_5)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "void *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  int iVar5;\n  ulong __n;\n  \n  __n = (ulong)param_2;\n  memset(param_4,0,__n);\n  if (param_5 == 0x47) {\n    switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }\n  }\n  else {\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }\n  FUN_00130ce0(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "ulong __n;" type_identifier identifier ;) (expression_statement "__n = (ulong)param_2;" (assignment_expression "__n = (ulong)param_2" identifier = (cast_expression "(ulong)param_2" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "memset(param_4,0,__n);" (call_expression "memset(param_4,0,__n)" identifier (argument_list "(param_4,0,__n)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (param_5 == 0x47) {\n    switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }\n  }\n  else {\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }" if (parenthesized_expression "(param_5 == 0x47)" ( (binary_expression "param_5 == 0x47" identifier == number_literal) )) (compound_statement "{\n    switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }\n  }" { (switch_statement "switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }" switch (parenthesized_expression "(__n)" ( identifier )) (compound_statement "{\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }" { (case_statement "default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;" default : (expression_statement "uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);" (assignment_expression "uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5)" identifier = (call_expression "dcgettext(0,"unsupported BFD relocation size %u",5)" identifier (argument_list "(0,"unsupported BFD relocation size %u",5)" ( number_literal , (string_literal ""unsupported BFD relocation size %u"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011f6d0(uVar3,__n);" (call_expression "FUN_0011f6d0(uVar3,__n)" identifier (argument_list "(uVar3,__n)" ( identifier , identifier ))) ;) (return_statement "return;" return ;)) (case_statement "case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;" case number_literal : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" identifier = number_literal) ;) (expression_statement "param_5 = 7;" (assignment_expression "param_5 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;" case number_literal : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = 2;" (assignment_expression "uVar1 = 2" identifier = number_literal) ;) (expression_statement "param_5 = 5;" (assignment_expression "param_5 = 5" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;" case number_literal : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = 3;" (assignment_expression "uVar1 = 3" identifier = number_literal) ;) (expression_statement "param_5 = 4;" (assignment_expression "param_5 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;" case number_literal : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = 4;" (assignment_expression "uVar1 = 4" identifier = number_literal) ;) (expression_statement "param_5 = 2;" (assignment_expression "param_5 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;" case number_literal : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = 8;" (assignment_expression "uVar1 = 8" identifier = number_literal) ;) (expression_statement "param_5 = 1;" (assignment_expression "param_5 = 1" identifier = number_literal) ;)) })) }) (else_clause "else {\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }" else (compound_statement "{\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }" { (expression_statement "lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);" (assignment_expression "lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5)" identifier = (call_expression "bfd_reloc_type_lookup(DAT_0019d970,param_5)" identifier (argument_list "(DAT_0019d970,param_5)" ( identifier , identifier )))) ;) (expression_statement "uVar1 = bfd_get_reloc_size(lVar2);" (assignment_expression "uVar1 = bfd_get_reloc_size(lVar2)" identifier = (call_expression "bfd_get_reloc_size(lVar2)" identifier (argument_list "(lVar2)" ( identifier )))) ;) (if_statement "if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }" if (parenthesized_expression "(param_2 < uVar1)" ( (binary_expression "param_2 < uVar1" identifier < identifier) )) (compound_statement "{\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }" { (expression_statement "uVar3 = *(undefined8 *)(lVar2 + 0x28);" (assignment_expression "uVar3 = *(undefined8 *)(lVar2 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(lVar2 + 0x28)" * (cast_expression "(undefined8 *)(lVar2 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x28)" ( (binary_expression "lVar2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);" (assignment_expression "uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5)" identifier = (call_expression "dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5)" identifier (argument_list "(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5)" ( number_literal , (string_literal ""%s relocations do not fit in %u byte"" " string_content ") , (string_literal ""%s relocations do not fit in %u bytes"" " string_content ") , identifier , number_literal )))) ;) (expression_statement "FUN_0011f6d0(uVar4,uVar3,__n);" (call_expression "FUN_0011f6d0(uVar4,uVar3,__n)" identifier (argument_list "(uVar4,uVar3,__n)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (if_statement "if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }" if (parenthesized_expression "(DAT_0019d218 != 0)" ( (binary_expression "DAT_0019d218 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar5 = param_2 - uVar1;\n    }" { (expression_statement "iVar5 = param_2 - uVar1;" (assignment_expression "iVar5 = param_2 - uVar1" identifier = (binary_expression "param_2 - uVar1" identifier - identifier)) ;) })) }))) (expression_statement "FUN_00130ce0(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5);" (call_expression "FUN_00130ce0(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5)" identifier (argument_list "(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5)" ( identifier , (binary_expression "iVar5 + ((int)param_4 - ((int)param_3 + 100))" identifier + (parenthesized_expression "((int)param_4 - ((int)param_3 + 100))" ( (binary_expression "(int)param_4 - ((int)param_3 + 100)" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "((int)param_3 + 100)" ( (binary_expression "(int)param_3 + 100" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) , identifier , identifier , number_literal , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void emit_expr_fix(expressionS *exp,uint nbytes,fragS *frag,char *p,bfd_reloc_code_real_type r)\n\n{\n  undefined8 uVar1;\n  uint size;\n  long lVar2;\n  char *pcVar3;\n  int iVar4;\n  ulong __n;\n  \n  __n = (ulong)nbytes;\n  memset(p,0,__n);\n  if (r == BFD_RELOC_NONE) {\n    switch(__n) {\n    default:\n      pcVar3 = (char *)dcgettext(0,"unsupported BFD relocation size %u",5);\n      as_bad(pcVar3,__n);\n      return;\n    case 1:\n      iVar4 = 0;\n      size = 1;\n      r = BFD_RELOC_8;\n      break;\n    case 2:\n      iVar4 = 0;\n      size = 2;\n      r = BFD_RELOC_16;\n      break;\n    case 3:\n      iVar4 = 0;\n      size = 3;\n      r = BFD_RELOC_24;\n      break;\n    case 4:\n      iVar4 = 0;\n      size = 4;\n      r = BFD_RELOC_32;\n      break;\n    case 8:\n      iVar4 = 0;\n      size = 8;\n      r = BFD_RELOC_64;\n    }\n  }\n  else {\n    lVar2 = bfd_reloc_type_lookup(stdoutput);\n    size = bfd_get_reloc_size(lVar2);\n    if (nbytes < size) {\n      uVar1 = *(undefined8 *)(lVar2 + 0x28);\n      pcVar3 = (char *)dcngettext(0,"%s relocations do not fit in %u byte",\n                                  "%s relocations do not fit in %u bytes",__n,5);\n      as_bad(pcVar3,uVar1,__n);\n      return;\n    }\n    iVar4 = 0;\n    if (target_big_endian != 0) {\n      iVar4 = nbytes - size;\n    }\n  }\n  fix_new_exp(frag,iVar4 + ((int)p - ((int)frag + 100)),size,exp,0,r);\n  return;\n}\n\n" (function_definition "void emit_expr_fix(expressionS *exp,uint nbytes,fragS *frag,char *p,bfd_reloc_code_real_type r)\n\n{\n  undefined8 uVar1;\n  uint size;\n  long lVar2;\n  char *pcVar3;\n  int iVar4;\n  ulong __n;\n  \n  __n = (ulong)nbytes;\n  memset(p,0,__n);\n  if (r == BFD_RELOC_NONE) {\n    switch(__n) {\n    default:\n      pcVar3 = (char *)dcgettext(0,"unsupported BFD relocation size %u",5);\n      as_bad(pcVar3,__n);\n      return;\n    case 1:\n      iVar4 = 0;\n      size = 1;\n      r = BFD_RELOC_8;\n      break;\n    case 2:\n      iVar4 = 0;\n      size = 2;\n      r = BFD_RELOC_16;\n      break;\n    case 3:\n      iVar4 = 0;\n      size = 3;\n      r = BFD_RELOC_24;\n      break;\n    case 4:\n      iVar4 = 0;\n      size = 4;\n      r = BFD_RELOC_32;\n      break;\n    case 8:\n      iVar4 = 0;\n      size = 8;\n      r = BFD_RELOC_64;\n    }\n  }\n  else {\n    lVar2 = bfd_reloc_type_lookup(stdoutput);\n    size = bfd_get_reloc_size(lVar2);\n    if (nbytes < size) {\n      uVar1 = *(undefined8 *)(lVar2 + 0x28);\n      pcVar3 = (char *)dcngettext(0,"%s relocations do not fit in %u byte",\n                                  "%s relocations do not fit in %u bytes",__n,5);\n      as_bad(pcVar3,uVar1,__n);\n      return;\n    }\n    iVar4 = 0;\n    if (target_big_endian != 0) {\n      iVar4 = nbytes - size;\n    }\n  }\n  fix_new_exp(frag,iVar4 + ((int)p - ((int)frag + 100)),size,exp,0,r);\n  return;\n}" primitive_type (function_declarator "emit_expr_fix(expressionS *exp,uint nbytes,fragS *frag,char *p,bfd_reloc_code_real_type r)" identifier (parameter_list "(expressionS *exp,uint nbytes,fragS *frag,char *p,bfd_reloc_code_real_type r)" ( (parameter_declaration "expressionS *exp" type_identifier (pointer_declarator "*exp" * identifier)) , (parameter_declaration "uint nbytes" type_identifier identifier) , (parameter_declaration "fragS *frag" type_identifier (pointer_declarator "*frag" * identifier)) , (parameter_declaration "char *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "bfd_reloc_code_real_type r" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  uint size;\n  long lVar2;\n  char *pcVar3;\n  int iVar4;\n  ulong __n;\n  \n  __n = (ulong)nbytes;\n  memset(p,0,__n);\n  if (r == BFD_RELOC_NONE) {\n    switch(__n) {\n    default:\n      pcVar3 = (char *)dcgettext(0,"unsupported BFD relocation size %u",5);\n      as_bad(pcVar3,__n);\n      return;\n    case 1:\n      iVar4 = 0;\n      size = 1;\n      r = BFD_RELOC_8;\n      break;\n    case 2:\n      iVar4 = 0;\n      size = 2;\n      r = BFD_RELOC_16;\n      break;\n    case 3:\n      iVar4 = 0;\n      size = 3;\n      r = BFD_RELOC_24;\n      break;\n    case 4:\n      iVar4 = 0;\n      size = 4;\n      r = BFD_RELOC_32;\n      break;\n    case 8:\n      iVar4 = 0;\n      size = 8;\n      r = BFD_RELOC_64;\n    }\n  }\n  else {\n    lVar2 = bfd_reloc_type_lookup(stdoutput);\n    size = bfd_get_reloc_size(lVar2);\n    if (nbytes < size) {\n      uVar1 = *(undefined8 *)(lVar2 + 0x28);\n      pcVar3 = (char *)dcngettext(0,"%s relocations do not fit in %u byte",\n                                  "%s relocations do not fit in %u bytes",__n,5);\n      as_bad(pcVar3,uVar1,__n);\n      return;\n    }\n    iVar4 = 0;\n    if (target_big_endian != 0) {\n      iVar4 = nbytes - size;\n    }\n  }\n  fix_new_exp(frag,iVar4 + ((int)p - ((int)frag + 100)),size,exp,0,r);\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "uint size;" type_identifier identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "ulong __n;" type_identifier identifier ;) (expression_statement "__n = (ulong)nbytes;" (assignment_expression "__n = (ulong)nbytes" identifier = (cast_expression "(ulong)nbytes" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "memset(p,0,__n);" (call_expression "memset(p,0,__n)" identifier (argument_list "(p,0,__n)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (r == BFD_RELOC_NONE) {\n    switch(__n) {\n    default:\n      pcVar3 = (char *)dcgettext(0,"unsupported BFD relocation size %u",5);\n      as_bad(pcVar3,__n);\n      return;\n    case 1:\n      iVar4 = 0;\n      size = 1;\n      r = BFD_RELOC_8;\n      break;\n    case 2:\n      iVar4 = 0;\n      size = 2;\n      r = BFD_RELOC_16;\n      break;\n    case 3:\n      iVar4 = 0;\n      size = 3;\n      r = BFD_RELOC_24;\n      break;\n    case 4:\n      iVar4 = 0;\n      size = 4;\n      r = BFD_RELOC_32;\n      break;\n    case 8:\n      iVar4 = 0;\n      size = 8;\n      r = BFD_RELOC_64;\n    }\n  }\n  else {\n    lVar2 = bfd_reloc_type_lookup(stdoutput);\n    size = bfd_get_reloc_size(lVar2);\n    if (nbytes < size) {\n      uVar1 = *(undefined8 *)(lVar2 + 0x28);\n      pcVar3 = (char *)dcngettext(0,"%s relocations do not fit in %u byte",\n                                  "%s relocations do not fit in %u bytes",__n,5);\n      as_bad(pcVar3,uVar1,__n);\n      return;\n    }\n    iVar4 = 0;\n    if (target_big_endian != 0) {\n      iVar4 = nbytes - size;\n    }\n  }" if (parenthesized_expression "(r == BFD_RELOC_NONE)" ( (binary_expression "r == BFD_RELOC_NONE" identifier == identifier) )) (compound_statement "{\n    switch(__n) {\n    default:\n      pcVar3 = (char *)dcgettext(0,"unsupported BFD relocation size %u",5);\n      as_bad(pcVar3,__n);\n      return;\n    case 1:\n      iVar4 = 0;\n      size = 1;\n      r = BFD_RELOC_8;\n      break;\n    case 2:\n      iVar4 = 0;\n      size = 2;\n      r = BFD_RELOC_16;\n      break;\n    case 3:\n      iVar4 = 0;\n      size = 3;\n      r = BFD_RELOC_24;\n      break;\n    case 4:\n      iVar4 = 0;\n      size = 4;\n      r = BFD_RELOC_32;\n      break;\n    case 8:\n      iVar4 = 0;\n      size = 8;\n      r = BFD_RELOC_64;\n    }\n  }" { (switch_statement "switch(__n) {\n    default:\n      pcVar3 = (char *)dcgettext(0,"unsupported BFD relocation size %u",5);\n      as_bad(pcVar3,__n);\n      return;\n    case 1:\n      iVar4 = 0;\n      size = 1;\n      r = BFD_RELOC_8;\n      break;\n    case 2:\n      iVar4 = 0;\n      size = 2;\n      r = BFD_RELOC_16;\n      break;\n    case 3:\n      iVar4 = 0;\n      size = 3;\n      r = BFD_RELOC_24;\n      break;\n    case 4:\n      iVar4 = 0;\n      size = 4;\n      r = BFD_RELOC_32;\n      break;\n    case 8:\n      iVar4 = 0;\n      size = 8;\n      r = BFD_RELOC_64;\n    }" switch (parenthesized_expression "(__n)" ( identifier )) (compound_statement "{\n    default:\n      pcVar3 = (char *)dcgettext(0,"unsupported BFD relocation size %u",5);\n      as_bad(pcVar3,__n);\n      return;\n    case 1:\n      iVar4 = 0;\n      size = 1;\n      r = BFD_RELOC_8;\n      break;\n    case 2:\n      iVar4 = 0;\n      size = 2;\n      r = BFD_RELOC_16;\n      break;\n    case 3:\n      iVar4 = 0;\n      size = 3;\n      r = BFD_RELOC_24;\n      break;\n    case 4:\n      iVar4 = 0;\n      size = 4;\n      r = BFD_RELOC_32;\n      break;\n    case 8:\n      iVar4 = 0;\n      size = 8;\n      r = BFD_RELOC_64;\n    }" { (case_statement "default:\n      pcVar3 = (char *)dcgettext(0,"unsupported BFD relocation size %u",5);\n      as_bad(pcVar3,__n);\n      return;" default : (expression_statement "pcVar3 = (char *)dcgettext(0,"unsupported BFD relocation size %u",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"unsupported BFD relocation size %u",5)" identifier = (cast_expression "(char *)dcgettext(0,"unsupported BFD relocation size %u",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"unsupported BFD relocation size %u",5)" identifier (argument_list "(0,"unsupported BFD relocation size %u",5)" ( number_literal , (string_literal ""unsupported BFD relocation size %u"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar3,__n);" (call_expression "as_bad(pcVar3,__n)" identifier (argument_list "(pcVar3,__n)" ( identifier , identifier ))) ;) (return_statement "return;" return ;)) (case_statement "case 1:\n      iVar4 = 0;\n      size = 1;\n      r = BFD_RELOC_8;\n      break;" case number_literal : (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "size = 1;" (assignment_expression "size = 1" identifier = number_literal) ;) (expression_statement "r = BFD_RELOC_8;" (assignment_expression "r = BFD_RELOC_8" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n      iVar4 = 0;\n      size = 2;\n      r = BFD_RELOC_16;\n      break;" case number_literal : (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "size = 2;" (assignment_expression "size = 2" identifier = number_literal) ;) (expression_statement "r = BFD_RELOC_16;" (assignment_expression "r = BFD_RELOC_16" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n      iVar4 = 0;\n      size = 3;\n      r = BFD_RELOC_24;\n      break;" case number_literal : (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "size = 3;" (assignment_expression "size = 3" identifier = number_literal) ;) (expression_statement "r = BFD_RELOC_24;" (assignment_expression "r = BFD_RELOC_24" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n      iVar4 = 0;\n      size = 4;\n      r = BFD_RELOC_32;\n      break;" case number_literal : (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "size = 4;" (assignment_expression "size = 4" identifier = number_literal) ;) (expression_statement "r = BFD_RELOC_32;" (assignment_expression "r = BFD_RELOC_32" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n      iVar4 = 0;\n      size = 8;\n      r = BFD_RELOC_64;" case number_literal : (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "size = 8;" (assignment_expression "size = 8" identifier = number_literal) ;) (expression_statement "r = BFD_RELOC_64;" (assignment_expression "r = BFD_RELOC_64" identifier = identifier) ;)) })) }) (else_clause "else {\n    lVar2 = bfd_reloc_type_lookup(stdoutput);\n    size = bfd_get_reloc_size(lVar2);\n    if (nbytes < size) {\n      uVar1 = *(undefined8 *)(lVar2 + 0x28);\n      pcVar3 = (char *)dcngettext(0,"%s relocations do not fit in %u byte",\n                                  "%s relocations do not fit in %u bytes",__n,5);\n      as_bad(pcVar3,uVar1,__n);\n      return;\n    }\n    iVar4 = 0;\n    if (target_big_endian != 0) {\n      iVar4 = nbytes - size;\n    }\n  }" else (compound_statement "{\n    lVar2 = bfd_reloc_type_lookup(stdoutput);\n    size = bfd_get_reloc_size(lVar2);\n    if (nbytes < size) {\n      uVar1 = *(undefined8 *)(lVar2 + 0x28);\n      pcVar3 = (char *)dcngettext(0,"%s relocations do not fit in %u byte",\n                                  "%s relocations do not fit in %u bytes",__n,5);\n      as_bad(pcVar3,uVar1,__n);\n      return;\n    }\n    iVar4 = 0;\n    if (target_big_endian != 0) {\n      iVar4 = nbytes - size;\n    }\n  }" { (expression_statement "lVar2 = bfd_reloc_type_lookup(stdoutput);" (assignment_expression "lVar2 = bfd_reloc_type_lookup(stdoutput)" identifier = (call_expression "bfd_reloc_type_lookup(stdoutput)" identifier (argument_list "(stdoutput)" ( identifier )))) ;) (expression_statement "size = bfd_get_reloc_size(lVar2);" (assignment_expression "size = bfd_get_reloc_size(lVar2)" identifier = (call_expression "bfd_get_reloc_size(lVar2)" identifier (argument_list "(lVar2)" ( identifier )))) ;) (if_statement "if (nbytes < size) {\n      uVar1 = *(undefined8 *)(lVar2 + 0x28);\n      pcVar3 = (char *)dcngettext(0,"%s relocations do not fit in %u byte",\n                                  "%s relocations do not fit in %u bytes",__n,5);\n      as_bad(pcVar3,uVar1,__n);\n      return;\n    }" if (parenthesized_expression "(nbytes < size)" ( (binary_expression "nbytes < size" identifier < identifier) )) (compound_statement "{\n      uVar1 = *(undefined8 *)(lVar2 + 0x28);\n      pcVar3 = (char *)dcngettext(0,"%s relocations do not fit in %u byte",\n                                  "%s relocations do not fit in %u bytes",__n,5);\n      as_bad(pcVar3,uVar1,__n);\n      return;\n    }" { (expression_statement "uVar1 = *(undefined8 *)(lVar2 + 0x28);" (assignment_expression "uVar1 = *(undefined8 *)(lVar2 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(lVar2 + 0x28)" * (cast_expression "(undefined8 *)(lVar2 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x28)" ( (binary_expression "lVar2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "pcVar3 = (char *)dcngettext(0,"%s relocations do not fit in %u byte",\n                                  "%s relocations do not fit in %u bytes",__n,5);" (assignment_expression "pcVar3 = (char *)dcngettext(0,"%s relocations do not fit in %u byte",\n                                  "%s relocations do not fit in %u bytes",__n,5)" identifier = (cast_expression "(char *)dcngettext(0,"%s relocations do not fit in %u byte",\n                                  "%s relocations do not fit in %u bytes",__n,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcngettext(0,"%s relocations do not fit in %u byte",\n                                  "%s relocations do not fit in %u bytes",__n,5)" identifier (argument_list "(0,"%s relocations do not fit in %u byte",\n                                  "%s relocations do not fit in %u bytes",__n,5)" ( number_literal , (string_literal ""%s relocations do not fit in %u byte"" " string_content ") , (string_literal ""%s relocations do not fit in %u bytes"" " string_content ") , identifier , number_literal ))))) ;) (expression_statement "as_bad(pcVar3,uVar1,__n);" (call_expression "as_bad(pcVar3,uVar1,__n)" identifier (argument_list "(pcVar3,uVar1,__n)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (if_statement "if (target_big_endian != 0) {\n      iVar4 = nbytes - size;\n    }" if (parenthesized_expression "(target_big_endian != 0)" ( (binary_expression "target_big_endian != 0" identifier != number_literal) )) (compound_statement "{\n      iVar4 = nbytes - size;\n    }" { (expression_statement "iVar4 = nbytes - size;" (assignment_expression "iVar4 = nbytes - size" identifier = (binary_expression "nbytes - size" identifier - identifier)) ;) })) }))) (expression_statement "fix_new_exp(frag,iVar4 + ((int)p - ((int)frag + 100)),size,exp,0,r);" (call_expression "fix_new_exp(frag,iVar4 + ((int)p - ((int)frag + 100)),size,exp,0,r)" identifier (argument_list "(frag,iVar4 + ((int)p - ((int)frag + 100)),size,exp,0,r)" ( identifier , (binary_expression "iVar4 + ((int)p - ((int)frag + 100))" identifier + (parenthesized_expression "((int)p - ((int)frag + 100))" ( (binary_expression "(int)p - ((int)frag + 100)" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "((int)frag + 100)" ( (binary_expression "(int)frag + 100" (cast_expression "(int)frag" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) , identifier , identifier , number_literal , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00123b40(undefined8 param_1,uint param_2,undefined8 param_3,void *param_4,int param_5)\n\n{\n  uint uVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  int iVar5;\n  ulong __n;\n  \n  __n = (ulong)param_2;\n  memset(param_4,0,__n);\n  if (param_5 == 0x47) {\n    switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }\n  }\n  else {\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }\n  FUN_00130ce0(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5);\n  return;\n}\n\n" (function_definition "void FUN_00123b40(undefined8 param_1,uint param_2,undefined8 param_3,void *param_4,int param_5)\n\n{\n  uint uVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  int iVar5;\n  ulong __n;\n  \n  __n = (ulong)param_2;\n  memset(param_4,0,__n);\n  if (param_5 == 0x47) {\n    switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }\n  }\n  else {\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }\n  FUN_00130ce0(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5);\n  return;\n}" primitive_type (function_declarator "FUN_00123b40(undefined8 param_1,uint param_2,undefined8 param_3,void *param_4,int param_5)" identifier (parameter_list "(undefined8 param_1,uint param_2,undefined8 param_3,void *param_4,int param_5)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "void *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  int iVar5;\n  ulong __n;\n  \n  __n = (ulong)param_2;\n  memset(param_4,0,__n);\n  if (param_5 == 0x47) {\n    switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }\n  }\n  else {\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }\n  FUN_00130ce0(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "ulong __n;" type_identifier identifier ;) (expression_statement "__n = (ulong)param_2;" (assignment_expression "__n = (ulong)param_2" identifier = (cast_expression "(ulong)param_2" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "memset(param_4,0,__n);" (call_expression "memset(param_4,0,__n)" identifier (argument_list "(param_4,0,__n)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (param_5 == 0x47) {\n    switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }\n  }\n  else {\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }" if (parenthesized_expression "(param_5 == 0x47)" ( (binary_expression "param_5 == 0x47" identifier == number_literal) )) (compound_statement "{\n    switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }\n  }" { (switch_statement "switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }" switch (parenthesized_expression "(__n)" ( identifier )) (compound_statement "{\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }" { (case_statement "default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;" default : (expression_statement "uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);" (assignment_expression "uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5)" identifier = (call_expression "dcgettext(0,"unsupported BFD relocation size %u",5)" identifier (argument_list "(0,"unsupported BFD relocation size %u",5)" ( number_literal , (string_literal ""unsupported BFD relocation size %u"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011f6d0(uVar3,__n);" (call_expression "FUN_0011f6d0(uVar3,__n)" identifier (argument_list "(uVar3,__n)" ( identifier , identifier ))) ;) (return_statement "return;" return ;)) (case_statement "case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;" case number_literal : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" identifier = number_literal) ;) (expression_statement "param_5 = 7;" (assignment_expression "param_5 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;" case number_literal : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = 2;" (assignment_expression "uVar1 = 2" identifier = number_literal) ;) (expression_statement "param_5 = 5;" (assignment_expression "param_5 = 5" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;" case number_literal : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = 3;" (assignment_expression "uVar1 = 3" identifier = number_literal) ;) (expression_statement "param_5 = 4;" (assignment_expression "param_5 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;" case number_literal : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = 4;" (assignment_expression "uVar1 = 4" identifier = number_literal) ;) (expression_statement "param_5 = 2;" (assignment_expression "param_5 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;" case number_literal : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = 8;" (assignment_expression "uVar1 = 8" identifier = number_literal) ;) (expression_statement "param_5 = 1;" (assignment_expression "param_5 = 1" identifier = number_literal) ;)) })) }) (else_clause "else {\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }" else (compound_statement "{\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }" { (expression_statement "lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);" (assignment_expression "lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5)" identifier = (call_expression "bfd_reloc_type_lookup(DAT_0019d970,param_5)" identifier (argument_list "(DAT_0019d970,param_5)" ( identifier , identifier )))) ;) (expression_statement "uVar1 = bfd_get_reloc_size(lVar2);" (assignment_expression "uVar1 = bfd_get_reloc_size(lVar2)" identifier = (call_expression "bfd_get_reloc_size(lVar2)" identifier (argument_list "(lVar2)" ( identifier )))) ;) (if_statement "if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }" if (parenthesized_expression "(param_2 < uVar1)" ( (binary_expression "param_2 < uVar1" identifier < identifier) )) (compound_statement "{\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }" { (expression_statement "uVar3 = *(undefined8 *)(lVar2 + 0x28);" (assignment_expression "uVar3 = *(undefined8 *)(lVar2 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(lVar2 + 0x28)" * (cast_expression "(undefined8 *)(lVar2 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x28)" ( (binary_expression "lVar2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);" (assignment_expression "uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5)" identifier = (call_expression "dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5)" identifier (argument_list "(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5)" ( number_literal , (string_literal ""%s relocations do not fit in %u byte"" " string_content ") , (string_literal ""%s relocations do not fit in %u bytes"" " string_content ") , identifier , number_literal )))) ;) (expression_statement "FUN_0011f6d0(uVar4,uVar3,__n);" (call_expression "FUN_0011f6d0(uVar4,uVar3,__n)" identifier (argument_list "(uVar4,uVar3,__n)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (if_statement "if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }" if (parenthesized_expression "(DAT_0019d218 != 0)" ( (binary_expression "DAT_0019d218 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar5 = param_2 - uVar1;\n    }" { (expression_statement "iVar5 = param_2 - uVar1;" (assignment_expression "iVar5 = param_2 - uVar1" identifier = (binary_expression "param_2 - uVar1" identifier - identifier)) ;) })) }))) (expression_statement "FUN_00130ce0(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5);" (call_expression "FUN_00130ce0(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5)" identifier (argument_list "(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5)" ( identifier , (binary_expression "iVar5 + ((int)param_4 - ((int)param_3 + 100))" identifier + (parenthesized_expression "((int)param_4 - ((int)param_3 + 100))" ( (binary_expression "(int)param_4 - ((int)param_3 + 100)" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "((int)param_3 + 100)" ( (binary_expression "(int)param_3 + 100" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) , identifier , identifier , number_literal , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (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 ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;)) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (string_literal " string_content ") , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) ))) , IDENT , IDENT , LIT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00123b40(undefined8 param_1,uint param_2,undefined8 param_3,void *param_4,int param_5)\n\n{\n  uint uVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  int iVar5;\n  ulong __n;\n  \n  __n = (ulong)param_2;\n  memset(param_4,0,__n);\n  if (param_5 == 0x47) {\n    switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }\n  }\n  else {\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }\n  FUN_00130ce0(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00123b40(undefined8 param_1,uint param_2,undefined8 param_3,void *param_4,int param_5)" (identifier "FUN_00123b40") (parameter_list "(undefined8 param_1,uint param_2,undefined8 param_3,void *param_4,int param_5)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "void *param_4" (primitive_type "void") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) () ")"))) (compound_statement "{\n  uint uVar1;\n  long lVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  int iVar5;\n  ulong __n;\n  \n  __n = (ulong)param_2;\n  memset(param_4,0,__n);\n  if (param_5 == 0x47) {\n    switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }\n  }\n  else {\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }\n  FUN_00130ce0(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5);\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "ulong __n;" (type_identifier "ulong") (identifier "__n") (; ";")) (expression_statement "__n = (ulong)param_2;" (assignment_expression "__n = (ulong)param_2" (identifier "__n") (= "=") (cast_expression "(ulong)param_2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "param_2"))) (; ";")) (expression_statement "memset(param_4,0,__n);" (call_expression "memset(param_4,0,__n)" (identifier "memset") (argument_list "(param_4,0,__n)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "__n") () ")"))) (; ";")) (if_statement "if (param_5 == 0x47) {\n    switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }\n  }\n  else {\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }" (if "if") (parenthesized_expression "(param_5 == 0x47)" (( "(") (binary_expression "param_5 == 0x47" (identifier "param_5") (== "==") (number_literal "0x47")) () ")")) (compound_statement "{\n    switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }\n  }" ({ "{") (switch_statement "switch(__n) {\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }" (switch "switch") (parenthesized_expression "(__n)" (( "(") (identifier "__n") () ")")) (compound_statement "{\n    default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;\n    case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;\n    case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;\n    case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;\n    case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;\n    case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;\n    }" ({ "{") (case_statement "default:\n      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);\n      FUN_0011f6d0(uVar3,__n);\n      return;" (default "default") (: ":") (expression_statement "uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);" (assignment_expression "uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"unsupported BFD relocation size %u",5)" (identifier "dcgettext") (argument_list "(0,"unsupported BFD relocation size %u",5)" (( "(") (number_literal "0") (, ",") (string_literal ""unsupported BFD relocation size %u"" (" """) (string_content "unsupported BFD relocation size %u") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011f6d0(uVar3,__n);" (call_expression "FUN_0011f6d0(uVar3,__n)" (identifier "FUN_0011f6d0") (argument_list "(uVar3,__n)" (( "(") (identifier "uVar3") (, ",") (identifier "__n") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";"))) (case_statement "case 1:\n      iVar5 = 0;\n      uVar1 = 1;\n      param_5 = 7;\n      break;" (case "case") (number_literal "1") (: ":") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" (identifier "uVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "param_5 = 7;" (assignment_expression "param_5 = 7" (identifier "param_5") (= "=") (number_literal "7")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n      iVar5 = 0;\n      uVar1 = 2;\n      param_5 = 5;\n      break;" (case "case") (number_literal "2") (: ":") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = 2;" (assignment_expression "uVar1 = 2" (identifier "uVar1") (= "=") (number_literal "2")) (; ";")) (expression_statement "param_5 = 5;" (assignment_expression "param_5 = 5" (identifier "param_5") (= "=") (number_literal "5")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n      iVar5 = 0;\n      uVar1 = 3;\n      param_5 = 4;\n      break;" (case "case") (number_literal "3") (: ":") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = 3;" (assignment_expression "uVar1 = 3" (identifier "uVar1") (= "=") (number_literal "3")) (; ";")) (expression_statement "param_5 = 4;" (assignment_expression "param_5 = 4" (identifier "param_5") (= "=") (number_literal "4")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n      iVar5 = 0;\n      uVar1 = 4;\n      param_5 = 2;\n      break;" (case "case") (number_literal "4") (: ":") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = 4;" (assignment_expression "uVar1 = 4" (identifier "uVar1") (= "=") (number_literal "4")) (; ";")) (expression_statement "param_5 = 2;" (assignment_expression "param_5 = 2" (identifier "param_5") (= "=") (number_literal "2")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\n      iVar5 = 0;\n      uVar1 = 8;\n      param_5 = 1;" (case "case") (number_literal "8") (: ":") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = 8;" (assignment_expression "uVar1 = 8" (identifier "uVar1") (= "=") (number_literal "8")) (; ";")) (expression_statement "param_5 = 1;" (assignment_expression "param_5 = 1" (identifier "param_5") (= "=") (number_literal "1")) (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }" (else "else") (compound_statement "{\n    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);\n    uVar1 = bfd_get_reloc_size(lVar2);\n    if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }\n    iVar5 = 0;\n    if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }\n  }" ({ "{") (expression_statement "lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);" (assignment_expression "lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5)" (identifier "lVar2") (= "=") (call_expression "bfd_reloc_type_lookup(DAT_0019d970,param_5)" (identifier "bfd_reloc_type_lookup") (argument_list "(DAT_0019d970,param_5)" (( "(") (identifier "DAT_0019d970") (, ",") (identifier "param_5") () ")")))) (; ";")) (expression_statement "uVar1 = bfd_get_reloc_size(lVar2);" (assignment_expression "uVar1 = bfd_get_reloc_size(lVar2)" (identifier "uVar1") (= "=") (call_expression "bfd_get_reloc_size(lVar2)" (identifier "bfd_get_reloc_size") (argument_list "(lVar2)" (( "(") (identifier "lVar2") () ")")))) (; ";")) (if_statement "if (param_2 < uVar1) {\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }" (if "if") (parenthesized_expression "(param_2 < uVar1)" (( "(") (binary_expression "param_2 < uVar1" (identifier "param_2") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n      uVar3 = *(undefined8 *)(lVar2 + 0x28);\n      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);\n      FUN_0011f6d0(uVar4,uVar3,__n);\n      return;\n    }" ({ "{") (expression_statement "uVar3 = *(undefined8 *)(lVar2 + 0x28);" (assignment_expression "uVar3 = *(undefined8 *)(lVar2 + 0x28)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined8 *)(lVar2 + 0x28)" (* "*") (cast_expression "(undefined8 *)(lVar2 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x28)" (( "(") (binary_expression "lVar2 + 0x28" (identifier "lVar2") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5);" (assignment_expression "uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5)" (identifier "uVar4") (= "=") (call_expression "dcngettext(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5)" (identifier "dcngettext") (argument_list "(0,"%s relocations do not fit in %u byte",\n                         "%s relocations do not fit in %u bytes",__n,5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s relocations do not fit in %u byte"" (" """) (string_content "%s relocations do not fit in %u byte") (" """)) (, ",") (string_literal ""%s relocations do not fit in %u bytes"" (" """) (string_content "%s relocations do not fit in %u bytes") (" """)) (, ",") (identifier "__n") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011f6d0(uVar4,uVar3,__n);" (call_expression "FUN_0011f6d0(uVar4,uVar3,__n)" (identifier "FUN_0011f6d0") (argument_list "(uVar4,uVar3,__n)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar3") (, ",") (identifier "__n") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_0019d218 != 0) {\n      iVar5 = param_2 - uVar1;\n    }" (if "if") (parenthesized_expression "(DAT_0019d218 != 0)" (( "(") (binary_expression "DAT_0019d218 != 0" (identifier "DAT_0019d218") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar5 = param_2 - uVar1;\n    }" ({ "{") (expression_statement "iVar5 = param_2 - uVar1;" (assignment_expression "iVar5 = param_2 - uVar1" (identifier "iVar5") (= "=") (binary_expression "param_2 - uVar1" (identifier "param_2") (- "-") (identifier "uVar1"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "FUN_00130ce0(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5);" (call_expression "FUN_00130ce0(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5)" (identifier "FUN_00130ce0") (argument_list "(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5)" (( "(") (identifier "param_3") (, ",") (binary_expression "iVar5 + ((int)param_4 - ((int)param_3 + 100))" (identifier "iVar5") (+ "+") (parenthesized_expression "((int)param_4 - ((int)param_3 + 100))" (( "(") (binary_expression "(int)param_4 - ((int)param_3 + 100)" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (- "-") (parenthesized_expression "((int)param_3 + 100)" (( "(") (binary_expression "(int)param_3 + 100" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "100")) () ")"))) () ")"))) (, ",") (identifier "uVar1") (, ",") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "param_5") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *exp,type_2 var_8,type_3 *frag,char *p,type_4 var_2)

{
  type_5 uVar1;
  type_2 var_9;
  long var_10;
  char *pcVar3;
  int var_14;
  type_6 __n;
  
  __n = (type_6)var_8;
  var_1(p,0,__n);
  if (var_2 == var_3) {
    switch(__n) {
    default:
      pcVar3 = (char *)var_4(0,"unsupported BFD relocation size %u",5);
      var_5(pcVar3,__n);
      return;
    case 1:
      var_14 = 0;
      var_9 = 1;
      var_2 = BFD_RELOC_8;
      break;
    case 2:
      var_14 = 0;
      var_9 = 2;
      var_2 = BFD_RELOC_16;
      break;
    case 3:
      var_14 = 0;
      var_9 = 3;
      var_2 = BFD_RELOC_24;
      break;
    case 4:
      var_14 = 0;
      var_9 = 4;
      var_2 = BFD_RELOC_32;
      break;
    case 8:
      var_14 = 0;
      var_9 = 8;
      var_2 = BFD_RELOC_64;
    }
  }
  else {
    var_10 = var_6(stdoutput);
    var_9 = var_7(var_10);
    if (var_8 < var_9) {
      uVar1 = *(type_5 *)(var_10 + 0x28);
      pcVar3 = (char *)var_11(0,"%s relocations do not fit in %u byte",
                                  "%s relocations do not fit in %u bytes",__n,5);
      var_5(pcVar3,uVar1,__n);
      return;
    }
    var_14 = 0;
    if (var_12 != 0) {
      var_14 = var_8 - var_9;
    }
  }
  var_13(frag,var_14 + ((int)p - ((int)frag + 100)),var_9,exp,0,var_2);
  return;
}


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

void MASKED(undefined8 param_1,uint param_2,undefined8 param_3,void *param_4,int param_5)

{
  uint uVar1;
  long lVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  int iVar5;
  ulong __n;
  
  __n = (ulong)param_2;
  memset(param_4,0,__n);
  if (param_5 == 0x47) {
    switch(__n) {
    default:
      uVar3 = dcgettext(0,"unsupported BFD relocation size %u",5);
      FUN_0011f6d0(uVar3,__n);
      return;
    case 1:
      iVar5 = 0;
      uVar1 = 1;
      param_5 = 7;
      break;
    case 2:
      iVar5 = 0;
      uVar1 = 2;
      param_5 = 5;
      break;
    case 3:
      iVar5 = 0;
      uVar1 = 3;
      param_5 = 4;
      break;
    case 4:
      iVar5 = 0;
      uVar1 = 4;
      param_5 = 2;
      break;
    case 8:
      iVar5 = 0;
      uVar1 = 8;
      param_5 = 1;
    }
  }
  else {
    lVar2 = bfd_reloc_type_lookup(DAT_0019d970,param_5);
    uVar1 = bfd_get_reloc_size(lVar2);
    if (param_2 < uVar1) {
      uVar3 = *(undefined8 *)(lVar2 + 0x28);
      uVar4 = dcngettext(0,"%s relocations do not fit in %u byte",
                         "%s relocations do not fit in %u bytes",__n,5);
      FUN_0011f6d0(uVar4,uVar3,__n);
      return;
    }
    iVar5 = 0;
    if (DAT_0019d218 != 0) {
      iVar5 = param_2 - uVar1;
    }
  }
  FUN_00130ce0(param_3,iVar5 + ((int)param_4 - ((int)param_3 + 100)),uVar1,param_1,0,param_5);
  return;
}

