
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void do_write_to_buffer(Output_data_expression * this, uchar * buf) */

void __thiscall
gold::Output_data_expression::do_write_to_buffer(Output_data_expression *this,uchar *buf)

{
  int *piVar1;
  long lVar2;
  ushort uVar3;
  uint64_t uVar5;
  uint64_t uVar6;
  byte bVar7;
  uint uVar4;
  
  uVar5 = Expression::eval_with_dot
                    (this->val_,this->symtab_,this->layout_,true,this->dot_value_,this->dot_section_
                     ,(Output_section **)0x0,(uint64_t *)0x0,false);
  if (parameters->target_ == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x69,"target");
  }
  piVar1 = *(int **)(parameters->target_ + 8);
  bVar7 = (byte)(this->super_Output_section_data).super_Output_data.field_0x20 >> 1 & 1;
  uVar3 = (ushort)uVar5;
  uVar4 = (uint)uVar5;
  if ((char)piVar1[1] == '\0') {
    if (bVar7 != 0) {
      lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;
      if (lVar2 == 2) {
        *(ushort *)buf = uVar3;
        return;
      }
      if (lVar2 < 3) {
        if (lVar2 == 1) goto LAB_00203bca;
      }
      else {
        if (lVar2 == 4) {
          *(uint *)buf = uVar4;
          return;
        }
        if (lVar2 == 8) {
          uVar6 = uVar5;
          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&
             ((uVar5 & 0x80000000) != 0)) {
            uVar6 = uVar6 | 0xffffffff00000000;
          }
          *(uint64_t *)buf = uVar6;
          return;
        }
      }
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");
    }
  }
  else if (bVar7 != 0) {
    lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;
    if (lVar2 == 2) {
      *(ushort *)buf = uVar3 << 8 | uVar3 >> 8;
      return;
    }
    if (lVar2 < 3) {
      if (lVar2 == 1) {
LAB_00203bca:
        *buf = (uchar)uVar5;
        return;
      }
    }
    else {
      if (lVar2 == 4) {
        *(uint *)buf = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |
                       uVar4 << 0x18;
        return;
      }
      if (lVar2 == 8) {
        uVar6 = uVar5;
        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&
           ((uVar5 & 0x80000000) != 0)) {
          uVar6 = uVar6 | 0xffffffff00000000;
        }
        *(uint64_t *)buf =
             uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |
             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |
             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;
        return;
      }
    }
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/output.h",0xcf,"data_size");
}



void FUN_00203ae0(long param_1,ulong *param_2)

{
  int *piVar1;
  long lVar2;
  ushort uVar3;
  ulong uVar5;
  ulong uVar6;
  byte bVar7;
  uint uVar4;
  
  uVar5 = FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),
                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),
                       *(undefined8 *)(param_1 + 0x60),0,0,0);
  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");
  }
  piVar1 = *(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);
  bVar7 = *(byte *)(param_1 + 0x20) >> 1 & 1;
  uVar3 = (ushort)uVar5;
  uVar4 = (uint)uVar5;
  if ((char)piVar1[1] == '\0') {
    if (bVar7 != 0) {
      lVar2 = *(long *)(param_1 + 0x10);
      if (lVar2 == 2) {
        *(ushort *)param_2 = uVar3;
        return;
      }
      if (lVar2 < 3) {
        if (lVar2 == 1) goto LAB_00203bca;
      }
      else {
        if (lVar2 == 4) {
          *(uint *)param_2 = uVar4;
          return;
        }
        if (lVar2 == 8) {
          uVar6 = uVar5;
          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))
             && ((uVar5 & 0x80000000) != 0)) {
            uVar6 = uVar6 | 0xffffffff00000000;
          }
          *param_2 = uVar6;
          return;
        }
      }
                    /* WARNING: Subroutine does not return */
      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");
    }
  }
  else if (bVar7 != 0) {
    lVar2 = *(long *)(param_1 + 0x10);
    if (lVar2 == 2) {
      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;
      return;
    }
    if (lVar2 < 3) {
      if (lVar2 == 1) {
LAB_00203bca:
        *(char *)param_2 = (char)uVar5;
        return;
      }
    }
    else {
      if (lVar2 == 4) {
        *(uint *)param_2 =
             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;
        return;
      }
      if (lVar2 == 8) {
        uVar6 = uVar5;
        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))
           && ((uVar5 & 0x80000000) != 0)) {
          uVar6 = uVar6 | 0xffffffff00000000;
        }
        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |
                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |
                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28
                   | uVar6 << 0x38;
        return;
      }
    }
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");
  }
                    /* WARNING: Subroutine does not return */
  FUN_0016cdf0("../../gold/output.h",0xcf,"data_size");
}


PUSH RBP
MOV RBP,RSI
MOV ECX,0x1
PUSH RBX
MOV RBX,RDI
SUB RSP,0x10
MOV RDX,qword ptr [RDI + 0x50]
MOV RSI,qword ptr [RDI + 0x48]
MOV RDI,qword ptr [RDI + 0x40]
MOV R9,qword ptr [RBX + 0x60]
PUSH 0x0
PUSH 0x0
MOV R8,qword ptr [RBX + 0x58]
PUSH 0x0
CALL 0x0024d240
MOV RDX,qword ptr [0x003be6b0]
ADD RSP,0x20
MOV RDX,qword ptr [RDX + 0x18]
TEST RDX,RDX
JZ 0x00203ca8
MOV RCX,qword ptr [RDX + 0x8]
MOVZX EDX,byte ptr [RBX + 0x20]
SHR DL,0x1
AND EDX,0x1
CMP byte ptr [RCX + 0x4],0x0
JZ 0x00203b70
TEST DL,DL
JZ 0x00203cc0
MOV RDX,qword ptr [RBX + 0x10]
CMP RDX,0x2
JZ 0x00203c20
JLE 0x00203bf8
CMP RDX,0x4
JNZ 0x00203bd8
BSWAP EAX
MOV dword ptr [RBP],EAX
ADD RSP,0x8
POP RBX
POP RBP
RET
TEST DL,DL
JZ 0x00203cc0
MOV RDX,qword ptr [RBX + 0x10]
CMP RDX,0x2
JZ 0x00203c30
JLE 0x00203bc0
CMP RDX,0x4
JNZ 0x00203ba0
MOV dword ptr [RBP],EAX
ADD RSP,0x8
POP RBX
POP RBP
RET
CMP RDX,0x8
JNZ 0x00203cd8
CMP dword ptr [RCX],0x20
JZ 0x00203c68
MOV qword ptr [RBP],RAX
ADD RSP,0x8
POP RBX
POP RBP
RET
CMP RDX,0x1
JNZ 0x00203cd8
MOV byte ptr [RBP],AL
ADD RSP,0x8
POP RBX
POP RBP
RET
CMP RDX,0x8
JNZ 0x00203bfe
CMP dword ptr [RCX],0x20
JZ 0x00203c40
BSWAP RAX
MOV qword ptr [RBP],RAX
ADD RSP,0x8
POP RBX
POP RBP
RET
CMP RDX,0x1
JZ 0x00203bca
LEA RDX,[0x31d260]
MOV ESI,0x470
LEA RDI,[0x31c74b]
CALL 0x0016cdf0
ROL AX,0x8
MOV word ptr [RBP],AX
ADD RSP,0x8
POP RBX
POP RBP
RET
MOV word ptr [RBP],AX
ADD RSP,0x8
POP RBX
POP RBP
RET
CMP byte ptr [RBX + 0x38],0x0
MOV EDX,EAX
JZ 0x00203c90
AND EAX,0x80000000
MOV RAX,RDX
JZ 0x00203be3
MOV RAX,-0x100000000
OR RAX,RDX
JMP 0x00203be3
CMP byte ptr [RBX + 0x38],0x0
MOV EDX,EAX
JZ 0x00203ca0
AND EAX,0x80000000
MOV RAX,RDX
JZ 0x00203bb3
MOV RAX,-0x100000000
OR RAX,RDX
JMP 0x00203bb3
MOV RAX,RDX
JMP 0x00203be3
MOV RAX,RDX
JMP 0x00203bb3
LEA RDX,[0x31d277]
MOV ESI,0x69
LEA RDI,[0x30dc70]
CALL 0x0016cdf0
LEA RDX,[0x31d288]
MOV ESI,0xcf
LEA RDI,[0x30e9f4]
CALL 0x0016cdf0
LEA RDX,[0x31d240]
MOV ESI,0x470
LEA RDI,[0x31c74b]
CALL 0x0016cdf0
(translation_unit "void FUN_00203ae0(long param_1,ulong *param_2)\n\n{\n  int *piVar1;\n  long lVar2;\n  ushort uVar3;\n  ulong uVar5;\n  ulong uVar6;\n  byte bVar7;\n  uint uVar4;\n  \n  uVar5 = FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0);\n  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }\n  piVar1 = *(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n  bVar7 = *(byte *)(param_1 + 0x20) >> 1 & 1;\n  uVar3 = (ushort)uVar5;\n  uVar4 = (uint)uVar5;\n  if ((char)piVar1[1] == '\0') {\n    if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }\n  else if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/output.h",0xcf,"data_size");\n}\n\n" (function_definition "void FUN_00203ae0(long param_1,ulong *param_2)\n\n{\n  int *piVar1;\n  long lVar2;\n  ushort uVar3;\n  ulong uVar5;\n  ulong uVar6;\n  byte bVar7;\n  uint uVar4;\n  \n  uVar5 = FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0);\n  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }\n  piVar1 = *(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n  bVar7 = *(byte *)(param_1 + 0x20) >> 1 & 1;\n  uVar3 = (ushort)uVar5;\n  uVar4 = (uint)uVar5;\n  if ((char)piVar1[1] == '\0') {\n    if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }\n  else if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/output.h",0xcf,"data_size");\n}" primitive_type (function_declarator "FUN_00203ae0(long param_1,ulong *param_2)" identifier (parameter_list "(long param_1,ulong *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  long lVar2;\n  ushort uVar3;\n  ulong uVar5;\n  ulong uVar6;\n  byte bVar7;\n  uint uVar4;\n  \n  uVar5 = FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0);\n  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }\n  piVar1 = *(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n  bVar7 = *(byte *)(param_1 + 0x20) >> 1 & 1;\n  uVar3 = (ushort)uVar5;\n  uVar4 = (uint)uVar5;\n  if ((char)piVar1[1] == '\0') {\n    if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }\n  else if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/output.h",0xcf,"data_size");\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (expression_statement "uVar5 = FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0);" (assignment_expression "uVar5 = FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0)" identifier = (call_expression "FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x40)" * (cast_expression "(undefined8 *)(param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x58)" * (cast_expression "(undefined8 *)(param_1 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_1 + 0x60)" * (cast_expression "(undefined8 *)(param_1 + 0x60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0016cdf0("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (expression_statement "piVar1 = *(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);" (assignment_expression "piVar1 = *(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" identifier = (pointer_expression "*(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" * (cast_expression "(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "bVar7 = *(byte *)(param_1 + 0x20) >> 1 & 1;" (assignment_expression "bVar7 = *(byte *)(param_1 + 0x20) >> 1 & 1" identifier = (binary_expression "*(byte *)(param_1 + 0x20) >> 1 & 1" (binary_expression "*(byte *)(param_1 + 0x20) >> 1" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "uVar3 = (ushort)uVar5;" (assignment_expression "uVar3 = (ushort)uVar5" identifier = (cast_expression "(ushort)uVar5" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "uVar4 = (uint)uVar5;" (assignment_expression "uVar4 = (uint)uVar5" identifier = (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((char)piVar1[1] == '\0') {\n    if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }\n  else if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }" if (parenthesized_expression "((char)piVar1[1] == '\0')" ( (binary_expression "(char)piVar1[1] == '\0'" (cast_expression "(char)piVar1[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar1[1]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }" { (if_statement "if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }" if (parenthesized_expression "(bVar7 != 0)" ( (binary_expression "bVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }" { (expression_statement "lVar2 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }" if (parenthesized_expression "(lVar2 == 2)" ( (binary_expression "lVar2 == 2" identifier == number_literal) )) (compound_statement "{\n        *(ushort *)param_2 = uVar3;\n        return;\n      }" { (expression_statement "*(ushort *)param_2 = uVar3;" (assignment_expression "*(ushort *)param_2 = uVar3" (pointer_expression "*(ushort *)param_2" * (cast_expression "(ushort *)param_2" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }" if (parenthesized_expression "(lVar2 < 3)" ( (binary_expression "lVar2 < 3" identifier < number_literal) )) (compound_statement "{\n        if (lVar2 == 1) goto LAB_00203bca;\n      }" { (if_statement "if (lVar2 == 1) goto LAB_00203bca;" if (parenthesized_expression "(lVar2 == 1)" ( (binary_expression "lVar2 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00203bca;" goto statement_identifier ;)) }) (else_clause "else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }" else (compound_statement "{\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }" { (if_statement "if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }" if (parenthesized_expression "(lVar2 == 4)" ( (binary_expression "lVar2 == 4" identifier == number_literal) )) (compound_statement "{\n          *(uint *)param_2 = uVar4;\n          return;\n        }" { (expression_statement "*(uint *)param_2 = uVar4;" (assignment_expression "*(uint *)param_2 = uVar4" (pointer_expression "*(uint *)param_2" * (cast_expression "(uint *)param_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }" if (parenthesized_expression "(lVar2 == 8)" ( (binary_expression "lVar2 == 8" identifier == number_literal) )) (compound_statement "{\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }" { (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" identifier = identifier) ;) (if_statement "if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }" if (parenthesized_expression "(((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0))" ( (binary_expression "((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)" (parenthesized_expression "((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))" ( (binary_expression "(*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0')" (parenthesized_expression "(*piVar1 == 0x20)" ( (binary_expression "*piVar1 == 0x20" (pointer_expression "*piVar1" * identifier) == number_literal) )) && (parenthesized_expression "(uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0')" ( (comma_expression "uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'" (assignment_expression "uVar6 = uVar5 & 0xffffffff" identifier = (binary_expression "uVar5 & 0xffffffff" identifier & number_literal)) , (binary_expression "*(char *)(param_1 + 0x38) != '\0'" (pointer_expression "*(char *)(param_1 + 0x38)" * (cast_expression "(char *)(param_1 + 0x38)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "((uVar5 & 0x80000000) != 0)" ( (binary_expression "(uVar5 & 0x80000000) != 0" (parenthesized_expression "(uVar5 & 0x80000000)" ( (binary_expression "uVar5 & 0x80000000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }" { (expression_statement "uVar6 = uVar6 | 0xffffffff00000000;" (assignment_expression "uVar6 = uVar6 | 0xffffffff00000000" identifier = (binary_expression "uVar6 | 0xffffffff00000000" identifier | number_literal)) ;) })) (expression_statement "*param_2 = uVar6;" (assignment_expression "*param_2 = uVar6" (pointer_expression "*param_2" * identifier) = identifier) ;) (return_statement "return;" return ;) })) }))) comment (expression_statement "FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");" (call_expression "FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer")" identifier (argument_list "("../../gold/script-sections.cc",0x470,"endian_write_to_buffer")" ( (string_literal ""../../gold/script-sections.cc"" " string_content ") , number_literal , (string_literal ""endian_write_to_buffer"" " string_content ") ))) ;) })) }) (else_clause "else if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }" else (if_statement "if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }" if (parenthesized_expression "(bVar7 != 0)" ( (binary_expression "bVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }" { (expression_statement "lVar2 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }" if (parenthesized_expression "(lVar2 == 2)" ( (binary_expression "lVar2 == 2" identifier == number_literal) )) (compound_statement "{\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }" { (expression_statement "*(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;" (assignment_expression "*(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8" (pointer_expression "*(ushort *)param_2" * (cast_expression "(ushort *)param_2" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar3 << 8 | uVar3 >> 8" (binary_expression "uVar3 << 8" identifier << number_literal) | (binary_expression "uVar3 >> 8" identifier >> number_literal))) ;) (return_statement "return;" return ;) })) (if_statement "if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }" if (parenthesized_expression "(lVar2 < 3)" ( (binary_expression "lVar2 < 3" identifier < number_literal) )) (compound_statement "{\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }" { (if_statement "if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }" if (parenthesized_expression "(lVar2 == 1)" ( (binary_expression "lVar2 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }" { (labeled_statement "LAB_00203bca:\n        *(char *)param_2 = (char)uVar5;" statement_identifier : (expression_statement "*(char *)param_2 = (char)uVar5;" (assignment_expression "*(char *)param_2 = (char)uVar5" (pointer_expression "*(char *)param_2" * (cast_expression "(char *)param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) (return_statement "return;" return ;) })) }) (else_clause "else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }" else (compound_statement "{\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }" { (if_statement "if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }" if (parenthesized_expression "(lVar2 == 4)" ( (binary_expression "lVar2 == 4" identifier == number_literal) )) (compound_statement "{\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }" { (expression_statement "*(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;" (assignment_expression "*(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (pointer_expression "*(uint *)param_2" * (cast_expression "(uint *)param_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar4 << 0x18" identifier << number_literal))) ;) (return_statement "return;" return ;) })) (if_statement "if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }" if (parenthesized_expression "(lVar2 == 8)" ( (binary_expression "lVar2 == 8" identifier == number_literal) )) (compound_statement "{\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }" { (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" identifier = identifier) ;) (if_statement "if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }" if (parenthesized_expression "(((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0))" ( (binary_expression "((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)" (parenthesized_expression "((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))" ( (binary_expression "(*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0')" (parenthesized_expression "(*piVar1 == 0x20)" ( (binary_expression "*piVar1 == 0x20" (pointer_expression "*piVar1" * identifier) == number_literal) )) && (parenthesized_expression "(uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0')" ( (comma_expression "uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'" (assignment_expression "uVar6 = uVar5 & 0xffffffff" identifier = (binary_expression "uVar5 & 0xffffffff" identifier & number_literal)) , (binary_expression "*(char *)(param_1 + 0x38) != '\0'" (pointer_expression "*(char *)(param_1 + 0x38)" * (cast_expression "(char *)(param_1 + 0x38)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "((uVar5 & 0x80000000) != 0)" ( (binary_expression "(uVar5 & 0x80000000) != 0" (parenthesized_expression "(uVar5 & 0x80000000)" ( (binary_expression "uVar5 & 0x80000000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }" { (expression_statement "uVar6 = uVar6 | 0xffffffff00000000;" (assignment_expression "uVar6 = uVar6 | 0xffffffff00000000" identifier = (binary_expression "uVar6 | 0xffffffff00000000" identifier | number_literal)) ;) })) (expression_statement "*param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;" (assignment_expression "*param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (return_statement "return;" return ;) })) }))) comment (expression_statement "FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");" (call_expression "FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer")" identifier (argument_list "("../../gold/script-sections.cc",0x470,"endian_write_to_buffer")" ( (string_literal ""../../gold/script-sections.cc"" " string_content ") , number_literal , (string_literal ""endian_write_to_buffer"" " string_content ") ))) ;) })))) comment (expression_statement "FUN_0016cdf0("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0016cdf0("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void do_write_to_buffer(Output_data_expression * this, uchar * buf) */\n\nvoid __thiscall\ngold::Output_data_expression::do_write_to_buffer(Output_data_expression *this,uchar *buf)\n\n{\n  int *piVar1;\n  long lVar2;\n  ushort uVar3;\n  uint64_t uVar5;\n  uint64_t uVar6;\n  byte bVar7;\n  uint uVar4;\n  \n  uVar5 = Expression::eval_with_dot\n                    (this->val_,this->symtab_,this->layout_,true,this->dot_value_,this->dot_section_\n                     ,(Output_section **)0x0,(uint64_t *)0x0,false);\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  piVar1 = *(int **)(parameters->target_ + 8);\n  bVar7 = (byte)(this->super_Output_section_data).super_Output_data.field_0x20 >> 1 & 1;\n  uVar3 = (ushort)uVar5;\n  uVar4 = (uint)uVar5;\n  if ((char)piVar1[1] == '\0') {\n    if (bVar7 != 0) {\n      lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;\n      if (lVar2 == 2) {\n        *(ushort *)buf = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)buf = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n             ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *(uint64_t *)buf = uVar6;\n          return;\n        }\n      }\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }\n  else if (bVar7 != 0) {\n    lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;\n    if (lVar2 == 2) {\n      *(ushort *)buf = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *buf = (uchar)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)buf = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                       uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n           ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *(uint64_t *)buf =\n             uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n        return;\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n}\n\n" comment comment (function_definition "void __thiscall\ngold::Output_data_expression::do_write_to_buffer(Output_data_expression *this,uchar *buf)\n\n{\n  int *piVar1;\n  long lVar2;\n  ushort uVar3;\n  uint64_t uVar5;\n  uint64_t uVar6;\n  byte bVar7;\n  uint uVar4;\n  \n  uVar5 = Expression::eval_with_dot\n                    (this->val_,this->symtab_,this->layout_,true,this->dot_value_,this->dot_section_\n                     ,(Output_section **)0x0,(uint64_t *)0x0,false);\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  piVar1 = *(int **)(parameters->target_ + 8);\n  bVar7 = (byte)(this->super_Output_section_data).super_Output_data.field_0x20 >> 1 & 1;\n  uVar3 = (ushort)uVar5;\n  uVar4 = (uint)uVar5;\n  if ((char)piVar1[1] == '\0') {\n    if (bVar7 != 0) {\n      lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;\n      if (lVar2 == 2) {\n        *(ushort *)buf = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)buf = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n             ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *(uint64_t *)buf = uVar6;\n          return;\n        }\n      }\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }\n  else if (bVar7 != 0) {\n    lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;\n    if (lVar2 == 2) {\n      *(ushort *)buf = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *buf = (uchar)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)buf = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                       uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n           ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *(uint64_t *)buf =\n             uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n        return;\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_data_expression::" identifier : : identifier : :) (function_declarator "do_write_to_buffer(Output_data_expression *this,uchar *buf)" identifier (parameter_list "(Output_data_expression *this,uchar *buf)" ( (parameter_declaration "Output_data_expression *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "uchar *buf" type_identifier (pointer_declarator "*buf" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  long lVar2;\n  ushort uVar3;\n  uint64_t uVar5;\n  uint64_t uVar6;\n  byte bVar7;\n  uint uVar4;\n  \n  uVar5 = Expression::eval_with_dot\n                    (this->val_,this->symtab_,this->layout_,true,this->dot_value_,this->dot_section_\n                     ,(Output_section **)0x0,(uint64_t *)0x0,false);\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  piVar1 = *(int **)(parameters->target_ + 8);\n  bVar7 = (byte)(this->super_Output_section_data).super_Output_data.field_0x20 >> 1 & 1;\n  uVar3 = (ushort)uVar5;\n  uVar4 = (uint)uVar5;\n  if ((char)piVar1[1] == '\0') {\n    if (bVar7 != 0) {\n      lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;\n      if (lVar2 == 2) {\n        *(ushort *)buf = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)buf = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n             ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *(uint64_t *)buf = uVar6;\n          return;\n        }\n      }\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }\n  else if (bVar7 != 0) {\n    lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;\n    if (lVar2 == 2) {\n      *(ushort *)buf = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *buf = (uchar)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)buf = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                       uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n           ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *(uint64_t *)buf =\n             uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n        return;\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "uint64_t uVar5;" primitive_type identifier ;) (declaration "uint64_t uVar6;" primitive_type identifier ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (ERROR "uVar5 = Expression::" (assignment_expression "uVar5 = Expression" identifier = identifier) : :) (expression_statement "eval_with_dot\n                    (this->val_,this->symtab_,this->layout_,true,this->dot_value_,this->dot_section_\n                     ,(Output_section **)0x0,(uint64_t *)0x0,false);" (call_expression "eval_with_dot\n                    (this->val_,this->symtab_,this->layout_,true,this->dot_value_,this->dot_section_\n                     ,(Output_section **)0x0,(uint64_t *)0x0,false)" identifier (argument_list "(this->val_,this->symtab_,this->layout_,true,this->dot_value_,this->dot_section_\n                     ,(Output_section **)0x0,(uint64_t *)0x0,false)" ( (field_expression "this->val_" identifier -> field_identifier) , (field_expression "this->symtab_" identifier -> field_identifier) , (field_expression "this->layout_" identifier -> field_identifier) , true , (field_expression "this->dot_value_" identifier -> field_identifier) , (field_expression "this->dot_section_" identifier -> field_identifier) , (cast_expression "(Output_section **)0x0" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(uint64_t *)0x0" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , false ))) ;) (if_statement "if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(parameters->target_ == (Target *)0x0)" ( (binary_expression "parameters->target_ == (Target *)0x0" (field_expression "parameters->target_" identifier -> field_identifier) == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x69,"target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (expression_statement "piVar1 = *(int **)(parameters->target_ + 8);" (assignment_expression "piVar1 = *(int **)(parameters->target_ + 8)" identifier = (pointer_expression "*(int **)(parameters->target_ + 8)" * (cast_expression "(int **)(parameters->target_ + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(parameters->target_ + 8)" ( (binary_expression "parameters->target_ + 8" (field_expression "parameters->target_" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "bVar7 = (byte)(this->super_Output_section_data).super_Output_data.field_0x20 >> 1 & 1;" (assignment_expression "bVar7 = (byte)(this->super_Output_section_data).super_Output_data.field_0x20 >> 1 & 1" identifier = (binary_expression "(byte)(this->super_Output_section_data).super_Output_data.field_0x20 >> 1 & 1" (binary_expression "(byte)(this->super_Output_section_data).super_Output_data.field_0x20 >> 1" (field_expression "(byte)(this->super_Output_section_data).super_Output_data.field_0x20" (field_expression "(byte)(this->super_Output_section_data).super_Output_data" (call_expression "(byte)(this->super_Output_section_data)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) ))) . field_identifier) . field_identifier) >> number_literal) & number_literal)) ;) (expression_statement "uVar3 = (ushort)uVar5;" (assignment_expression "uVar3 = (ushort)uVar5" identifier = (cast_expression "(ushort)uVar5" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "uVar4 = (uint)uVar5;" (assignment_expression "uVar4 = (uint)uVar5" identifier = (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((char)piVar1[1] == '\0') {\n    if (bVar7 != 0) {\n      lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;\n      if (lVar2 == 2) {\n        *(ushort *)buf = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)buf = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n             ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *(uint64_t *)buf = uVar6;\n          return;\n        }\n      }\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }\n  else if (bVar7 != 0) {\n    lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;\n    if (lVar2 == 2) {\n      *(ushort *)buf = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *buf = (uchar)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)buf = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                       uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n           ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *(uint64_t *)buf =\n             uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n        return;\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }" if (parenthesized_expression "((char)piVar1[1] == '\0')" ( (binary_expression "(char)piVar1[1] == '\0'" (cast_expression "(char)piVar1[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar1[1]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (bVar7 != 0) {\n      lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;\n      if (lVar2 == 2) {\n        *(ushort *)buf = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)buf = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n             ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *(uint64_t *)buf = uVar6;\n          return;\n        }\n      }\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }" { (if_statement "if (bVar7 != 0) {\n      lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;\n      if (lVar2 == 2) {\n        *(ushort *)buf = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)buf = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n             ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *(uint64_t *)buf = uVar6;\n          return;\n        }\n      }\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }" if (parenthesized_expression "(bVar7 != 0)" ( (binary_expression "bVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;\n      if (lVar2 == 2) {\n        *(ushort *)buf = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)buf = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n             ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *(uint64_t *)buf = uVar6;\n          return;\n        }\n      }\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }" { (expression_statement "lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;" (assignment_expression "lVar2 = (this->super_Output_section_data).super_Output_data.data_size_" identifier = (field_expression "(this->super_Output_section_data).super_Output_data.data_size_" (field_expression "(this->super_Output_section_data).super_Output_data" (parenthesized_expression "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (lVar2 == 2) {\n        *(ushort *)buf = uVar3;\n        return;\n      }" if (parenthesized_expression "(lVar2 == 2)" ( (binary_expression "lVar2 == 2" identifier == number_literal) )) (compound_statement "{\n        *(ushort *)buf = uVar3;\n        return;\n      }" { (expression_statement "*(ushort *)buf = uVar3;" (assignment_expression "*(ushort *)buf = uVar3" (pointer_expression "*(ushort *)buf" * (cast_expression "(ushort *)buf" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)buf = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n             ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *(uint64_t *)buf = uVar6;\n          return;\n        }\n      }" if (parenthesized_expression "(lVar2 < 3)" ( (binary_expression "lVar2 < 3" identifier < number_literal) )) (compound_statement "{\n        if (lVar2 == 1) goto LAB_00203bca;\n      }" { (if_statement "if (lVar2 == 1) goto LAB_00203bca;" if (parenthesized_expression "(lVar2 == 1)" ( (binary_expression "lVar2 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00203bca;" goto statement_identifier ;)) }) (else_clause "else {\n        if (lVar2 == 4) {\n          *(uint *)buf = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n             ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *(uint64_t *)buf = uVar6;\n          return;\n        }\n      }" else (compound_statement "{\n        if (lVar2 == 4) {\n          *(uint *)buf = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n             ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *(uint64_t *)buf = uVar6;\n          return;\n        }\n      }" { (if_statement "if (lVar2 == 4) {\n          *(uint *)buf = uVar4;\n          return;\n        }" if (parenthesized_expression "(lVar2 == 4)" ( (binary_expression "lVar2 == 4" identifier == number_literal) )) (compound_statement "{\n          *(uint *)buf = uVar4;\n          return;\n        }" { (expression_statement "*(uint *)buf = uVar4;" (assignment_expression "*(uint *)buf = uVar4" (pointer_expression "*(uint *)buf" * (cast_expression "(uint *)buf" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n             ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *(uint64_t *)buf = uVar6;\n          return;\n        }" if (parenthesized_expression "(lVar2 == 8)" ( (binary_expression "lVar2 == 8" identifier == number_literal) )) (compound_statement "{\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n             ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *(uint64_t *)buf = uVar6;\n          return;\n        }" { (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" identifier = identifier) ;) (if_statement "if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n             ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }" if (parenthesized_expression "(((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n             ((uVar5 & 0x80000000) != 0))" ( (binary_expression "((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n             ((uVar5 & 0x80000000) != 0)" (parenthesized_expression "((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false))" ( (binary_expression "(*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)" (parenthesized_expression "(*piVar1 == 0x20)" ( (binary_expression "*piVar1 == 0x20" (pointer_expression "*piVar1" * identifier) == number_literal) )) && (parenthesized_expression "(uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)" ( (comma_expression "uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false" (assignment_expression "uVar6 = uVar5 & 0xffffffff" identifier = (binary_expression "uVar5 & 0xffffffff" identifier & number_literal)) , (binary_expression "this->is_signed_ != false" (field_expression "this->is_signed_" identifier -> field_identifier) != false)) ))) )) && (parenthesized_expression "((uVar5 & 0x80000000) != 0)" ( (binary_expression "(uVar5 & 0x80000000) != 0" (parenthesized_expression "(uVar5 & 0x80000000)" ( (binary_expression "uVar5 & 0x80000000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }" { (expression_statement "uVar6 = uVar6 | 0xffffffff00000000;" (assignment_expression "uVar6 = uVar6 | 0xffffffff00000000" identifier = (binary_expression "uVar6 | 0xffffffff00000000" identifier | number_literal)) ;) })) (expression_statement "*(uint64_t *)buf = uVar6;" (assignment_expression "*(uint64_t *)buf = uVar6" (pointer_expression "*(uint64_t *)buf" * (cast_expression "(uint64_t *)buf" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (return_statement "return;" return ;) })) }))) comment (expression_statement "do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");" (call_expression "do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer")" identifier (argument_list "("../../gold/script-sections.cc",0x470,"endian_write_to_buffer")" ( (string_literal ""../../gold/script-sections.cc"" " string_content ") , number_literal , (string_literal ""endian_write_to_buffer"" " string_content ") ))) ;) })) }) (else_clause "else if (bVar7 != 0) {\n    lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;\n    if (lVar2 == 2) {\n      *(ushort *)buf = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *buf = (uchar)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)buf = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                       uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n           ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *(uint64_t *)buf =\n             uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n        return;\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }" else (if_statement "if (bVar7 != 0) {\n    lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;\n    if (lVar2 == 2) {\n      *(ushort *)buf = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *buf = (uchar)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)buf = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                       uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n           ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *(uint64_t *)buf =\n             uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n        return;\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }" if (parenthesized_expression "(bVar7 != 0)" ( (binary_expression "bVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;\n    if (lVar2 == 2) {\n      *(ushort *)buf = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *buf = (uchar)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)buf = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                       uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n           ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *(uint64_t *)buf =\n             uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n        return;\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }" { (expression_statement "lVar2 = (this->super_Output_section_data).super_Output_data.data_size_;" (assignment_expression "lVar2 = (this->super_Output_section_data).super_Output_data.data_size_" identifier = (field_expression "(this->super_Output_section_data).super_Output_data.data_size_" (field_expression "(this->super_Output_section_data).super_Output_data" (parenthesized_expression "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (lVar2 == 2) {\n      *(ushort *)buf = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }" if (parenthesized_expression "(lVar2 == 2)" ( (binary_expression "lVar2 == 2" identifier == number_literal) )) (compound_statement "{\n      *(ushort *)buf = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }" { (expression_statement "*(ushort *)buf = uVar3 << 8 | uVar3 >> 8;" (assignment_expression "*(ushort *)buf = uVar3 << 8 | uVar3 >> 8" (pointer_expression "*(ushort *)buf" * (cast_expression "(ushort *)buf" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar3 << 8 | uVar3 >> 8" (binary_expression "uVar3 << 8" identifier << number_literal) | (binary_expression "uVar3 >> 8" identifier >> number_literal))) ;) (return_statement "return;" return ;) })) (if_statement "if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *buf = (uchar)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)buf = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                       uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n           ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *(uint64_t *)buf =\n             uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n        return;\n      }\n    }" if (parenthesized_expression "(lVar2 < 3)" ( (binary_expression "lVar2 < 3" identifier < number_literal) )) (compound_statement "{\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *buf = (uchar)uVar5;\n        return;\n      }\n    }" { (if_statement "if (lVar2 == 1) {\nLAB_00203bca:\n        *buf = (uchar)uVar5;\n        return;\n      }" if (parenthesized_expression "(lVar2 == 1)" ( (binary_expression "lVar2 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_00203bca:\n        *buf = (uchar)uVar5;\n        return;\n      }" { (labeled_statement "LAB_00203bca:\n        *buf = (uchar)uVar5;" statement_identifier : (expression_statement "*buf = (uchar)uVar5;" (assignment_expression "*buf = (uchar)uVar5" (pointer_expression "*buf" * identifier) = (cast_expression "(uchar)uVar5" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;)) (return_statement "return;" return ;) })) }) (else_clause "else {\n      if (lVar2 == 4) {\n        *(uint *)buf = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                       uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n           ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *(uint64_t *)buf =\n             uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n        return;\n      }\n    }" else (compound_statement "{\n      if (lVar2 == 4) {\n        *(uint *)buf = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                       uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n           ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *(uint64_t *)buf =\n             uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n        return;\n      }\n    }" { (if_statement "if (lVar2 == 4) {\n        *(uint *)buf = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                       uVar4 << 0x18;\n        return;\n      }" if (parenthesized_expression "(lVar2 == 4)" ( (binary_expression "lVar2 == 4" identifier == number_literal) )) (compound_statement "{\n        *(uint *)buf = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                       uVar4 << 0x18;\n        return;\n      }" { (expression_statement "*(uint *)buf = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                       uVar4 << 0x18;" (assignment_expression "*(uint *)buf = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                       uVar4 << 0x18" (pointer_expression "*(uint *)buf" * (cast_expression "(uint *)buf" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |\n                       uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar4 << 0x18" identifier << number_literal))) ;) (return_statement "return;" return ;) })) (if_statement "if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n           ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *(uint64_t *)buf =\n             uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n        return;\n      }" if (parenthesized_expression "(lVar2 == 8)" ( (binary_expression "lVar2 == 8" identifier == number_literal) )) (compound_statement "{\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n           ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *(uint64_t *)buf =\n             uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;\n        return;\n      }" { (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" identifier = identifier) ;) (if_statement "if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n           ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }" if (parenthesized_expression "(((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n           ((uVar5 & 0x80000000) != 0))" ( (binary_expression "((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)) &&\n           ((uVar5 & 0x80000000) != 0)" (parenthesized_expression "((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false))" ( (binary_expression "(*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)" (parenthesized_expression "(*piVar1 == 0x20)" ( (binary_expression "*piVar1 == 0x20" (pointer_expression "*piVar1" * identifier) == number_literal) )) && (parenthesized_expression "(uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false)" ( (comma_expression "uVar6 = uVar5 & 0xffffffff, this->is_signed_ != false" (assignment_expression "uVar6 = uVar5 & 0xffffffff" identifier = (binary_expression "uVar5 & 0xffffffff" identifier & number_literal)) , (binary_expression "this->is_signed_ != false" (field_expression "this->is_signed_" identifier -> field_identifier) != false)) ))) )) && (parenthesized_expression "((uVar5 & 0x80000000) != 0)" ( (binary_expression "(uVar5 & 0x80000000) != 0" (parenthesized_expression "(uVar5 & 0x80000000)" ( (binary_expression "uVar5 & 0x80000000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }" { (expression_statement "uVar6 = uVar6 | 0xffffffff00000000;" (assignment_expression "uVar6 = uVar6 | 0xffffffff00000000" identifier = (binary_expression "uVar6 | 0xffffffff00000000" identifier | number_literal)) ;) })) (expression_statement "*(uint64_t *)buf =\n             uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38;" (assignment_expression "*(uint64_t *)buf =\n             uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (pointer_expression "*(uint64_t *)buf" * (cast_expression "(uint64_t *)buf" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28 | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 |\n             (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8 | (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18 |\n             (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 | (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (return_statement "return;" return ;) })) }))) comment (expression_statement "do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");" (call_expression "do_gold_unreachable("../../gold/script-sections.cc",0x470,"endian_write_to_buffer")" identifier (argument_list "("../../gold/script-sections.cc",0x470,"endian_write_to_buffer")" ( (string_literal ""../../gold/script-sections.cc"" " string_content ") , number_literal , (string_literal ""endian_write_to_buffer"" " string_content ") ))) ;) })))) comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xcf,"data_size");" (call_expression "do_gold_unreachable("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })))
(translation_unit "void FUN_00203ae0(long param_1,ulong *param_2)\n\n{\n  int *piVar1;\n  long lVar2;\n  ushort uVar3;\n  ulong uVar5;\n  ulong uVar6;\n  byte bVar7;\n  uint uVar4;\n  \n  uVar5 = FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0);\n  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }\n  piVar1 = *(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n  bVar7 = *(byte *)(param_1 + 0x20) >> 1 & 1;\n  uVar3 = (ushort)uVar5;\n  uVar4 = (uint)uVar5;\n  if ((char)piVar1[1] == '\0') {\n    if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    \n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }\n  else if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    \n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }\n                    \n  FUN_0016cdf0("../../gold/output.h",0xcf,"data_size");\n}\n\n" (function_definition "void FUN_00203ae0(long param_1,ulong *param_2)\n\n{\n  int *piVar1;\n  long lVar2;\n  ushort uVar3;\n  ulong uVar5;\n  ulong uVar6;\n  byte bVar7;\n  uint uVar4;\n  \n  uVar5 = FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0);\n  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }\n  piVar1 = *(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n  bVar7 = *(byte *)(param_1 + 0x20) >> 1 & 1;\n  uVar3 = (ushort)uVar5;\n  uVar4 = (uint)uVar5;\n  if ((char)piVar1[1] == '\0') {\n    if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    \n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }\n  else if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    \n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }\n                    \n  FUN_0016cdf0("../../gold/output.h",0xcf,"data_size");\n}" primitive_type (function_declarator "FUN_00203ae0(long param_1,ulong *param_2)" identifier (parameter_list "(long param_1,ulong *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  long lVar2;\n  ushort uVar3;\n  ulong uVar5;\n  ulong uVar6;\n  byte bVar7;\n  uint uVar4;\n  \n  uVar5 = FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0);\n  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }\n  piVar1 = *(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n  bVar7 = *(byte *)(param_1 + 0x20) >> 1 & 1;\n  uVar3 = (ushort)uVar5;\n  uVar4 = (uint)uVar5;\n  if ((char)piVar1[1] == '\0') {\n    if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    \n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }\n  else if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    \n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }\n                    \n  FUN_0016cdf0("../../gold/output.h",0xcf,"data_size");\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (expression_statement "uVar5 = FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0);" (assignment_expression "uVar5 = FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0)" identifier = (call_expression "FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x40)" * (cast_expression "(undefined8 *)(param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x58)" * (cast_expression "(undefined8 *)(param_1 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) , (pointer_expression "*(undefined8 *)(param_1 + 0x60)" * (cast_expression "(undefined8 *)(param_1 + 0x60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }" { (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0016cdf0("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (expression_statement "piVar1 = *(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);" (assignment_expression "piVar1 = *(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" identifier = (pointer_expression "*(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" * (cast_expression "(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" ( (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "bVar7 = *(byte *)(param_1 + 0x20) >> 1 & 1;" (assignment_expression "bVar7 = *(byte *)(param_1 + 0x20) >> 1 & 1" identifier = (binary_expression "*(byte *)(param_1 + 0x20) >> 1 & 1" (binary_expression "*(byte *)(param_1 + 0x20) >> 1" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "uVar3 = (ushort)uVar5;" (assignment_expression "uVar3 = (ushort)uVar5" identifier = (cast_expression "(ushort)uVar5" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "uVar4 = (uint)uVar5;" (assignment_expression "uVar4 = (uint)uVar5" identifier = (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((char)piVar1[1] == '\0') {\n    if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    \n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }\n  else if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    \n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }" if (parenthesized_expression "((char)piVar1[1] == '\0')" ( (binary_expression "(char)piVar1[1] == '\0'" (cast_expression "(char)piVar1[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar1[1]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    \n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }" { (if_statement "if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    \n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }" if (parenthesized_expression "(bVar7 != 0)" ( (binary_expression "bVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    \n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }" { (expression_statement "lVar2 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }" if (parenthesized_expression "(lVar2 == 2)" ( (binary_expression "lVar2 == 2" identifier == number_literal) )) (compound_statement "{\n        *(ushort *)param_2 = uVar3;\n        return;\n      }" { (expression_statement "*(ushort *)param_2 = uVar3;" (assignment_expression "*(ushort *)param_2 = uVar3" (pointer_expression "*(ushort *)param_2" * (cast_expression "(ushort *)param_2" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }" if (parenthesized_expression "(lVar2 < 3)" ( (binary_expression "lVar2 < 3" identifier < number_literal) )) (compound_statement "{\n        if (lVar2 == 1) goto LAB_00203bca;\n      }" { (if_statement "if (lVar2 == 1) goto LAB_00203bca;" if (parenthesized_expression "(lVar2 == 1)" ( (binary_expression "lVar2 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00203bca;" goto statement_identifier ;)) }) (else_clause "else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }" else (compound_statement "{\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }" { (if_statement "if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }" if (parenthesized_expression "(lVar2 == 4)" ( (binary_expression "lVar2 == 4" identifier == number_literal) )) (compound_statement "{\n          *(uint *)param_2 = uVar4;\n          return;\n        }" { (expression_statement "*(uint *)param_2 = uVar4;" (assignment_expression "*(uint *)param_2 = uVar4" (pointer_expression "*(uint *)param_2" * (cast_expression "(uint *)param_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }" if (parenthesized_expression "(lVar2 == 8)" ( (binary_expression "lVar2 == 8" identifier == number_literal) )) (compound_statement "{\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }" { (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" identifier = identifier) ;) (if_statement "if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }" if (parenthesized_expression "(((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0))" ( (binary_expression "((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)" (parenthesized_expression "((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))" ( (binary_expression "(*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0')" (parenthesized_expression "(*piVar1 == 0x20)" ( (binary_expression "*piVar1 == 0x20" (pointer_expression "*piVar1" * identifier) == number_literal) )) && (parenthesized_expression "(uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0')" ( (comma_expression "uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'" (assignment_expression "uVar6 = uVar5 & 0xffffffff" identifier = (binary_expression "uVar5 & 0xffffffff" identifier & number_literal)) , (binary_expression "*(char *)(param_1 + 0x38) != '\0'" (pointer_expression "*(char *)(param_1 + 0x38)" * (cast_expression "(char *)(param_1 + 0x38)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "((uVar5 & 0x80000000) != 0)" ( (binary_expression "(uVar5 & 0x80000000) != 0" (parenthesized_expression "(uVar5 & 0x80000000)" ( (binary_expression "uVar5 & 0x80000000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }" { (expression_statement "uVar6 = uVar6 | 0xffffffff00000000;" (assignment_expression "uVar6 = uVar6 | 0xffffffff00000000" identifier = (binary_expression "uVar6 | 0xffffffff00000000" identifier | number_literal)) ;) })) (expression_statement "*param_2 = uVar6;" (assignment_expression "*param_2 = uVar6" (pointer_expression "*param_2" * identifier) = identifier) ;) (return_statement "return;" return ;) })) }))) (expression_statement "FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");" (call_expression "FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer")" identifier (argument_list "("../../gold/script-sections.cc",0x470,"endian_write_to_buffer")" ( (string_literal ""../../gold/script-sections.cc"" " string_content ") , number_literal , (string_literal ""endian_write_to_buffer"" " string_content ") ))) ;) })) }) (else_clause "else if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    \n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }" else (if_statement "if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    \n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }" if (parenthesized_expression "(bVar7 != 0)" ( (binary_expression "bVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    \n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }" { (expression_statement "lVar2 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }" if (parenthesized_expression "(lVar2 == 2)" ( (binary_expression "lVar2 == 2" identifier == number_literal) )) (compound_statement "{\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }" { (expression_statement "*(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;" (assignment_expression "*(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8" (pointer_expression "*(ushort *)param_2" * (cast_expression "(ushort *)param_2" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar3 << 8 | uVar3 >> 8" (binary_expression "uVar3 << 8" identifier << number_literal) | (binary_expression "uVar3 >> 8" identifier >> number_literal))) ;) (return_statement "return;" return ;) })) (if_statement "if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }" if (parenthesized_expression "(lVar2 < 3)" ( (binary_expression "lVar2 < 3" identifier < number_literal) )) (compound_statement "{\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }" { (if_statement "if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }" if (parenthesized_expression "(lVar2 == 1)" ( (binary_expression "lVar2 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }" { (labeled_statement "LAB_00203bca:\n        *(char *)param_2 = (char)uVar5;" statement_identifier : (expression_statement "*(char *)param_2 = (char)uVar5;" (assignment_expression "*(char *)param_2 = (char)uVar5" (pointer_expression "*(char *)param_2" * (cast_expression "(char *)param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) (return_statement "return;" return ;) })) }) (else_clause "else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }" else (compound_statement "{\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }" { (if_statement "if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }" if (parenthesized_expression "(lVar2 == 4)" ( (binary_expression "lVar2 == 4" identifier == number_literal) )) (compound_statement "{\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }" { (expression_statement "*(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;" (assignment_expression "*(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (pointer_expression "*(uint *)param_2" * (cast_expression "(uint *)param_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar4 << 0x18" identifier << number_literal))) ;) (return_statement "return;" return ;) })) (if_statement "if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }" if (parenthesized_expression "(lVar2 == 8)" ( (binary_expression "lVar2 == 8" identifier == number_literal) )) (compound_statement "{\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }" { (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" identifier = identifier) ;) (if_statement "if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }" if (parenthesized_expression "(((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0))" ( (binary_expression "((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)" (parenthesized_expression "((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))" ( (binary_expression "(*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0')" (parenthesized_expression "(*piVar1 == 0x20)" ( (binary_expression "*piVar1 == 0x20" (pointer_expression "*piVar1" * identifier) == number_literal) )) && (parenthesized_expression "(uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0')" ( (comma_expression "uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'" (assignment_expression "uVar6 = uVar5 & 0xffffffff" identifier = (binary_expression "uVar5 & 0xffffffff" identifier & number_literal)) , (binary_expression "*(char *)(param_1 + 0x38) != '\0'" (pointer_expression "*(char *)(param_1 + 0x38)" * (cast_expression "(char *)(param_1 + 0x38)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "((uVar5 & 0x80000000) != 0)" ( (binary_expression "(uVar5 & 0x80000000) != 0" (parenthesized_expression "(uVar5 & 0x80000000)" ( (binary_expression "uVar5 & 0x80000000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }" { (expression_statement "uVar6 = uVar6 | 0xffffffff00000000;" (assignment_expression "uVar6 = uVar6 | 0xffffffff00000000" identifier = (binary_expression "uVar6 | 0xffffffff00000000" identifier | number_literal)) ;) })) (expression_statement "*param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;" (assignment_expression "*param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" ( (binary_expression "uVar6 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" ( (binary_expression "uVar6 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" ( (binary_expression "uVar6 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" ( (binary_expression "uVar6 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x38" identifier << number_literal))) ;) (return_statement "return;" return ;) })) }))) (expression_statement "FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");" (call_expression "FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer")" identifier (argument_list "("../../gold/script-sections.cc",0x470,"endian_write_to_buffer")" ( (string_literal ""../../gold/script-sections.cc"" " string_content ") , number_literal , (string_literal ""endian_write_to_buffer"" " string_content ") ))) ;) })))) (expression_statement "FUN_0016cdf0("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0016cdf0("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (return_statement return ;) })) (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 ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT & LIT)) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence '))) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (return_statement return ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT & LIT)) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence '))) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (return_statement return ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "void FUN_00203ae0(long param_1,ulong *param_2)\n\n{\n  int *piVar1;\n  long lVar2;\n  ushort uVar3;\n  ulong uVar5;\n  ulong uVar6;\n  byte bVar7;\n  uint uVar4;\n  \n  uVar5 = FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0);\n  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }\n  piVar1 = *(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n  bVar7 = *(byte *)(param_1 + 0x20) >> 1 & 1;\n  uVar3 = (ushort)uVar5;\n  uVar4 = (uint)uVar5;\n  if ((char)piVar1[1] == '\0') {\n    if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    \n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }\n  else if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    \n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }\n                    \n  FUN_0016cdf0("../../gold/output.h",0xcf,"data_size");\n}" (primitive_type "void") (function_declarator "FUN_00203ae0(long param_1,ulong *param_2)" (identifier "FUN_00203ae0") (parameter_list "(long param_1,ulong *param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "ulong *param_2" (type_identifier "ulong") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  int *piVar1;\n  long lVar2;\n  ushort uVar3;\n  ulong uVar5;\n  ulong uVar6;\n  byte bVar7;\n  uint uVar4;\n  \n  uVar5 = FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0);\n  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }\n  piVar1 = *(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);\n  bVar7 = *(byte *)(param_1 + 0x20) >> 1 & 1;\n  uVar3 = (ushort)uVar5;\n  uVar4 = (uint)uVar5;\n  if ((char)piVar1[1] == '\0') {\n    if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    \n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }\n  else if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    \n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }\n                    \n  FUN_0016cdf0("../../gold/output.h",0xcf,"data_size");\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "ushort uVar3;" (type_identifier "ushort") (identifier "uVar3") (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (declaration "ulong uVar6;" (type_identifier "ulong") (identifier "uVar6") (; ";")) (declaration "byte bVar7;" (type_identifier "byte") (identifier "bVar7") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (expression_statement "uVar5 = FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0);" (assignment_expression "uVar5 = FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0)" (identifier "uVar5") (= "=") (call_expression "FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0)" (identifier "FUN_0024d240") (argument_list "(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),\n                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),\n                       *(undefined8 *)(param_1 + 0x60),0,0,0)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x40)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x48)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (, ",") (number_literal "1") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x58)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x58)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")")))) (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x60)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x60)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" (* "*") (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_003be6b0 + 0x18" (identifier "PTR_DAT_003be6b0") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0016cdf0("../../gold/parameters.h",0x69,"target")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/parameters.h",0x69,"target")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar1 = *(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);" (assignment_expression "piVar1 = *(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" (* "*") (cast_expression "(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8)" (( "(") (binary_expression "*(long *)(PTR_DAT_003be6b0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_003be6b0 + 0x18)" (* "*") (cast_expression "(long *)(PTR_DAT_003be6b0 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_003be6b0 + 0x18" (identifier "PTR_DAT_003be6b0") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "bVar7 = *(byte *)(param_1 + 0x20) >> 1 & 1;" (assignment_expression "bVar7 = *(byte *)(param_1 + 0x20) >> 1 & 1" (identifier "bVar7") (= "=") (binary_expression "*(byte *)(param_1 + 0x20) >> 1 & 1" (binary_expression "*(byte *)(param_1 + 0x20) >> 1" (pointer_expression "*(byte *)(param_1 + 0x20)" (* "*") (cast_expression "(byte *)(param_1 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (>> ">>") (number_literal "1")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "uVar3 = (ushort)uVar5;" (assignment_expression "uVar3 = (ushort)uVar5" (identifier "uVar3") (= "=") (cast_expression "(ushort)uVar5" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar5"))) (; ";")) (expression_statement "uVar4 = (uint)uVar5;" (assignment_expression "uVar4 = (uint)uVar5" (identifier "uVar4") (= "=") (cast_expression "(uint)uVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar5"))) (; ";")) (if_statement "if ((char)piVar1[1] == '\0') {\n    if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    \n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }\n  else if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    \n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }" (if "if") (parenthesized_expression "((char)piVar1[1] == '\0')" (( "(") (binary_expression "(char)piVar1[1] == '\0'" (cast_expression "(char)piVar1[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    \n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }\n  }" ({ "{") (if_statement "if (bVar7 != 0) {\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    \n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }" (if "if") (parenthesized_expression "(bVar7 != 0)" (( "(") (binary_expression "bVar7 != 0" (identifier "bVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      lVar2 = *(long *)(param_1 + 0x10);\n      if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }\n      if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }\n                    \n      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n    }" ({ "{") (expression_statement "lVar2 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x10)" (identifier "lVar2") (= "=") (pointer_expression "*(long *)(param_1 + 0x10)" (* "*") (cast_expression "(long *)(param_1 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar2 == 2) {\n        *(ushort *)param_2 = uVar3;\n        return;\n      }" (if "if") (parenthesized_expression "(lVar2 == 2)" (( "(") (binary_expression "lVar2 == 2" (identifier "lVar2") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        *(ushort *)param_2 = uVar3;\n        return;\n      }" ({ "{") (expression_statement "*(ushort *)param_2 = uVar3;" (assignment_expression "*(ushort *)param_2 = uVar3" (pointer_expression "*(ushort *)param_2" (* "*") (cast_expression "(ushort *)param_2" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (= "=") (identifier "uVar3")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (lVar2 < 3) {\n        if (lVar2 == 1) goto LAB_00203bca;\n      }\n      else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }" (if "if") (parenthesized_expression "(lVar2 < 3)" (( "(") (binary_expression "lVar2 < 3" (identifier "lVar2") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n        if (lVar2 == 1) goto LAB_00203bca;\n      }" ({ "{") (if_statement "if (lVar2 == 1) goto LAB_00203bca;" (if "if") (parenthesized_expression "(lVar2 == 1)" (( "(") (binary_expression "lVar2 == 1" (identifier "lVar2") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_00203bca;" (goto "goto") (statement_identifier "LAB_00203bca") (; ";"))) (} "}")) (else_clause "else {\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }" (else "else") (compound_statement "{\n        if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }\n        if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }\n      }" ({ "{") (if_statement "if (lVar2 == 4) {\n          *(uint *)param_2 = uVar4;\n          return;\n        }" (if "if") (parenthesized_expression "(lVar2 == 4)" (( "(") (binary_expression "lVar2 == 4" (identifier "lVar2") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n          *(uint *)param_2 = uVar4;\n          return;\n        }" ({ "{") (expression_statement "*(uint *)param_2 = uVar4;" (assignment_expression "*(uint *)param_2 = uVar4" (pointer_expression "*(uint *)param_2" (* "*") (cast_expression "(uint *)param_2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (= "=") (identifier "uVar4")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (lVar2 == 8) {\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }" (if "if") (parenthesized_expression "(lVar2 == 8)" (( "(") (binary_expression "lVar2 == 8" (identifier "lVar2") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n          uVar6 = uVar5;\n          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }\n          *param_2 = uVar6;\n          return;\n        }" ({ "{") (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" (identifier "uVar6") (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)) {\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }" (if "if") (parenthesized_expression "(((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0))" (( "(") (binary_expression "((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n             && ((uVar5 & 0x80000000) != 0)" (parenthesized_expression "((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))" (( "(") (binary_expression "(*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0')" (parenthesized_expression "(*piVar1 == 0x20)" (( "(") (binary_expression "*piVar1 == 0x20" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (== "==") (number_literal "0x20")) () ")")) (&& "&&") (parenthesized_expression "(uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0')" (( "(") (comma_expression "uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'" (assignment_expression "uVar6 = uVar5 & 0xffffffff" (identifier "uVar6") (= "=") (binary_expression "uVar5 & 0xffffffff" (identifier "uVar5") (& "&") (number_literal "0xffffffff"))) (, ",") (binary_expression "*(char *)(param_1 + 0x38) != '\0'" (pointer_expression "*(char *)(param_1 + 0x38)" (* "*") (cast_expression "(char *)(param_1 + 0x38)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar5 & 0x80000000) != 0)" (( "(") (binary_expression "(uVar5 & 0x80000000) != 0" (parenthesized_expression "(uVar5 & 0x80000000)" (( "(") (binary_expression "uVar5 & 0x80000000" (identifier "uVar5") (& "&") (number_literal "0x80000000")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            uVar6 = uVar6 | 0xffffffff00000000;\n          }" ({ "{") (expression_statement "uVar6 = uVar6 | 0xffffffff00000000;" (assignment_expression "uVar6 = uVar6 | 0xffffffff00000000" (identifier "uVar6") (= "=") (binary_expression "uVar6 | 0xffffffff00000000" (identifier "uVar6") (| "|") (number_literal "0xffffffff00000000"))) (; ";")) (} "}"))) (expression_statement "*param_2 = uVar6;" (assignment_expression "*param_2 = uVar6" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "uVar6")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (expression_statement "FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");" (call_expression "FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/script-sections.cc",0x470,"endian_write_to_buffer")" (( "(") (string_literal ""../../gold/script-sections.cc"" (" """) (string_content "../../gold/script-sections.cc") (" """)) (, ",") (number_literal "0x470") (, ",") (string_literal ""endian_write_to_buffer"" (" """) (string_content "endian_write_to_buffer") (" """)) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    \n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }" (else "else") (if_statement "if (bVar7 != 0) {\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    \n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }" (if "if") (parenthesized_expression "(bVar7 != 0)" (( "(") (binary_expression "bVar7 != 0" (identifier "bVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    lVar2 = *(long *)(param_1 + 0x10);\n    if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }\n    if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }\n                    \n    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");\n  }" ({ "{") (expression_statement "lVar2 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x10)" (identifier "lVar2") (= "=") (pointer_expression "*(long *)(param_1 + 0x10)" (* "*") (cast_expression "(long *)(param_1 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar2 == 2) {\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }" (if "if") (parenthesized_expression "(lVar2 == 2)" (( "(") (binary_expression "lVar2 == 2" (identifier "lVar2") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;\n      return;\n    }" ({ "{") (expression_statement "*(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;" (assignment_expression "*(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8" (pointer_expression "*(ushort *)param_2" (* "*") (cast_expression "(ushort *)param_2" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (= "=") (binary_expression "uVar3 << 8 | uVar3 >> 8" (binary_expression "uVar3 << 8" (identifier "uVar3") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (lVar2 < 3) {\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }\n    else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }" (if "if") (parenthesized_expression "(lVar2 < 3)" (( "(") (binary_expression "lVar2 < 3" (identifier "lVar2") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n      if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }\n    }" ({ "{") (if_statement "if (lVar2 == 1) {\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }" (if "if") (parenthesized_expression "(lVar2 == 1)" (( "(") (binary_expression "lVar2 == 1" (identifier "lVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\nLAB_00203bca:\n        *(char *)param_2 = (char)uVar5;\n        return;\n      }" ({ "{") (labeled_statement "LAB_00203bca:\n        *(char *)param_2 = (char)uVar5;" (statement_identifier "LAB_00203bca") (: ":") (expression_statement "*(char *)param_2 = (char)uVar5;" (assignment_expression "*(char *)param_2 = (char)uVar5" (pointer_expression "*(char *)param_2" (* "*") (cast_expression "(char *)param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (= "=") (cast_expression "(char)uVar5" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar5"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }" (else "else") (compound_statement "{\n      if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }\n      if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }\n    }" ({ "{") (if_statement "if (lVar2 == 4) {\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }" (if "if") (parenthesized_expression "(lVar2 == 4)" (( "(") (binary_expression "lVar2 == 4" (identifier "lVar2") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n        *(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        return;\n      }" ({ "{") (expression_statement "*(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;" (assignment_expression "*(uint *)param_2 =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (pointer_expression "*(uint *)param_2" (* "*") (cast_expression "(uint *)param_2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (= "=") (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" (( "(") (binary_expression "uVar4 & 0xff0000" (identifier "uVar4") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" (( "(") (binary_expression "uVar4 & 0xff00" (identifier "uVar4") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar4 << 0x18" (identifier "uVar4") (<< "<<") (number_literal "0x18")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (lVar2 == 8) {\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }" (if "if") (parenthesized_expression "(lVar2 == 8)" (( "(") (binary_expression "lVar2 == 8" (identifier "lVar2") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n        uVar6 = uVar5;\n        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }\n        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;\n        return;\n      }" ({ "{") (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" (identifier "uVar6") (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)) {\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }" (if "if") (parenthesized_expression "(((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0))" (( "(") (binary_expression "((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))\n           && ((uVar5 & 0x80000000) != 0)" (parenthesized_expression "((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))" (( "(") (binary_expression "(*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0')" (parenthesized_expression "(*piVar1 == 0x20)" (( "(") (binary_expression "*piVar1 == 0x20" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (== "==") (number_literal "0x20")) () ")")) (&& "&&") (parenthesized_expression "(uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0')" (( "(") (comma_expression "uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'" (assignment_expression "uVar6 = uVar5 & 0xffffffff" (identifier "uVar6") (= "=") (binary_expression "uVar5 & 0xffffffff" (identifier "uVar5") (& "&") (number_literal "0xffffffff"))) (, ",") (binary_expression "*(char *)(param_1 + 0x38) != '\0'" (pointer_expression "*(char *)(param_1 + 0x38)" (* "*") (cast_expression "(char *)(param_1 + 0x38)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar5 & 0x80000000) != 0)" (( "(") (binary_expression "(uVar5 & 0x80000000) != 0" (parenthesized_expression "(uVar5 & 0x80000000)" (( "(") (binary_expression "uVar5 & 0x80000000" (identifier "uVar5") (& "&") (number_literal "0x80000000")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          uVar6 = uVar6 | 0xffffffff00000000;\n        }" ({ "{") (expression_statement "uVar6 = uVar6 | 0xffffffff00000000;" (assignment_expression "uVar6 = uVar6 | 0xffffffff00000000" (identifier "uVar6") (= "=") (binary_expression "uVar6 | 0xffffffff00000000" (identifier "uVar6") (| "|") (number_literal "0xffffffff00000000"))) (; ";")) (} "}"))) (expression_statement "*param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38;" (assignment_expression "*param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28\n                   | uVar6 << 0x38" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |\n                   (uVar6 & 0xff000000) << 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |\n                   (uVar6 & 0xff0000000000) >> 0x18" (binary_expression "uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28" (binary_expression "uVar6 >> 0x38" (identifier "uVar6") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar6 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar6 & 0xff000000000000)" (( "(") (binary_expression "uVar6 & 0xff000000000000" (identifier "uVar6") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar6 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xff0000000000)" (( "(") (binary_expression "uVar6 & 0xff0000000000" (identifier "uVar6") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00000000) >> 8" (parenthesized_expression "(uVar6 & 0xff00000000)" (( "(") (binary_expression "uVar6 & 0xff00000000" (identifier "uVar6") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff000000) << 8" (parenthesized_expression "(uVar6 & 0xff000000)" (( "(") (binary_expression "uVar6 & 0xff000000" (identifier "uVar6") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff0000) << 0x18" (parenthesized_expression "(uVar6 & 0xff0000)" (( "(") (binary_expression "uVar6 & 0xff0000" (identifier "uVar6") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar6 & 0xff00) << 0x28" (parenthesized_expression "(uVar6 & 0xff00)" (( "(") (binary_expression "uVar6 & 0xff00" (identifier "uVar6") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar6 << 0x38" (identifier "uVar6") (<< "<<") (number_literal "0x38")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (expression_statement "FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");" (call_expression "FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/script-sections.cc",0x470,"endian_write_to_buffer")" (( "(") (string_literal ""../../gold/script-sections.cc"" (" """) (string_content "../../gold/script-sections.cc") (" """)) (, ",") (number_literal "0x470") (, ",") (string_literal ""endian_write_to_buffer"" (" """) (string_content "endian_write_to_buffer") (" """)) () ")"))) (; ";")) (} "}"))))) (expression_statement "FUN_0016cdf0("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0016cdf0("../../gold/output.h",0xcf,"data_size")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/output.h",0xcf,"data_size")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xcf") (, ",") (string_literal ""data_size"" (" """) (string_content "data_size") (" """)) () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void do_write_to_buffer(Output_data_expression * this, uchar * buf) */

void __thiscall
gold::type_1::function_1(type_1 *this,type_2 *buf)

{
  int *piVar1;
  long var_4;
  type_3 var_7;
  uint64_t var_5;
  uint64_t var_6;
  type_4 var_3;
  type_5 var_8;
  
  var_5 = Expression::var_1
                    (this->val_,this->symtab_,this->layout_,true,this->dot_value_,this->dot_section_
                     ,(type_6 **)0x0,(uint64_t *)0x0,false);
  if (parameters->target_ == (type_7 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/parameters.h",0x69,"target");
  }
  piVar1 = *(int **)(parameters->target_ + 8);
  var_3 = (type_4)(this->super_Output_section_data).super_Output_data.field_0x20 >> 1 & 1;
  var_7 = (type_3)var_5;
  var_8 = (type_5)var_5;
  if ((char)piVar1[1] == '\0') {
    if (var_3 != 0) {
      var_4 = (this->super_Output_section_data).super_Output_data.data_size_;
      if (var_4 == 2) {
        *(type_3 *)buf = var_7;
        return;
      }
      if (var_4 < 3) {
        if (var_4 == 1) goto LAB_00203bca;
      }
      else {
        if (var_4 == 4) {
          *(type_5 *)buf = var_8;
          return;
        }
        if (var_4 == 8) {
          var_6 = var_5;
          if (((*piVar1 == 0x20) && (var_6 = var_5 & 0xffffffff, this->is_signed_ != false)) &&
             ((var_5 & 0x80000000) != 0)) {
            var_6 = var_6 | 0xffffffff00000000;
          }
          *(uint64_t *)buf = var_6;
          return;
        }
      }
                    /* WARNING: Subroutine does not return */
      var_2("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");
    }
  }
  else if (var_3 != 0) {
    var_4 = (this->super_Output_section_data).super_Output_data.data_size_;
    if (var_4 == 2) {
      *(type_3 *)buf = var_7 << 8 | var_7 >> 8;
      return;
    }
    if (var_4 < 3) {
      if (var_4 == 1) {
LAB_00203bca:
        *buf = (type_2)var_5;
        return;
      }
    }
    else {
      if (var_4 == 4) {
        *(type_5 *)buf = var_8 >> 0x18 | (var_8 & 0xff0000) >> 8 | (var_8 & 0xff00) << 8 |
                       var_8 << 0x18;
        return;
      }
      if (var_4 == 8) {
        var_6 = var_5;
        if (((*piVar1 == 0x20) && (var_6 = var_5 & 0xffffffff, this->is_signed_ != false)) &&
           ((var_5 & 0x80000000) != 0)) {
          var_6 = var_6 | 0xffffffff00000000;
        }
        *(uint64_t *)buf =
             var_6 >> 0x38 | (var_6 & 0xff000000000000) >> 0x28 | (var_6 & 0xff0000000000) >> 0x18 |
             (var_6 & 0xff00000000) >> 8 | (var_6 & 0xff000000) << 8 | (var_6 & 0xff0000) << 0x18 |
             (var_6 & 0xff00) << 0x28 | var_6 << 0x38;
        return;
      }
    }
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");
  }
                    /* WARNING: Subroutine does not return */
  var_2("../../gold/output.h",0xcf,"data_size");
}


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

void MASKED(long param_1,ulong *param_2)

{
  int *piVar1;
  long lVar2;
  ushort uVar3;
  ulong uVar5;
  ulong uVar6;
  byte bVar7;
  uint uVar4;
  
  uVar5 = FUN_0024d240(*(undefined8 *)(param_1 + 0x40),*(undefined8 *)(param_1 + 0x48),
                       *(undefined8 *)(param_1 + 0x50),1,*(undefined8 *)(param_1 + 0x58),
                       *(undefined8 *)(param_1 + 0x60),0,0,0);
  if (*(long *)(PTR_DAT_003be6b0 + 0x18) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/parameters.h",0x69,"target");
  }
  piVar1 = *(int **)(*(long *)(PTR_DAT_003be6b0 + 0x18) + 8);
  bVar7 = *(byte *)(param_1 + 0x20) >> 1 & 1;
  uVar3 = (ushort)uVar5;
  uVar4 = (uint)uVar5;
  if ((char)piVar1[1] == '\0') {
    if (bVar7 != 0) {
      lVar2 = *(long *)(param_1 + 0x10);
      if (lVar2 == 2) {
        *(ushort *)param_2 = uVar3;
        return;
      }
      if (lVar2 < 3) {
        if (lVar2 == 1) goto LAB_00203bca;
      }
      else {
        if (lVar2 == 4) {
          *(uint *)param_2 = uVar4;
          return;
        }
        if (lVar2 == 8) {
          uVar6 = uVar5;
          if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))
             && ((uVar5 & 0x80000000) != 0)) {
            uVar6 = uVar6 | 0xffffffff00000000;
          }
          *param_2 = uVar6;
          return;
        }
      }
                    /* WARNING: Subroutine does not return */
      FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");
    }
  }
  else if (bVar7 != 0) {
    lVar2 = *(long *)(param_1 + 0x10);
    if (lVar2 == 2) {
      *(ushort *)param_2 = uVar3 << 8 | uVar3 >> 8;
      return;
    }
    if (lVar2 < 3) {
      if (lVar2 == 1) {
LAB_00203bca:
        *(char *)param_2 = (char)uVar5;
        return;
      }
    }
    else {
      if (lVar2 == 4) {
        *(uint *)param_2 =
             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;
        return;
      }
      if (lVar2 == 8) {
        uVar6 = uVar5;
        if (((*piVar1 == 0x20) && (uVar6 = uVar5 & 0xffffffff, *(char *)(param_1 + 0x38) != '\0'))
           && ((uVar5 & 0x80000000) != 0)) {
          uVar6 = uVar6 | 0xffffffff00000000;
        }
        *param_2 = uVar6 >> 0x38 | (uVar6 & 0xff000000000000) >> 0x28 |
                   (uVar6 & 0xff0000000000) >> 0x18 | (uVar6 & 0xff00000000) >> 8 |
                   (uVar6 & 0xff000000) << 8 | (uVar6 & 0xff0000) << 0x18 | (uVar6 & 0xff00) << 0x28
                   | uVar6 << 0x38;
        return;
      }
    }
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/script-sections.cc",0x470,"endian_write_to_buffer");
  }
                    /* WARNING: Subroutine does not return */
  FUN_0016cdf0("../../gold/output.h",0xcf,"data_size");
}

