
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void do_write(Output_data_plt_x86_64<64> * this, Output_file * of) */

void __thiscall
anon_unknown.dwarf_32964f::Output_data_plt_x86_64<64>::do_write
          (Output_data_plt_x86_64<64> *this,Output_file *of)

{
  off_t *poVar1;
  uint uVar2;
  uint uVar3;
  Output_data_got_plt_x86_64 *pOVar4;
  Output_data_got<64,_false> *pOVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  uint64_t uVar9;
  bool bVar10;
  uchar *puVar11;
  uint uVar12;
  uchar *puVar13;
  int iVar14;
  uint uVar15;
  uint uVar16;
  int iVar17;
  int iVar18;
  int iVar19;
  Output_data_space *pOVar20;
  uchar *local_60;
  uchar *local_40;
  
  if ((this->field_0x1c & 4) == 0) goto LAB_0005a28e;
  uVar2 = *(uint *)&this->field_0x14;
  if ((this->field_0x1c & 2) == 0) goto LAB_0005a252;
  uVar3 = *(uint *)&this->field_0xc;
  if (*(int *)&this->field_0x10 == 0) {
    if ((-1 < *(int *)&this->field_0x18) &&
       (iVar18 = *(int *)((int)&of->file_size_ + 4),
       iVar19 = *(int *)&this->field_0x18 + (uint)CARRY4(uVar3,uVar2),
       uVar15 = (uint)((uint)of->file_size_ < uVar3 + uVar2), iVar14 = iVar18 - iVar19,
       (SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15)) == (int)(iVar14 - uVar15) < 0)) {
      puVar11 = of->base_ + uVar2;
      pOVar4 = this->got_plt_;
      if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.
           field_0x1c & 4) == 0) {
LAB_0005a28e:
                    /* WARNING: Subroutine does not return */
        gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");
      }
      iVar18 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.
                              super_Output_data.offset_ + 4);
      uVar2 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.
                    super_Output_data.offset_;
      bVar10 = gold::Parameters::incremental_update(gold::parameters);
      pOVar4 = this->got_plt_;
      if (bVar10) {
        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.
             field_0x1c & 2) == 0) goto LAB_0005a252;
        pOVar20 = this->got_irelative_;
        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.
                       super_Output_data.data_size_;
        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.
                                super_Output_data.data_size_ + 4);
      }
      else {
        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.
             field_0x1c & 2) == 0) goto LAB_0005a252;
        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.
                       super_Output_data.data_size_;
        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.
                                super_Output_data.data_size_ + 4);
        pOVar20 = this->got_irelative_;
        if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.
             field_0x1c & 4) == 0) goto LAB_0005a28e;
        if (iVar18 + iVar14 + (uint)CARRY4(uVar2,uVar15) !=
            *(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.
                           super_Output_data.offset_ + 4) ||
            (int)(pOVar20->super_Output_section_data_build).super_Output_section_data.
                 super_Output_data.offset_ != uVar2 + uVar15) {
                    /* WARNING: Subroutine does not return */
          gold::do_gold_unreachable("../../gold/x86_64.cc",0xa12,"do_write");
        }
      }
      if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.
           field_0x1c & 2) == 0) {
LAB_0005a252:
                    /* WARNING: Subroutine does not return */
        gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");
      }
      poVar1 = &(pOVar20->super_Output_section_data_build).super_Output_section_data.
                super_Output_data.data_size_;
      uVar12 = uVar15 + (int)*poVar1;
      if (iVar14 + *(int *)((int)&(pOVar20->super_Output_section_data_build).
                                  super_Output_section_data.super_Output_data.data_size_ + 4) +
          (uint)CARRY4(uVar15,(uint)*poVar1) != 0) goto LAB_0005a271;
      if (-1 < iVar18) {
        iVar18 = iVar18 + (uint)CARRY4(uVar12,uVar2);
        iVar14 = *(int *)((int)&of->file_size_ + 4);
        uVar15 = (uint)((uint)of->file_size_ < uVar12 + uVar2);
        iVar19 = iVar14 - iVar18;
        if ((SBORROW4(iVar14,iVar18) != SBORROW4(iVar19,uVar15)) == (int)(iVar19 - uVar15) < 0) {
          puVar13 = of->base_ + uVar2;
          if ((this->field_0x1c & 1) != 0) {
            uVar2 = *(uint *)&this->field_0x4;
            iVar18 = *(int *)&this->field_0x8;
            pOVar5 = this->got_;
            if (((pOVar5->super_Output_data_got_base).super_Output_section_data_build.
                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0) {
              uVar6 = *(undefined4 *)
                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.
                              super_Output_section_data.super_Output_data.address_ + 4);
              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.
                      super_Output_section_data.super_Output_data.address_;
              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.
                   super_Output_data.field_0x1c & 1) != 0) {
                uVar7 = *(undefined4 *)
                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.
                                super_Output_data.address_ + 4);
                uVar8 = (undefined4)
                        (pOVar4->super_Output_section_data_build).super_Output_section_data.
                        super_Output_data.address_;
                (**(code **)(this->plt_eh_frame_cie_size + 0x68))
                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);
                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);
                local_60 = puVar11 + iVar14;
                local_40 = puVar13 + 0x18;
                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);
                iVar14 = this->irelative_count_ + this->count_;
                if (iVar14 != 0) {
                  iVar19 = 0;
                  do {
                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))
                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,
                                        uVar15,iVar19);
                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;
                    iVar17 = this->plt_eh_frame_cie_size;
                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =
                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);
                    iVar19 = iVar19 + 1;
                    iVar17 = (**(code **)(iVar17 + 100))(this);
                    local_60 = local_60 + iVar17;
                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);
                    uVar15 = uVar15 + iVar17;
                  } while (iVar14 != iVar19);
                  local_40 = local_40 + iVar14 * 8;
                }
                if (this->tlsdesc_got_offset_ != 0xffffffff) {
                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))
                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,
                             this->tlsdesc_got_offset_,uVar15);
                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);
                  local_60 = local_60 + iVar18;
                }
                if ((int)local_60 - (int)puVar11 == uVar3) {
                  if ((int)local_40 - (int)puVar13 == uVar12) {
                    return;
                  }
                    /* WARNING: Subroutine does not return */
                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");
                }
                    /* WARNING: Subroutine does not return */
                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");
              }
            }
          }
                    /* WARNING: Subroutine does not return */
          gold::do_gold_unreachable("../../gold/output.h",0xc5,"address");
        }
      }
    }
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");
  }
LAB_0005a271:
                    /* WARNING: Subroutine does not return */
  gold::do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void FUN_00059f20(int *param_1,int param_2)

{
  uint uVar1;
  uint uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  char cVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  int iVar11;
  int iVar12;
  undefined4 uVar13;
  undefined4 unaff_EBX;
  int iVar14;
  int iVar15;
  uint uVar16;
  int iVar17;
  undefined8 uVar18;
  int local_60;
  int local_40;
  
  if ((*(byte *)(param_1 + 7) & 4) == 0) goto LAB_0005a28e;
  uVar1 = param_1[5];
  if ((*(byte *)(param_1 + 7) & 2) == 0) goto LAB_0005a252;
  uVar2 = param_1[3];
  if (param_1[4] == 0) {
    if ((-1 < param_1[6]) &&
       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),
       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),
       iVar9 = *(int *)(param_2 + 0xc) - iVar14,
       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==
       (int)(iVar9 - uVar16) < 0)) {
      iVar14 = uVar1 + *(int *)(param_2 + 0x10);
      iVar9 = param_1[0xf];
      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {
LAB_0005a28e:
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);
      }
      iVar12 = *(int *)(iVar9 + 0x18);
      uVar1 = *(uint *)(iVar9 + 0x14);
      cVar7 = FUN_0011a440(DAT_0033f2f0);
      iVar9 = param_1[0xf];
      if (cVar7 == '\0') {
        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;
        uVar16 = *(uint *)(iVar9 + 0xc);
        iVar17 = *(int *)(iVar9 + 0x10);
        iVar15 = param_1[0x10];
        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;
        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||
            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {
                    /* WARNING: Subroutine does not return */
          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);
        }
      }
      else {
        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;
        iVar15 = param_1[0x10];
        uVar16 = *(uint *)(iVar9 + 0xc);
        iVar17 = *(int *)(iVar9 + 0x10);
      }
      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {
LAB_0005a252:
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/output.h",0xcf,"data_size");
      }
      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);
      unaff_EBX = 0;
      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)
      goto LAB_0005a271;
      if (-1 < iVar12) {
        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);
        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);
        iVar15 = *(int *)(param_2 + 0xc) - iVar12;
        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==
            (int)(iVar15 - uVar16) < 0) {
          iVar12 = uVar1 + *(int *)(param_2 + 0x10);
          if ((*(byte *)(param_1 + 7) & 1) != 0) {
            uVar1 = param_1[1];
            iVar15 = param_1[2];
            iVar17 = param_1[0xe];
            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {
              uVar3 = *(undefined4 *)(iVar17 + 8);
              uVar4 = *(undefined4 *)(iVar17 + 4);
              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {
                uVar5 = *(undefined4 *)(iVar9 + 8);
                uVar6 = *(undefined4 *)(iVar9 + 4);
                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);
                local_60 = (**(code **)(*param_1 + 100))(param_1);
                local_60 = local_60 + iVar14;
                local_40 = iVar12 + 0x18;
                uVar18 = (**(code **)(*param_1 + 100))(param_1);
                uVar16 = (uint)uVar18;
                iVar9 = param_1[0x12] + param_1[0x11];
                if (iVar9 != 0) {
                  iVar17 = 0;
                  do {
                    uVar10 = (**(code **)(*param_1 + 0x6c))
                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,
                                        uVar16,iVar17);
                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;
                    iVar11 = *param_1;
                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =
                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);
                    iVar17 = iVar17 + 1;
                    iVar11 = (**(code **)(iVar11 + 100))(param_1);
                    local_60 = local_60 + iVar11;
                    iVar11 = (**(code **)(*param_1 + 100))(param_1);
                    uVar16 = uVar16 + iVar11;
                    uVar18 = CONCAT44(iVar9,uVar16);
                  } while (iVar9 != iVar17);
                  local_40 = local_40 + iVar9 * 8;
                }
                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);
                if (param_1[0x13] != -1) {
                  (**(code **)(*param_1 + 0x70))
                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],
                             (int)uVar18);
                  uVar18 = (**(code **)(*param_1 + 100))(param_1);
                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);
                  local_60 = local_60 + (int)uVar18;
                }
                if (local_60 - iVar14 == uVar2) {
                  if (local_40 - iVar12 == uVar8) {
                    return;
                  }
                    /* WARNING: Subroutine does not return */
                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);
                }
                    /* WARNING: Subroutine does not return */
                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);
              }
            }
          }
                    /* WARNING: Subroutine does not return */
          FUN_0008b620("../../gold/output.h",0xc5,"address");
        }
      }
    }
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");
  }
LAB_0005a271:
                    /* WARNING: Subroutine does not return */
  FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX);
}


CALL 0x00058c42
ADD EAX,0x2e50db
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x5c
MOV ESI,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0x3c],EAX
MOV EAX,dword ptr [ESP + 0x74]
MOVZX ECX,byte ptr [ESI + 0x1c]
MOV dword ptr [ESP + 0xc],EAX
TEST CL,0x4
JZ 0x0005a28e
AND ECX,0x2
MOV EAX,dword ptr [ESI + 0x14]
MOV EDX,dword ptr [ESI + 0x18]
JZ 0x0005a252
MOV EDI,dword ptr [ESI + 0xc]
MOV EBP,dword ptr [ESI + 0x10]
MOV dword ptr [ESP + 0x30],EDI
MOV dword ptr [ESP + 0x34],EBP
TEST EBP,EBP
JNZ 0x0005a271
TEST EDX,EDX
JS 0x0005a236
MOV EDI,dword ptr [ESP + 0xc]
MOV ECX,dword ptr [ESP + 0x30]
MOV EBX,dword ptr [ESP + 0x34]
ADD ECX,EAX
MOV EBP,dword ptr [EDI + 0xc]
ADC EBX,EDX
CMP dword ptr [EDI + 0x8],ECX
SBB EBP,EBX
JL 0x0005a236
ADD EAX,dword ptr [EDI + 0x10]
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,dword ptr [ESI + 0x3c]
TEST byte ptr [EAX + 0x1c],0x4
JZ 0x0005a28e
MOV EDX,dword ptr [EAX + 0x18]
MOV EAX,dword ptr [EAX + 0x14]
SUB ESP,0xc
MOV dword ptr [ESP + 0x1c],EAX
MOV EDI,EAX
MOV EBP,EDX
MOV dword ptr [ESP + 0x20],EDX
MOV EBX,dword ptr [ESP + 0x48]
LEA EAX,[EBX + 0x2f0]
PUSH dword ptr [EAX]
CALL 0x0011a440
ADD ESP,0x10
MOV ECX,dword ptr [ESI + 0x3c]
TEST AL,AL
JZ 0x0005a1e0
TEST byte ptr [ECX + 0x1c],0x2
JZ 0x0005a252
MOV EBX,dword ptr [ESI + 0x40]
MOV EAX,dword ptr [ECX + 0xc]
MOV EDX,dword ptr [ECX + 0x10]
TEST byte ptr [EBX + 0x1c],0x2
JZ 0x0005a252
ADD EAX,dword ptr [EBX + 0xc]
ADC EDX,dword ptr [EBX + 0x10]
MOV EBX,EAX
MOV EBP,EDX
MOV dword ptr [ESP + 0x44],EDX
XOR EDX,EDX
XOR EBX,EAX
MOV dword ptr [ESP + 0x40],EAX
OR EBP,EBX
JNZ 0x0005a271
MOV EBP,dword ptr [ESP + 0x14]
MOV EDI,dword ptr [ESP + 0x10]
TEST EBP,EBP
JS 0x0005a236
MOV EBX,dword ptr [ESP + 0xc]
ADD EAX,EDI
MOV dword ptr [ESP + 0x10],EAX
ADC EDX,EBP
MOV EAX,dword ptr [EBX + 0xc]
MOV dword ptr [ESP + 0x14],EDX
MOV EDX,dword ptr [ESP + 0x10]
CMP dword ptr [EBX + 0x8],EDX
MOV EBX,EAX
SBB EBX,dword ptr [ESP + 0x14]
JL 0x0005a236
MOV EBX,dword ptr [ESP + 0xc]
MOV EAX,EDI
ADD EAX,dword ptr [EBX + 0x10]
MOV dword ptr [ESP + 0x18],EAX
TEST byte ptr [ESI + 0x1c],0x1
JZ 0x0005a2ab
MOV EDI,dword ptr [ESI + 0x4]
MOV EBP,dword ptr [ESI + 0x8]
MOV EAX,dword ptr [ESI + 0x38]
MOV dword ptr [ESP + 0x10],EDI
MOV dword ptr [ESP + 0x14],EBP
TEST byte ptr [EAX + 0x1c],0x1
JZ 0x0005a2ab
MOV EDX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x4c],EDX
MOV dword ptr [ESP + 0x48],EAX
TEST byte ptr [ECX + 0x1c],0x1
JZ 0x0005a2ab
MOV EDX,dword ptr [ECX + 0x8]
MOV EAX,dword ptr [ECX + 0x4]
SUB ESP,0x8
MOV ECX,EDX
MOV dword ptr [ESP + 0x28],EAX
MOV EDX,EAX
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESP + 0x2c],ECX
PUSH EBP
PUSH EDI
PUSH ECX
PUSH EDX
MOV EDI,dword ptr [ESP + 0x50]
PUSH EDI
PUSH ESI
CALL dword ptr [EAX + 0x68]
MOV EAX,dword ptr [ESI]
ADD ESP,0x14
PUSH ESI
CALL dword ptr [EAX + 0x64]
ADD EAX,EDI
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x28]
ADD EAX,0x18
MOV dword ptr [ESP + 0x3c],EAX
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESP],ESI
CALL dword ptr [EAX + 0x64]
ADD ESP,0x10
MOV EBP,EAX
MOV EAX,dword ptr [ESI + 0x48]
ADD EAX,dword ptr [ESI + 0x44]
MOV dword ptr [ESP + 0x28],EAX
JZ 0x0005a171
XOR EDI,EDI
LEA ESI,[ESI]
MOV EAX,dword ptr [ESI]
SUB ESP,0xc
LEA EDX,[EDI*0x8 + 0x18]
XOR EBX,EBX
PUSH EDI
PUSH EBP
PUSH EDX
PUSH dword ptr [ESP + 0x2c]
PUSH dword ptr [ESP + 0x2c]
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x34]
PUSH ESI
CALL dword ptr [EAX + 0x6c]
XOR EDX,EDX
MOV ECX,EAX
MOV EAX,EBP
ADD EAX,ECX
MOV ECX,dword ptr [ESP + 0x48]
ADC EDX,EBX
ADD EAX,dword ptr [ESP + 0x40]
ADC EDX,dword ptr [ESP + 0x44]
ADD ESP,0x24
MOV dword ptr [ECX + EDI*0x8 + 0x18],EAX
MOV EAX,dword ptr [ESI]
MOV dword ptr [ECX + EDI*0x8 + 0x1c],EDX
ADD EDI,0x1
PUSH ESI
CALL dword ptr [EAX + 0x64]
ADD dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESP],ESI
CALL dword ptr [EAX + 0x64]
ADD ESP,0x10
ADD EBP,EAX
CMP dword ptr [ESP + 0x28],EDI
JNZ 0x0005a0f8
MOV EAX,dword ptr [ESP + 0x2c]
MOV EDX,dword ptr [ESP + 0x28]
LEA EAX,[EAX + EDX*0x8]
MOV dword ptr [ESP + 0x2c],EAX
MOV EAX,dword ptr [ESI + 0x4c]
CMP EAX,-0x1
JZ 0x0005a1b3
SUB ESP,0x8
MOV EDX,dword ptr [ESI]
PUSH EBP
PUSH EAX
PUSH dword ptr [ESP + 0x5c]
PUSH dword ptr [ESP + 0x5c]
PUSH dword ptr [ESP + 0x2c]
PUSH dword ptr [ESP + 0x2c]
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x44]
MOV EDI,dword ptr [ESP + 0x34]
PUSH EDI
PUSH ESI
CALL dword ptr [EDX + 0x70]
MOV EAX,dword ptr [ESI]
ADD ESP,0x24
PUSH ESI
CALL dword ptr [EAX + 0x64]
ADD EDI,EAX
MOV dword ptr [ESP + 0x1c],EDI
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xc]
SUB EAX,dword ptr [ESP + 0x38]
CMP EAX,dword ptr [ESP + 0x30]
JNZ 0x0005a2ca
MOV EAX,dword ptr [ESP + 0x2c]
SUB EAX,dword ptr [ESP + 0x18]
CMP EAX,dword ptr [ESP + 0x40]
JNZ 0x0005a2e7
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST byte ptr [ECX + 0x1c],0x2
JZ 0x0005a252
MOV EAX,dword ptr [ECX + 0xc]
MOV EDX,dword ptr [ECX + 0x10]
MOV EBX,dword ptr [ESI + 0x40]
ADD EDI,EAX
ADC EBP,EDX
TEST byte ptr [EBX + 0x1c],0x4
JZ 0x0005a28e
MOV dword ptr [ESP + 0x1c],EBP
MOV EBP,dword ptr [EBX + 0x14]
MOV dword ptr [ESP + 0x18],EDI
XOR EBP,EDI
MOV EDI,dword ptr [ESP + 0x1c]
XOR EDI,dword ptr [EBX + 0x18]
OR EDI,EBP
JZ 0x00059ff4
PUSH ECX
MOV EBX,dword ptr [ESP + 0x40]
LEA EAX,[EBX + 0xfff11ac0]
PUSH EAX
LEA EAX,[EBX + 0xfff0f08e]
PUSH 0xa12
PUSH EAX
CALL 0x0008b620
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x40]
LEA EAX,[EBX + 0xfff12250]
PUSH EAX
LEA EAX,[EBX + 0xfff0c35d]
PUSH 0x6f
PUSH EAX
CALL 0x0008b620
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x40]
LEA EAX,[EBX + 0xfff12270]
PUSH EAX
LEA EAX,[EBX + 0xfff0c35d]
PUSH 0xcf
PUSH EAX
CALL 0x0008b620
PUSH EBX
MOV EBX,dword ptr [ESP + 0x40]
LEA EAX,[EBX + 0xfff12260]
PUSH EAX
LEA EAX,[EBX + 0xfff0c4b4]
PUSH 0xc0
PUSH EAX
CALL 0x0008b620
PUSH ESI
MOV EBX,dword ptr [ESP + 0x40]
LEA EAX,[EBX + 0xfff1227c]
PUSH EAX
LEA EAX,[EBX + 0xfff0c35d]
PUSH 0xe3
PUSH EAX
CALL 0x0008b620
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x40]
LEA EAX,[EBX + 0xfff12358]
PUSH EAX
LEA EAX,[EBX + 0xfff0c35d]
PUSH 0xc5
PUSH EAX
CALL 0x0008b620
PUSH EDX
MOV EBX,dword ptr [ESP + 0x40]
LEA EAX,[EBX + 0xfff11ac0]
PUSH EAX
LEA EAX,[EBX + 0xfff0f08e]
PUSH 0xa4b
PUSH EAX
CALL 0x0008b620
PUSH EAX
MOV EBX,dword ptr [ESP + 0x40]
LEA EAX,[EBX + 0xfff11ac0]
PUSH EAX
LEA EAX,[EBX + 0xfff0f08e]
PUSH 0xa4c
PUSH EAX
CALL 0x0008b620
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_00059f20(int *param_1,int param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  char cVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined4 unaff_EBX;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  undefined8 uVar18;\n  int local_60;\n  int local_40;\n  \n  if ((*(byte *)(param_1 + 7) & 4) == 0) goto LAB_0005a28e;\n  uVar1 = param_1[5];\n  if ((*(byte *)(param_1 + 7) & 2) == 0) goto LAB_0005a252;\n  uVar2 = param_1[3];\n  if (param_1[4] == 0) {\n    if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n  }\nLAB_0005a271:\n                    /* WARNING: Subroutine does not return */\n  FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX);\n}\n\n" comment (function_definition "void FUN_00059f20(int *param_1,int param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  char cVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined4 unaff_EBX;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  undefined8 uVar18;\n  int local_60;\n  int local_40;\n  \n  if ((*(byte *)(param_1 + 7) & 4) == 0) goto LAB_0005a28e;\n  uVar1 = param_1[5];\n  if ((*(byte *)(param_1 + 7) & 2) == 0) goto LAB_0005a252;\n  uVar2 = param_1[3];\n  if (param_1[4] == 0) {\n    if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n  }\nLAB_0005a271:\n                    /* WARNING: Subroutine does not return */\n  FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX);\n}" primitive_type (function_declarator "FUN_00059f20(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  char cVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined4 unaff_EBX;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  undefined8 uVar18;\n  int local_60;\n  int local_40;\n  \n  if ((*(byte *)(param_1 + 7) & 4) == 0) goto LAB_0005a28e;\n  uVar1 = param_1[5];\n  if ((*(byte *)(param_1 + 7) & 2) == 0) goto LAB_0005a252;\n  uVar2 = param_1[3];\n  if (param_1[4] == 0) {\n    if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n  }\nLAB_0005a271:\n                    /* WARNING: Subroutine does not return */\n  FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX);\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined4 unaff_EBX;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined8 uVar18;" type_identifier identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (if_statement "if ((*(byte *)(param_1 + 7) & 4) == 0) goto LAB_0005a28e;" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 4) == 0)" ( (binary_expression "(*(byte *)(param_1 + 7) & 4) == 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 4)" ( (binary_expression "*(byte *)(param_1 + 7) & 4" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0005a28e;" goto statement_identifier ;)) (expression_statement "uVar1 = param_1[5];" (assignment_expression "uVar1 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(param_1 + 7) & 2) == 0) goto LAB_0005a252;" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 2)" ( (binary_expression "*(byte *)(param_1 + 7) & 2" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0005a252;" goto statement_identifier ;)) (expression_statement "uVar2 = param_1[3];" (assignment_expression "uVar2 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (if_statement "if (param_1[4] == 0) {\n    if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n  }" if (parenthesized_expression "(param_1[4] == 0)" ( (binary_expression "param_1[4] == 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n  }" { (if_statement "if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }" if (parenthesized_expression "((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0))" ( (binary_expression "(-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)" (parenthesized_expression "(-1 < param_1[6])" ( (binary_expression "-1 < param_1[6]" number_literal < (subscript_expression "param_1[6]" identifier [ number_literal ])) )) && (parenthesized_expression "(iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)" ( (comma_expression "iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0" (assignment_expression "iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1)" identifier = (binary_expression "param_1[6] + (uint)CARRY4(uVar2,uVar1)" (subscript_expression "param_1[6]" identifier [ number_literal ]) + (cast_expression "(uint)CARRY4(uVar2,uVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar2,uVar1)" identifier (argument_list "(uVar2,uVar1)" ( identifier , identifier )))))) , (comma_expression "uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0" (assignment_expression "uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1)" identifier = (call_expression "(uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(param_2 + 8) < uVar2 + uVar1)" ( (binary_expression "*(uint *)(param_2 + 8) < uVar2 + uVar1" (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) < (binary_expression "uVar2 + uVar1" identifier + identifier)) )))) , (comma_expression "iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0" (assignment_expression "iVar9 = *(int *)(param_2 + 0xc) - iVar14" identifier = (binary_expression "*(int *)(param_2 + 0xc) - iVar14" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) - identifier)) , (binary_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0" (parenthesized_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16))" ( (binary_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)" (call_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar14)" identifier (argument_list "(*(int *)(param_2 + 0xc),iVar14)" ( (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) , identifier ))) != (call_expression "SBORROW4(iVar9,uVar16)" identifier (argument_list "(iVar9,uVar16)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar9 - uVar16) < 0" (cast_expression "(int)(iVar9 - uVar16)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar9 - uVar16)" ( (binary_expression "iVar9 - uVar16" identifier - identifier) ))) < number_literal))))) ))) )) (compound_statement "{\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }" { (expression_statement "iVar14 = uVar1 + *(int *)(param_2 + 0x10);" (assignment_expression "iVar14 = uVar1 + *(int *)(param_2 + 0x10)" identifier = (binary_expression "uVar1 + *(int *)(param_2 + 0x10)" identifier + (pointer_expression "*(int *)(param_2 + 0x10)" * (cast_expression "(int *)(param_2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "iVar9 = param_1[0xf];" (assignment_expression "iVar9 = param_1[0xf]" identifier = (subscript_expression "param_1[0xf]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }" if (parenthesized_expression "((*(byte *)(iVar9 + 0x1c) & 4) == 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x1c) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1c) & 4)" ( (binary_expression "*(byte *)(iVar9 + 0x1c) & 4" (pointer_expression "*(byte *)(iVar9 + 0x1c)" * (cast_expression "(byte *)(iVar9 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }" { (labeled_statement "LAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);" statement_identifier : comment (expression_statement "FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);" (call_expression "FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1)" identifier (argument_list "("../../gold/output.h",0xe3,"offset",param_1)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") , identifier ))) ;)) })) (expression_statement "iVar12 = *(int *)(iVar9 + 0x18);" (assignment_expression "iVar12 = *(int *)(iVar9 + 0x18)" identifier = (pointer_expression "*(int *)(iVar9 + 0x18)" * (cast_expression "(int *)(iVar9 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(uint *)(iVar9 + 0x14);" (assignment_expression "uVar1 = *(uint *)(iVar9 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "cVar7 = FUN_0011a440(DAT_0033f2f0);" (assignment_expression "cVar7 = FUN_0011a440(DAT_0033f2f0)" identifier = (call_expression "FUN_0011a440(DAT_0033f2f0)" identifier (argument_list "(DAT_0033f2f0)" ( identifier )))) ;) (expression_statement "iVar9 = param_1[0xf];" (assignment_expression "iVar9 = param_1[0xf]" identifier = (subscript_expression "param_1[0xf]" identifier [ number_literal ])) ;) (if_statement "if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }" { (if_statement "if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;" if (parenthesized_expression "((*(byte *)(iVar9 + 0x1c) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1c) & 2)" ( (binary_expression "*(byte *)(iVar9 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar9 + 0x1c)" * (cast_expression "(byte *)(iVar9 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0005a252;" goto statement_identifier ;)) (expression_statement "uVar16 = *(uint *)(iVar9 + 0xc);" (assignment_expression "uVar16 = *(uint *)(iVar9 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar9 + 0xc)" * (cast_expression "(uint *)(iVar9 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar17 = *(int *)(iVar9 + 0x10)" identifier = (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = param_1[0x10];" (assignment_expression "iVar15 = param_1[0x10]" identifier = (subscript_expression "param_1[0x10]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;" if (parenthesized_expression "((*(byte *)(iVar15 + 0x1c) & 4) == 0)" ( (binary_expression "(*(byte *)(iVar15 + 0x1c) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x1c) & 4)" ( (binary_expression "*(byte *)(iVar15 + 0x1c) & 4" (pointer_expression "*(byte *)(iVar15 + 0x1c)" * (cast_expression "(byte *)(iVar15 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0005a28e;" goto statement_identifier ;)) (if_statement "if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }" if (parenthesized_expression "(iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16)" ( (binary_expression "iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16" (binary_expression "iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18)" (binary_expression "iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16)" (binary_expression "iVar12 + iVar17" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar1,uVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar1,uVar16)" identifier (argument_list "(uVar1,uVar16)" ( identifier , identifier ))))) != (pointer_expression "*(int *)(iVar15 + 0x18)" * (cast_expression "(int *)(iVar15 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) ))))) || (binary_expression "*(int *)(iVar15 + 0x14) != uVar1 + uVar16" (pointer_expression "*(int *)(iVar15 + 0x14)" * (cast_expression "(int *)(iVar15 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x14)" ( (binary_expression "iVar15 + 0x14" identifier + number_literal) )))) != (binary_expression "uVar1 + uVar16" identifier + identifier))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }" { comment (expression_statement "FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);" (call_expression "FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9)" identifier (argument_list "("../../gold/x86_64.cc",0xa12,"do_write",iVar9)" ( (string_literal ""../../gold/x86_64.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") , identifier ))) ;) })) }) (else_clause "else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }" else (compound_statement "{\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }" { (if_statement "if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;" if (parenthesized_expression "((*(byte *)(iVar9 + 0x1c) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1c) & 2)" ( (binary_expression "*(byte *)(iVar9 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar9 + 0x1c)" * (cast_expression "(byte *)(iVar9 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0005a252;" goto statement_identifier ;)) (expression_statement "iVar15 = param_1[0x10];" (assignment_expression "iVar15 = param_1[0x10]" identifier = (subscript_expression "param_1[0x10]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = *(uint *)(iVar9 + 0xc);" (assignment_expression "uVar16 = *(uint *)(iVar9 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar9 + 0xc)" * (cast_expression "(uint *)(iVar9 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar17 = *(int *)(iVar9 + 0x10)" identifier = (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ;) }))) (if_statement "if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }" if (parenthesized_expression "((*(byte *)(iVar15 + 0x1c) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar15 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x1c) & 2)" ( (binary_expression "*(byte *)(iVar15 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar15 + 0x1c)" * (cast_expression "(byte *)(iVar15 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }" { (labeled_statement "LAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");" statement_identifier : comment (expression_statement "FUN_0008b620("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0008b620("../../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 ") ))) ;)) })) (expression_statement "uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);" (assignment_expression "uVar8 = uVar16 + *(uint *)(iVar15 + 0xc)" identifier = (binary_expression "uVar16 + *(uint *)(iVar15 + 0xc)" identifier + (pointer_expression "*(uint *)(iVar15 + 0xc)" * (cast_expression "(uint *)(iVar15 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "unaff_EBX = 0;" (assignment_expression "unaff_EBX = 0" identifier = number_literal) ;) (if_statement "if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;" if (parenthesized_expression "(iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)" ( (binary_expression "iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0" (binary_expression "iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc))" (binary_expression "iVar17 + *(int *)(iVar15 + 0x10)" identifier + (pointer_expression "*(int *)(iVar15 + 0x10)" * (cast_expression "(int *)(iVar15 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar16,*(uint *)(iVar15 + 0xc))" identifier (argument_list "(uVar16,*(uint *)(iVar15 + 0xc))" ( identifier , (pointer_expression "*(uint *)(iVar15 + 0xc)" * (cast_expression "(uint *)(iVar15 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) ))))) != number_literal) )) (goto_statement "goto LAB_0005a271;" goto statement_identifier ;)) (if_statement "if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }" if (parenthesized_expression "(-1 < iVar12)" ( (binary_expression "-1 < iVar12" number_literal < identifier) )) (compound_statement "{\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }" { (expression_statement "iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);" (assignment_expression "iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1)" identifier = (binary_expression "iVar12 + (uint)CARRY4(uVar8,uVar1)" identifier + (cast_expression "(uint)CARRY4(uVar8,uVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar8,uVar1)" identifier (argument_list "(uVar8,uVar1)" ( identifier , identifier )))))) ;) (expression_statement "uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);" (assignment_expression "uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1)" identifier = (call_expression "(uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(param_2 + 8) < uVar8 + uVar1)" ( (binary_expression "*(uint *)(param_2 + 8) < uVar8 + uVar1" (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) < (binary_expression "uVar8 + uVar1" identifier + identifier)) )))) ;) (expression_statement "iVar15 = *(int *)(param_2 + 0xc) - iVar12;" (assignment_expression "iVar15 = *(int *)(param_2 + 0xc) - iVar12" identifier = (binary_expression "*(int *)(param_2 + 0xc) - iVar12" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) - identifier)) ;) (if_statement "if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }" if (parenthesized_expression "((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0)" ( (binary_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0" (parenthesized_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16))" ( (binary_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)" (call_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar12)" identifier (argument_list "(*(int *)(param_2 + 0xc),iVar12)" ( (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) , identifier ))) != (call_expression "SBORROW4(iVar15,uVar16)" identifier (argument_list "(iVar15,uVar16)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar15 - uVar16) < 0" (cast_expression "(int)(iVar15 - uVar16)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar15 - uVar16)" ( (binary_expression "iVar15 - uVar16" identifier - identifier) ))) < number_literal)) )) (compound_statement "{\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }" { (expression_statement "iVar12 = uVar1 + *(int *)(param_2 + 0x10);" (assignment_expression "iVar12 = uVar1 + *(int *)(param_2 + 0x10)" identifier = (binary_expression "uVar1 + *(int *)(param_2 + 0x10)" identifier + (pointer_expression "*(int *)(param_2 + 0x10)" * (cast_expression "(int *)(param_2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))))) ;) (if_statement "if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 1) != 0)" ( (binary_expression "(*(byte *)(param_1 + 7) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 1)" ( (binary_expression "*(byte *)(param_1 + 7) & 1" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }" { (expression_statement "uVar1 = param_1[1];" (assignment_expression "uVar1 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = param_1[2];" (assignment_expression "iVar15 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar17 = param_1[0xe];" (assignment_expression "iVar17 = param_1[0xe]" identifier = (subscript_expression "param_1[0xe]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }" if (parenthesized_expression "((*(byte *)(iVar17 + 0x1c) & 1) != 0)" ( (binary_expression "(*(byte *)(iVar17 + 0x1c) & 1) != 0" (parenthesized_expression "(*(byte *)(iVar17 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar17 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar17 + 0x1c)" * (cast_expression "(byte *)(iVar17 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x1c)" ( (binary_expression "iVar17 + 0x1c" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }" { (expression_statement "uVar3 = *(undefined4 *)(iVar17 + 8);" (assignment_expression "uVar3 = *(undefined4 *)(iVar17 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar17 + 8)" * (cast_expression "(undefined4 *)(iVar17 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 8)" ( (binary_expression "iVar17 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(iVar17 + 4);" (assignment_expression "uVar4 = *(undefined4 *)(iVar17 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar17 + 4)" * (cast_expression "(undefined4 *)(iVar17 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 4)" ( (binary_expression "iVar17 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }" if (parenthesized_expression "((*(byte *)(iVar9 + 0x1c) & 1) != 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x1c) & 1) != 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar9 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar9 + 0x1c)" * (cast_expression "(byte *)(iVar9 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }" { (expression_statement "uVar5 = *(undefined4 *)(iVar9 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar9 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 8)" * (cast_expression "(undefined4 *)(iVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(undefined4 *)(iVar9 + 4);" (assignment_expression "uVar6 = *(undefined4 *)(iVar9 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 4)" * (cast_expression "(undefined4 *)(iVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);" (call_expression "(**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15)" (parenthesized_expression "(**(code **)(*param_1 + 0x68))" ( (pointer_expression "**(code **)(*param_1 + 0x68)" * (pointer_expression "*(code **)(*param_1 + 0x68)" * (cast_expression "(code **)(*param_1 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x68)" ( (binary_expression "*param_1 + 0x68" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1,iVar14,uVar6,uVar5,uVar1,iVar15)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_60 = (**(code **)(*param_1 + 100))(param_1);" (assignment_expression "local_60 = (**(code **)(*param_1 + 100))(param_1)" identifier = (call_expression "(**(code **)(*param_1 + 100))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 100))" ( (pointer_expression "**(code **)(*param_1 + 100)" * (pointer_expression "*(code **)(*param_1 + 100)" * (cast_expression "(code **)(*param_1 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 100)" ( (binary_expression "*param_1 + 100" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "local_60 = local_60 + iVar14;" (assignment_expression "local_60 = local_60 + iVar14" identifier = (binary_expression "local_60 + iVar14" identifier + identifier)) ;) (expression_statement "local_40 = iVar12 + 0x18;" (assignment_expression "local_40 = iVar12 + 0x18" identifier = (binary_expression "iVar12 + 0x18" identifier + number_literal)) ;) (expression_statement "uVar18 = (**(code **)(*param_1 + 100))(param_1);" (assignment_expression "uVar18 = (**(code **)(*param_1 + 100))(param_1)" identifier = (call_expression "(**(code **)(*param_1 + 100))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 100))" ( (pointer_expression "**(code **)(*param_1 + 100)" * (pointer_expression "*(code **)(*param_1 + 100)" * (cast_expression "(code **)(*param_1 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 100)" ( (binary_expression "*param_1 + 100" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar16 = (uint)uVar18;" (assignment_expression "uVar16 = (uint)uVar18" identifier = (cast_expression "(uint)uVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar9 = param_1[0x12] + param_1[0x11];" (assignment_expression "iVar9 = param_1[0x12] + param_1[0x11]" identifier = (binary_expression "param_1[0x12] + param_1[0x11]" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) + (subscript_expression "param_1[0x11]" identifier [ number_literal ]))) ;) (if_statement "if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);" do (compound_statement "{\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  }" { (expression_statement "uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);" (assignment_expression "uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17)" identifier = (call_expression "(**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17)" (parenthesized_expression "(**(code **)(*param_1 + 0x6c))" ( (pointer_expression "**(code **)(*param_1 + 0x6c)" * (pointer_expression "*(code **)(*param_1 + 0x6c)" * (cast_expression "(code **)(*param_1 + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x6c)" ( (binary_expression "*param_1 + 0x6c" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17)" ( identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "iVar17 * 8 + 0x18" (binary_expression "iVar17 * 8" identifier * number_literal) + number_literal) , identifier , identifier )))) ;) (expression_statement "*(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;" (assignment_expression "*(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1" (pointer_expression "*(uint *)(iVar12 + 0x18 + iVar17 * 8)" * (cast_expression "(uint *)(iVar12 + 0x18 + iVar17 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18 + iVar17 * 8)" ( (binary_expression "iVar12 + 0x18 + iVar17 * 8" (binary_expression "iVar12 + 0x18" identifier + number_literal) + (binary_expression "iVar17 * 8" identifier * number_literal)) )))) = (binary_expression "uVar16 + uVar10 + uVar1" (binary_expression "uVar16 + uVar10" identifier + identifier) + identifier)) ;) (expression_statement "iVar11 = *param_1;" (assignment_expression "iVar11 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);" (assignment_expression "*(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1)" (pointer_expression "*(uint *)(iVar12 + 0x1c + iVar17 * 8)" * (cast_expression "(uint *)(iVar12 + 0x1c + iVar17 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c + iVar17 * 8)" ( (binary_expression "iVar12 + 0x1c + iVar17 * 8" (binary_expression "iVar12 + 0x1c" identifier + number_literal) + (binary_expression "iVar17 * 8" identifier * number_literal)) )))) = (binary_expression "(uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1)" (binary_expression "(uint)CARRY4(uVar16,uVar10) + iVar15" (cast_expression "(uint)CARRY4(uVar16,uVar10)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar16,uVar10)" identifier (argument_list "(uVar16,uVar10)" ( identifier , identifier )))) + identifier) + (cast_expression "(uint)CARRY4(uVar16 + uVar10,uVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar16 + uVar10,uVar1)" identifier (argument_list "(uVar16 + uVar10,uVar1)" ( (binary_expression "uVar16 + uVar10" identifier + identifier) , identifier )))))) ;) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "iVar11 = (**(code **)(iVar11 + 100))(param_1);" (assignment_expression "iVar11 = (**(code **)(iVar11 + 100))(param_1)" identifier = (call_expression "(**(code **)(iVar11 + 100))(param_1)" (parenthesized_expression "(**(code **)(iVar11 + 100))" ( (pointer_expression "**(code **)(iVar11 + 100)" * (pointer_expression "*(code **)(iVar11 + 100)" * (cast_expression "(code **)(iVar11 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 100)" ( (binary_expression "iVar11 + 100" identifier + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "local_60 = local_60 + iVar11;" (assignment_expression "local_60 = local_60 + iVar11" identifier = (binary_expression "local_60 + iVar11" identifier + identifier)) ;) (expression_statement "iVar11 = (**(code **)(*param_1 + 100))(param_1);" (assignment_expression "iVar11 = (**(code **)(*param_1 + 100))(param_1)" identifier = (call_expression "(**(code **)(*param_1 + 100))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 100))" ( (pointer_expression "**(code **)(*param_1 + 100)" * (pointer_expression "*(code **)(*param_1 + 100)" * (cast_expression "(code **)(*param_1 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 100)" ( (binary_expression "*param_1 + 100" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar16 = uVar16 + iVar11;" (assignment_expression "uVar16 = uVar16 + iVar11" identifier = (binary_expression "uVar16 + iVar11" identifier + identifier)) ;) (expression_statement "uVar18 = CONCAT44(iVar9,uVar16);" (assignment_expression "uVar18 = CONCAT44(iVar9,uVar16)" identifier = (call_expression "CONCAT44(iVar9,uVar16)" identifier (argument_list "(iVar9,uVar16)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "(iVar9 != iVar17)" ( (binary_expression "iVar9 != iVar17" identifier != identifier) )) ;) (expression_statement "local_40 = local_40 + iVar9 * 8;" (assignment_expression "local_40 = local_40 + iVar9 * 8" identifier = (binary_expression "local_40 + iVar9 * 8" identifier + (binary_expression "iVar9 * 8" identifier * number_literal))) ;) })) (expression_statement "uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);" (assignment_expression "uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar18 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar18 >> 0x20)" ( (binary_expression "(ulonglong)uVar18 >> 0x20" (cast_expression "(ulonglong)uVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }" if (parenthesized_expression "(param_1[0x13] != -1)" ( (binary_expression "param_1[0x13] != -1" (subscript_expression "param_1[0x13]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }" { (expression_statement "(**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);" (call_expression "(**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18)" (parenthesized_expression "(**(code **)(*param_1 + 0x70))" ( (pointer_expression "**(code **)(*param_1 + 0x70)" * (pointer_expression "*(code **)(*param_1 + 0x70)" * (cast_expression "(code **)(*param_1 + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x70)" ( (binary_expression "*param_1 + 0x70" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , (subscript_expression "param_1[0x13]" identifier [ number_literal ]) , (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "uVar18 = (**(code **)(*param_1 + 100))(param_1);" (assignment_expression "uVar18 = (**(code **)(*param_1 + 100))(param_1)" identifier = (call_expression "(**(code **)(*param_1 + 100))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 100))" ( (pointer_expression "**(code **)(*param_1 + 100)" * (pointer_expression "*(code **)(*param_1 + 100)" * (cast_expression "(code **)(*param_1 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 100)" ( (binary_expression "*param_1 + 100" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);" (assignment_expression "uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar18 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar18 >> 0x20)" ( (binary_expression "(ulonglong)uVar18 >> 0x20" (cast_expression "(ulonglong)uVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_60 = local_60 + (int)uVar18;" (assignment_expression "local_60 = local_60 + (int)uVar18" identifier = (binary_expression "local_60 + (int)uVar18" identifier + (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (if_statement "if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }" if (parenthesized_expression "(local_60 - iVar14 == uVar2)" ( (binary_expression "local_60 - iVar14 == uVar2" (binary_expression "local_60 - iVar14" identifier - identifier) == identifier) )) (compound_statement "{\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }" { (if_statement "if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }" if (parenthesized_expression "(local_40 - iVar12 == uVar8)" ( (binary_expression "local_40 - iVar12 == uVar8" (binary_expression "local_40 - iVar12" identifier - identifier) == identifier) )) (compound_statement "{\n                    return;\n                  }" { (return_statement "return;" return ;) })) comment (expression_statement "FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);" (call_expression "FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12)" identifier (argument_list "("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12)" ( (string_literal ""../../gold/x86_64.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") , (binary_expression "local_40 - iVar12" identifier - identifier) ))) ;) })) comment (expression_statement "FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);" (call_expression "FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13)" identifier (argument_list "("../../gold/x86_64.cc",0xa4b,"do_write",uVar13)" ( (string_literal ""../../gold/x86_64.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") , identifier ))) ;) })) })) })) comment (expression_statement "FUN_0008b620("../../gold/output.h",0xc5,"address");" (call_expression "FUN_0008b620("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;) })) })) })) comment (expression_statement "FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");" (call_expression "FUN_0008b620("../../gold/output.h",0x6f,"get_output_view")" identifier (argument_list "("../../gold/output.h",0x6f,"get_output_view")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""get_output_view"" " string_content ") ))) ;) })) (labeled_statement "LAB_0005a271:\n                    /* WARNING: Subroutine does not return */\n  FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX);" statement_identifier : comment (expression_statement "FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX);" (call_expression "FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX)" identifier (argument_list "("../../gold/gold.h",0xc0,"convert_types",unaff_EBX)" ( (string_literal ""../../gold/gold.h"" " string_content ") , number_literal , (string_literal ""convert_types"" " string_content ") , identifier ))) ;)) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: void do_write(Output_data_plt_x86_64<64> * this, Output_file * of) */\n\nvoid __thiscall\nanon_unknown.dwarf_32964f::Output_data_plt_x86_64<64>::do_write\n          (Output_data_plt_x86_64<64> *this,Output_file *of)\n\n{\n  off_t *poVar1;\n  uint uVar2;\n  uint uVar3;\n  Output_data_got_plt_x86_64 *pOVar4;\n  Output_data_got<64,_false> *pOVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  uint64_t uVar9;\n  bool bVar10;\n  uchar *puVar11;\n  uint uVar12;\n  uchar *puVar13;\n  int iVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  Output_data_space *pOVar20;\n  uchar *local_60;\n  uchar *local_40;\n  \n  if ((this->field_0x1c & 4) == 0) goto LAB_0005a28e;\n  uVar2 = *(uint *)&this->field_0x14;\n  if ((this->field_0x1c & 2) == 0) goto LAB_0005a252;\n  uVar3 = *(uint *)&this->field_0xc;\n  if (*(int *)&this->field_0x10 == 0) {\n    if ((-1 < *(int *)&this->field_0x18) &&\n       (iVar18 = *(int *)((int)&of->file_size_ + 4),\n       iVar19 = *(int *)&this->field_0x18 + (uint)CARRY4(uVar3,uVar2),\n       uVar15 = (uint)((uint)of->file_size_ < uVar3 + uVar2), iVar14 = iVar18 - iVar19,\n       (SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15)) == (int)(iVar14 - uVar15) < 0)) {\n      puVar11 = of->base_ + uVar2;\n      pOVar4 = this->got_plt_;\n      if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 4) == 0) {\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n      }\n      iVar18 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data.offset_ + 4);\n      uVar2 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                    super_Output_data.offset_;\n      bVar10 = gold::Parameters::incremental_update(gold::parameters);\n      pOVar4 = this->got_plt_;\n      if (bVar10) {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        pOVar20 = this->got_irelative_;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n      }\n      else {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n        pOVar20 = this->got_irelative_;\n        if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 4) == 0) goto LAB_0005a28e;\n        if (iVar18 + iVar14 + (uint)CARRY4(uVar2,uVar15) !=\n            *(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4) ||\n            (int)(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.offset_ != uVar2 + uVar15) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/x86_64.cc",0xa12,"do_write");\n        }\n      }\n      if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 2) == 0) {\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n      poVar1 = &(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.data_size_;\n      uVar12 = uVar15 + (int)*poVar1;\n      if (iVar14 + *(int *)((int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_ + 4) +\n          (uint)CARRY4(uVar15,(uint)*poVar1) != 0) goto LAB_0005a271;\n      if (-1 < iVar18) {\n        iVar18 = iVar18 + (uint)CARRY4(uVar12,uVar2);\n        iVar14 = *(int *)((int)&of->file_size_ + 4);\n        uVar15 = (uint)((uint)of->file_size_ < uVar12 + uVar2);\n        iVar19 = iVar14 - iVar18;\n        if ((SBORROW4(iVar14,iVar18) != SBORROW4(iVar19,uVar15)) == (int)(iVar19 - uVar15) < 0) {\n          puVar13 = of->base_ + uVar2;\n          if ((this->field_0x1c & 1) != 0) {\n            uVar2 = *(uint *)&this->field_0x4;\n            iVar18 = *(int *)&this->field_0x8;\n            pOVar5 = this->got_;\n            if (((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0) {\n              uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4);\n              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_;\n              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0) {\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n  }\nLAB_0005a271:\n                    /* WARNING: Subroutine does not return */\n  gold::do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n}\n\n" comment comment comment comment (function_definition "void __thiscall\nanon_unknown.dwarf_32964f::Output_data_plt_x86_64<64>::do_write\n          (Output_data_plt_x86_64<64> *this,Output_file *of)\n\n{\n  off_t *poVar1;\n  uint uVar2;\n  uint uVar3;\n  Output_data_got_plt_x86_64 *pOVar4;\n  Output_data_got<64,_false> *pOVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  uint64_t uVar9;\n  bool bVar10;\n  uchar *puVar11;\n  uint uVar12;\n  uchar *puVar13;\n  int iVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  Output_data_space *pOVar20;\n  uchar *local_60;\n  uchar *local_40;\n  \n  if ((this->field_0x1c & 4) == 0) goto LAB_0005a28e;\n  uVar2 = *(uint *)&this->field_0x14;\n  if ((this->field_0x1c & 2) == 0) goto LAB_0005a252;\n  uVar3 = *(uint *)&this->field_0xc;\n  if (*(int *)&this->field_0x10 == 0) {\n    if ((-1 < *(int *)&this->field_0x18) &&\n       (iVar18 = *(int *)((int)&of->file_size_ + 4),\n       iVar19 = *(int *)&this->field_0x18 + (uint)CARRY4(uVar3,uVar2),\n       uVar15 = (uint)((uint)of->file_size_ < uVar3 + uVar2), iVar14 = iVar18 - iVar19,\n       (SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15)) == (int)(iVar14 - uVar15) < 0)) {\n      puVar11 = of->base_ + uVar2;\n      pOVar4 = this->got_plt_;\n      if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 4) == 0) {\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n      }\n      iVar18 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data.offset_ + 4);\n      uVar2 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                    super_Output_data.offset_;\n      bVar10 = gold::Parameters::incremental_update(gold::parameters);\n      pOVar4 = this->got_plt_;\n      if (bVar10) {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        pOVar20 = this->got_irelative_;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n      }\n      else {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n        pOVar20 = this->got_irelative_;\n        if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 4) == 0) goto LAB_0005a28e;\n        if (iVar18 + iVar14 + (uint)CARRY4(uVar2,uVar15) !=\n            *(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4) ||\n            (int)(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.offset_ != uVar2 + uVar15) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/x86_64.cc",0xa12,"do_write");\n        }\n      }\n      if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 2) == 0) {\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n      poVar1 = &(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.data_size_;\n      uVar12 = uVar15 + (int)*poVar1;\n      if (iVar14 + *(int *)((int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_ + 4) +\n          (uint)CARRY4(uVar15,(uint)*poVar1) != 0) goto LAB_0005a271;\n      if (-1 < iVar18) {\n        iVar18 = iVar18 + (uint)CARRY4(uVar12,uVar2);\n        iVar14 = *(int *)((int)&of->file_size_ + 4);\n        uVar15 = (uint)((uint)of->file_size_ < uVar12 + uVar2);\n        iVar19 = iVar14 - iVar18;\n        if ((SBORROW4(iVar14,iVar18) != SBORROW4(iVar19,uVar15)) == (int)(iVar19 - uVar15) < 0) {\n          puVar13 = of->base_ + uVar2;\n          if ((this->field_0x1c & 1) != 0) {\n            uVar2 = *(uint *)&this->field_0x4;\n            iVar18 = *(int *)&this->field_0x8;\n            pOVar5 = this->got_;\n            if (((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0) {\n              uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4);\n              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_;\n              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0) {\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n  }\nLAB_0005a271:\n                    /* WARNING: Subroutine does not return */\n  gold::do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_32964f::Output_data_plt_x86_64<64>::" identifier . identifier : : identifier < number_literal > : :) (function_declarator "do_write\n          (Output_data_plt_x86_64<64> *this,Output_file *of)" identifier (parameter_list "(Output_data_plt_x86_64<64> *this,Output_file *of)" ( (parameter_declaration "Output_data_plt_x86_64<64> *this" type_identifier (ERROR "<64>" < number_literal >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_file *of" type_identifier (pointer_declarator "*of" * identifier)) ))) (compound_statement "{\n  off_t *poVar1;\n  uint uVar2;\n  uint uVar3;\n  Output_data_got_plt_x86_64 *pOVar4;\n  Output_data_got<64,_false> *pOVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  uint64_t uVar9;\n  bool bVar10;\n  uchar *puVar11;\n  uint uVar12;\n  uchar *puVar13;\n  int iVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  Output_data_space *pOVar20;\n  uchar *local_60;\n  uchar *local_40;\n  \n  if ((this->field_0x1c & 4) == 0) goto LAB_0005a28e;\n  uVar2 = *(uint *)&this->field_0x14;\n  if ((this->field_0x1c & 2) == 0) goto LAB_0005a252;\n  uVar3 = *(uint *)&this->field_0xc;\n  if (*(int *)&this->field_0x10 == 0) {\n    if ((-1 < *(int *)&this->field_0x18) &&\n       (iVar18 = *(int *)((int)&of->file_size_ + 4),\n       iVar19 = *(int *)&this->field_0x18 + (uint)CARRY4(uVar3,uVar2),\n       uVar15 = (uint)((uint)of->file_size_ < uVar3 + uVar2), iVar14 = iVar18 - iVar19,\n       (SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15)) == (int)(iVar14 - uVar15) < 0)) {\n      puVar11 = of->base_ + uVar2;\n      pOVar4 = this->got_plt_;\n      if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 4) == 0) {\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n      }\n      iVar18 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data.offset_ + 4);\n      uVar2 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                    super_Output_data.offset_;\n      bVar10 = gold::Parameters::incremental_update(gold::parameters);\n      pOVar4 = this->got_plt_;\n      if (bVar10) {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        pOVar20 = this->got_irelative_;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n      }\n      else {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n        pOVar20 = this->got_irelative_;\n        if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 4) == 0) goto LAB_0005a28e;\n        if (iVar18 + iVar14 + (uint)CARRY4(uVar2,uVar15) !=\n            *(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4) ||\n            (int)(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.offset_ != uVar2 + uVar15) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/x86_64.cc",0xa12,"do_write");\n        }\n      }\n      if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 2) == 0) {\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n      poVar1 = &(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.data_size_;\n      uVar12 = uVar15 + (int)*poVar1;\n      if (iVar14 + *(int *)((int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_ + 4) +\n          (uint)CARRY4(uVar15,(uint)*poVar1) != 0) goto LAB_0005a271;\n      if (-1 < iVar18) {\n        iVar18 = iVar18 + (uint)CARRY4(uVar12,uVar2);\n        iVar14 = *(int *)((int)&of->file_size_ + 4);\n        uVar15 = (uint)((uint)of->file_size_ < uVar12 + uVar2);\n        iVar19 = iVar14 - iVar18;\n        if ((SBORROW4(iVar14,iVar18) != SBORROW4(iVar19,uVar15)) == (int)(iVar19 - uVar15) < 0) {\n          puVar13 = of->base_ + uVar2;\n          if ((this->field_0x1c & 1) != 0) {\n            uVar2 = *(uint *)&this->field_0x4;\n            iVar18 = *(int *)&this->field_0x8;\n            pOVar5 = this->got_;\n            if (((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0) {\n              uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4);\n              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_;\n              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0) {\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n  }\nLAB_0005a271:\n                    /* WARNING: Subroutine does not return */\n  gold::do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n}" { (declaration "off_t *poVar1;" type_identifier (pointer_declarator "*poVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "Output_data_got_plt_x86_64 *pOVar4;" type_identifier (pointer_declarator "*pOVar4" * identifier) ;) (expression_statement "Output_data_got<64,_false> *pOVar5;" (comma_expression "Output_data_got<64,_false> *pOVar5" (binary_expression "Output_data_got<64" identifier < number_literal) , (binary_expression "_false> *pOVar5" identifier > (pointer_expression "*pOVar5" * identifier))) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "uint64_t uVar9;" primitive_type identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "uchar *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uchar *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "Output_data_space *pOVar20;" type_identifier (pointer_declarator "*pOVar20" * identifier) ;) (declaration "uchar *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "uchar *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (if_statement "if ((this->field_0x1c & 4) == 0) goto LAB_0005a28e;" if (parenthesized_expression "((this->field_0x1c & 4) == 0)" ( (binary_expression "(this->field_0x1c & 4) == 0" (parenthesized_expression "(this->field_0x1c & 4)" ( (binary_expression "this->field_0x1c & 4" (field_expression "this->field_0x1c" identifier -> field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0005a28e;" goto statement_identifier ;)) (expression_statement "uVar2 = *(uint *)&this->field_0x14;" (assignment_expression "uVar2 = *(uint *)&this->field_0x14" identifier = (pointer_expression "*(uint *)&this->field_0x14" * (cast_expression "(uint *)&this->field_0x14" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x14" & (field_expression "this->field_0x14" identifier -> field_identifier))))) ;) (if_statement "if ((this->field_0x1c & 2) == 0) goto LAB_0005a252;" if (parenthesized_expression "((this->field_0x1c & 2) == 0)" ( (binary_expression "(this->field_0x1c & 2) == 0" (parenthesized_expression "(this->field_0x1c & 2)" ( (binary_expression "this->field_0x1c & 2" (field_expression "this->field_0x1c" identifier -> field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0005a252;" goto statement_identifier ;)) (expression_statement "uVar3 = *(uint *)&this->field_0xc;" (assignment_expression "uVar3 = *(uint *)&this->field_0xc" identifier = (pointer_expression "*(uint *)&this->field_0xc" * (cast_expression "(uint *)&this->field_0xc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0xc" & (field_expression "this->field_0xc" identifier -> field_identifier))))) ;) (if_statement "if (*(int *)&this->field_0x10 == 0) {\n    if ((-1 < *(int *)&this->field_0x18) &&\n       (iVar18 = *(int *)((int)&of->file_size_ + 4),\n       iVar19 = *(int *)&this->field_0x18 + (uint)CARRY4(uVar3,uVar2),\n       uVar15 = (uint)((uint)of->file_size_ < uVar3 + uVar2), iVar14 = iVar18 - iVar19,\n       (SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15)) == (int)(iVar14 - uVar15) < 0)) {\n      puVar11 = of->base_ + uVar2;\n      pOVar4 = this->got_plt_;\n      if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 4) == 0) {\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n      }\n      iVar18 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data.offset_ + 4);\n      uVar2 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                    super_Output_data.offset_;\n      bVar10 = gold::Parameters::incremental_update(gold::parameters);\n      pOVar4 = this->got_plt_;\n      if (bVar10) {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        pOVar20 = this->got_irelative_;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n      }\n      else {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n        pOVar20 = this->got_irelative_;\n        if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 4) == 0) goto LAB_0005a28e;\n        if (iVar18 + iVar14 + (uint)CARRY4(uVar2,uVar15) !=\n            *(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4) ||\n            (int)(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.offset_ != uVar2 + uVar15) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/x86_64.cc",0xa12,"do_write");\n        }\n      }\n      if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 2) == 0) {\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n      poVar1 = &(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.data_size_;\n      uVar12 = uVar15 + (int)*poVar1;\n      if (iVar14 + *(int *)((int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_ + 4) +\n          (uint)CARRY4(uVar15,(uint)*poVar1) != 0) goto LAB_0005a271;\n      if (-1 < iVar18) {\n        iVar18 = iVar18 + (uint)CARRY4(uVar12,uVar2);\n        iVar14 = *(int *)((int)&of->file_size_ + 4);\n        uVar15 = (uint)((uint)of->file_size_ < uVar12 + uVar2);\n        iVar19 = iVar14 - iVar18;\n        if ((SBORROW4(iVar14,iVar18) != SBORROW4(iVar19,uVar15)) == (int)(iVar19 - uVar15) < 0) {\n          puVar13 = of->base_ + uVar2;\n          if ((this->field_0x1c & 1) != 0) {\n            uVar2 = *(uint *)&this->field_0x4;\n            iVar18 = *(int *)&this->field_0x8;\n            pOVar5 = this->got_;\n            if (((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0) {\n              uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4);\n              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_;\n              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0) {\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n  }" if (parenthesized_expression "(*(int *)&this->field_0x10 == 0)" ( (binary_expression "*(int *)&this->field_0x10 == 0" (pointer_expression "*(int *)&this->field_0x10" * (cast_expression "(int *)&this->field_0x10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x10" & (field_expression "this->field_0x10" identifier -> field_identifier)))) == number_literal) )) (compound_statement "{\n    if ((-1 < *(int *)&this->field_0x18) &&\n       (iVar18 = *(int *)((int)&of->file_size_ + 4),\n       iVar19 = *(int *)&this->field_0x18 + (uint)CARRY4(uVar3,uVar2),\n       uVar15 = (uint)((uint)of->file_size_ < uVar3 + uVar2), iVar14 = iVar18 - iVar19,\n       (SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15)) == (int)(iVar14 - uVar15) < 0)) {\n      puVar11 = of->base_ + uVar2;\n      pOVar4 = this->got_plt_;\n      if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 4) == 0) {\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n      }\n      iVar18 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data.offset_ + 4);\n      uVar2 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                    super_Output_data.offset_;\n      bVar10 = gold::Parameters::incremental_update(gold::parameters);\n      pOVar4 = this->got_plt_;\n      if (bVar10) {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        pOVar20 = this->got_irelative_;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n      }\n      else {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n        pOVar20 = this->got_irelative_;\n        if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 4) == 0) goto LAB_0005a28e;\n        if (iVar18 + iVar14 + (uint)CARRY4(uVar2,uVar15) !=\n            *(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4) ||\n            (int)(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.offset_ != uVar2 + uVar15) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/x86_64.cc",0xa12,"do_write");\n        }\n      }\n      if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 2) == 0) {\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n      poVar1 = &(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.data_size_;\n      uVar12 = uVar15 + (int)*poVar1;\n      if (iVar14 + *(int *)((int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_ + 4) +\n          (uint)CARRY4(uVar15,(uint)*poVar1) != 0) goto LAB_0005a271;\n      if (-1 < iVar18) {\n        iVar18 = iVar18 + (uint)CARRY4(uVar12,uVar2);\n        iVar14 = *(int *)((int)&of->file_size_ + 4);\n        uVar15 = (uint)((uint)of->file_size_ < uVar12 + uVar2);\n        iVar19 = iVar14 - iVar18;\n        if ((SBORROW4(iVar14,iVar18) != SBORROW4(iVar19,uVar15)) == (int)(iVar19 - uVar15) < 0) {\n          puVar13 = of->base_ + uVar2;\n          if ((this->field_0x1c & 1) != 0) {\n            uVar2 = *(uint *)&this->field_0x4;\n            iVar18 = *(int *)&this->field_0x8;\n            pOVar5 = this->got_;\n            if (((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0) {\n              uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4);\n              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_;\n              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0) {\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n  }" { (if_statement "if ((-1 < *(int *)&this->field_0x18) &&\n       (iVar18 = *(int *)((int)&of->file_size_ + 4),\n       iVar19 = *(int *)&this->field_0x18 + (uint)CARRY4(uVar3,uVar2),\n       uVar15 = (uint)((uint)of->file_size_ < uVar3 + uVar2), iVar14 = iVar18 - iVar19,\n       (SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15)) == (int)(iVar14 - uVar15) < 0)) {\n      puVar11 = of->base_ + uVar2;\n      pOVar4 = this->got_plt_;\n      if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 4) == 0) {\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n      }\n      iVar18 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data.offset_ + 4);\n      uVar2 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                    super_Output_data.offset_;\n      bVar10 = gold::Parameters::incremental_update(gold::parameters);\n      pOVar4 = this->got_plt_;\n      if (bVar10) {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        pOVar20 = this->got_irelative_;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n      }\n      else {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n        pOVar20 = this->got_irelative_;\n        if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 4) == 0) goto LAB_0005a28e;\n        if (iVar18 + iVar14 + (uint)CARRY4(uVar2,uVar15) !=\n            *(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4) ||\n            (int)(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.offset_ != uVar2 + uVar15) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/x86_64.cc",0xa12,"do_write");\n        }\n      }\n      if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 2) == 0) {\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n      poVar1 = &(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.data_size_;\n      uVar12 = uVar15 + (int)*poVar1;\n      if (iVar14 + *(int *)((int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_ + 4) +\n          (uint)CARRY4(uVar15,(uint)*poVar1) != 0) goto LAB_0005a271;\n      if (-1 < iVar18) {\n        iVar18 = iVar18 + (uint)CARRY4(uVar12,uVar2);\n        iVar14 = *(int *)((int)&of->file_size_ + 4);\n        uVar15 = (uint)((uint)of->file_size_ < uVar12 + uVar2);\n        iVar19 = iVar14 - iVar18;\n        if ((SBORROW4(iVar14,iVar18) != SBORROW4(iVar19,uVar15)) == (int)(iVar19 - uVar15) < 0) {\n          puVar13 = of->base_ + uVar2;\n          if ((this->field_0x1c & 1) != 0) {\n            uVar2 = *(uint *)&this->field_0x4;\n            iVar18 = *(int *)&this->field_0x8;\n            pOVar5 = this->got_;\n            if (((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0) {\n              uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4);\n              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_;\n              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0) {\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }" if (parenthesized_expression "((-1 < *(int *)&this->field_0x18) &&\n       (iVar18 = *(int *)((int)&of->file_size_ + 4),\n       iVar19 = *(int *)&this->field_0x18 + (uint)CARRY4(uVar3,uVar2),\n       uVar15 = (uint)((uint)of->file_size_ < uVar3 + uVar2), iVar14 = iVar18 - iVar19,\n       (SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15)) == (int)(iVar14 - uVar15) < 0))" ( (binary_expression "(-1 < *(int *)&this->field_0x18) &&\n       (iVar18 = *(int *)((int)&of->file_size_ + 4),\n       iVar19 = *(int *)&this->field_0x18 + (uint)CARRY4(uVar3,uVar2),\n       uVar15 = (uint)((uint)of->file_size_ < uVar3 + uVar2), iVar14 = iVar18 - iVar19,\n       (SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15)) == (int)(iVar14 - uVar15) < 0)" (parenthesized_expression "(-1 < *(int *)&this->field_0x18)" ( (binary_expression "-1 < *(int *)&this->field_0x18" number_literal < (pointer_expression "*(int *)&this->field_0x18" * (cast_expression "(int *)&this->field_0x18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x18" & (field_expression "this->field_0x18" identifier -> field_identifier))))) )) && (parenthesized_expression "(iVar18 = *(int *)((int)&of->file_size_ + 4),\n       iVar19 = *(int *)&this->field_0x18 + (uint)CARRY4(uVar3,uVar2),\n       uVar15 = (uint)((uint)of->file_size_ < uVar3 + uVar2), iVar14 = iVar18 - iVar19,\n       (SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15)) == (int)(iVar14 - uVar15) < 0)" ( (comma_expression "iVar18 = *(int *)((int)&of->file_size_ + 4),\n       iVar19 = *(int *)&this->field_0x18 + (uint)CARRY4(uVar3,uVar2),\n       uVar15 = (uint)((uint)of->file_size_ < uVar3 + uVar2), iVar14 = iVar18 - iVar19,\n       (SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15)) == (int)(iVar14 - uVar15) < 0" (assignment_expression "iVar18 = *(int *)((int)&of->file_size_ + 4)" identifier = (pointer_expression "*(int *)((int)&of->file_size_ + 4)" * (cast_expression "(int *)((int)&of->file_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&of->file_size_ + 4)" ( (binary_expression "(int)&of->file_size_ + 4" (cast_expression "(int)&of->file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&of->file_size_" & (field_expression "of->file_size_" identifier -> field_identifier))) + number_literal) ))))) , (comma_expression "iVar19 = *(int *)&this->field_0x18 + (uint)CARRY4(uVar3,uVar2),\n       uVar15 = (uint)((uint)of->file_size_ < uVar3 + uVar2), iVar14 = iVar18 - iVar19,\n       (SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15)) == (int)(iVar14 - uVar15) < 0" (assignment_expression "iVar19 = *(int *)&this->field_0x18 + (uint)CARRY4(uVar3,uVar2)" identifier = (binary_expression "*(int *)&this->field_0x18 + (uint)CARRY4(uVar3,uVar2)" (pointer_expression "*(int *)&this->field_0x18" * (cast_expression "(int *)&this->field_0x18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x18" & (field_expression "this->field_0x18" identifier -> field_identifier)))) + (cast_expression "(uint)CARRY4(uVar3,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar3,uVar2)" identifier (argument_list "(uVar3,uVar2)" ( identifier , identifier )))))) , (comma_expression "uVar15 = (uint)((uint)of->file_size_ < uVar3 + uVar2), iVar14 = iVar18 - iVar19,\n       (SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15)) == (int)(iVar14 - uVar15) < 0" (assignment_expression "uVar15 = (uint)((uint)of->file_size_ < uVar3 + uVar2)" identifier = (call_expression "(uint)((uint)of->file_size_ < uVar3 + uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)of->file_size_ < uVar3 + uVar2)" ( (binary_expression "(uint)of->file_size_ < uVar3 + uVar2" (cast_expression "(uint)of->file_size_" ( (type_descriptor "uint" type_identifier) ) (field_expression "of->file_size_" identifier -> field_identifier)) < (binary_expression "uVar3 + uVar2" identifier + identifier)) )))) , (comma_expression "iVar14 = iVar18 - iVar19,\n       (SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15)) == (int)(iVar14 - uVar15) < 0" (assignment_expression "iVar14 = iVar18 - iVar19" identifier = (binary_expression "iVar18 - iVar19" identifier - identifier)) , (binary_expression "(SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15)) == (int)(iVar14 - uVar15) < 0" (parenthesized_expression "(SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15))" ( (binary_expression "SBORROW4(iVar18,iVar19) != SBORROW4(iVar14,uVar15)" (call_expression "SBORROW4(iVar18,iVar19)" identifier (argument_list "(iVar18,iVar19)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar14,uVar15)" identifier (argument_list "(iVar14,uVar15)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar14 - uVar15) < 0" (cast_expression "(int)(iVar14 - uVar15)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar14 - uVar15)" ( (binary_expression "iVar14 - uVar15" identifier - identifier) ))) < number_literal)))))) ))) )) (compound_statement "{\n      puVar11 = of->base_ + uVar2;\n      pOVar4 = this->got_plt_;\n      if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 4) == 0) {\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n      }\n      iVar18 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data.offset_ + 4);\n      uVar2 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                    super_Output_data.offset_;\n      bVar10 = gold::Parameters::incremental_update(gold::parameters);\n      pOVar4 = this->got_plt_;\n      if (bVar10) {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        pOVar20 = this->got_irelative_;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n      }\n      else {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n        pOVar20 = this->got_irelative_;\n        if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 4) == 0) goto LAB_0005a28e;\n        if (iVar18 + iVar14 + (uint)CARRY4(uVar2,uVar15) !=\n            *(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4) ||\n            (int)(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.offset_ != uVar2 + uVar15) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/x86_64.cc",0xa12,"do_write");\n        }\n      }\n      if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 2) == 0) {\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n      poVar1 = &(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.data_size_;\n      uVar12 = uVar15 + (int)*poVar1;\n      if (iVar14 + *(int *)((int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_ + 4) +\n          (uint)CARRY4(uVar15,(uint)*poVar1) != 0) goto LAB_0005a271;\n      if (-1 < iVar18) {\n        iVar18 = iVar18 + (uint)CARRY4(uVar12,uVar2);\n        iVar14 = *(int *)((int)&of->file_size_ + 4);\n        uVar15 = (uint)((uint)of->file_size_ < uVar12 + uVar2);\n        iVar19 = iVar14 - iVar18;\n        if ((SBORROW4(iVar14,iVar18) != SBORROW4(iVar19,uVar15)) == (int)(iVar19 - uVar15) < 0) {\n          puVar13 = of->base_ + uVar2;\n          if ((this->field_0x1c & 1) != 0) {\n            uVar2 = *(uint *)&this->field_0x4;\n            iVar18 = *(int *)&this->field_0x8;\n            pOVar5 = this->got_;\n            if (((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0) {\n              uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4);\n              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_;\n              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0) {\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }" { (expression_statement "puVar11 = of->base_ + uVar2;" (assignment_expression "puVar11 = of->base_ + uVar2" identifier = (binary_expression "of->base_ + uVar2" (field_expression "of->base_" identifier -> field_identifier) + identifier)) ;) (expression_statement "pOVar4 = this->got_plt_;" (assignment_expression "pOVar4 = this->got_plt_" identifier = (field_expression "this->got_plt_" identifier -> field_identifier)) ;) (if_statement "if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 4) == 0) {\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n      }" if (parenthesized_expression "(((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 4) == 0)" ( (binary_expression "((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 4) == 0" (parenthesized_expression "((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 4)" ( (binary_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 4" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar4->super_Output_section_data_build)" ( (field_expression "pOVar4->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n      }" { (labeled_statement "LAB_0005a28e:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");" statement_identifier : comment (labeled_statement "gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/output.h",0xe3,"offset");" (call_expression "do_gold_unreachable("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;))) })) (expression_statement "iVar18 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data.offset_ + 4);" (assignment_expression "iVar18 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data.offset_ + 4)" identifier = (pointer_expression "*(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data.offset_ + 4)" * (cast_expression "(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data.offset_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data.offset_ + 4)" ( (binary_expression "(int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data.offset_ + 4" (cast_expression "(int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data.offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data.offset_" & (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data.offset_" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                              super_Output_data" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar4->super_Output_section_data_build)" ( (field_expression "pOVar4->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar2 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                    super_Output_data.offset_;" (assignment_expression "uVar2 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                    super_Output_data.offset_" identifier = (field_expression "(uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                    super_Output_data.offset_" (field_expression "(uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                    super_Output_data" (field_expression "(uint)(pOVar4->super_Output_section_data_build).super_Output_section_data" (call_expression "(uint)(pOVar4->super_Output_section_data_build)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar4->super_Output_section_data_build)" ( (field_expression "pOVar4->super_Output_section_data_build" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier)) ;) (ERROR "bVar10 = gold::" (assignment_expression "bVar10 = gold" identifier = identifier) : :) (labeled_statement "Parameters::incremental_update(gold::parameters);" statement_identifier : (ERROR ":incremental_update(gold::parameters)" : (macro_type_specifier "incremental_update(gold::parameters)" identifier ( (ERROR "gold::" (type_descriptor "gold" type_identifier) : :) (type_descriptor "parameters" type_identifier) ))) (expression_statement ";" ;)) (expression_statement "pOVar4 = this->got_plt_;" (assignment_expression "pOVar4 = this->got_plt_" identifier = (field_expression "this->got_plt_" identifier -> field_identifier)) ;) (if_statement "if (bVar10) {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        pOVar20 = this->got_irelative_;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n      }\n      else {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n        pOVar20 = this->got_irelative_;\n        if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 4) == 0) goto LAB_0005a28e;\n        if (iVar18 + iVar14 + (uint)CARRY4(uVar2,uVar15) !=\n            *(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4) ||\n            (int)(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.offset_ != uVar2 + uVar15) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/x86_64.cc",0xa12,"do_write");\n        }\n      }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        pOVar20 = this->got_irelative_;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n      }" { (if_statement "if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;" if (parenthesized_expression "(((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0)" ( (binary_expression "((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0" (parenthesized_expression "((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2)" ( (binary_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar4->super_Output_section_data_build)" ( (field_expression "pOVar4->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0005a252;" goto statement_identifier ;)) (expression_statement "pOVar20 = this->got_irelative_;" (assignment_expression "pOVar20 = this->got_irelative_" identifier = (field_expression "this->got_irelative_" identifier -> field_identifier)) ;) (expression_statement "uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;" (assignment_expression "uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_" identifier = (field_expression "(uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_" (field_expression "(uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data" (field_expression "(uint)(pOVar4->super_Output_section_data_build).super_Output_section_data" (call_expression "(uint)(pOVar4->super_Output_section_data_build)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar4->super_Output_section_data_build)" ( (field_expression "pOVar4->super_Output_section_data_build" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);" (assignment_expression "iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4)" identifier = (pointer_expression "*(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4)" * (cast_expression "(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4)" ( (binary_expression "(int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4" (cast_expression "(int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_" & (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar4->super_Output_section_data_build)" ( (field_expression "pOVar4->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))))) ;) }) (else_clause "else {\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n        pOVar20 = this->got_irelative_;\n        if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 4) == 0) goto LAB_0005a28e;\n        if (iVar18 + iVar14 + (uint)CARRY4(uVar2,uVar15) !=\n            *(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4) ||\n            (int)(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.offset_ != uVar2 + uVar15) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/x86_64.cc",0xa12,"do_write");\n        }\n      }" else (compound_statement "{\n        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;\n        uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;\n        iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);\n        pOVar20 = this->got_irelative_;\n        if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 4) == 0) goto LAB_0005a28e;\n        if (iVar18 + iVar14 + (uint)CARRY4(uVar2,uVar15) !=\n            *(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4) ||\n            (int)(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.offset_ != uVar2 + uVar15) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/x86_64.cc",0xa12,"do_write");\n        }\n      }" { (if_statement "if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0) goto LAB_0005a252;" if (parenthesized_expression "(((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0)" ( (binary_expression "((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2) == 0" (parenthesized_expression "((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2)" ( (binary_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 2" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar4->super_Output_section_data_build)" ( (field_expression "pOVar4->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0005a252;" goto statement_identifier ;)) (expression_statement "uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_;" (assignment_expression "uVar15 = (uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_" identifier = (field_expression "(uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data.data_size_" (field_expression "(uint)(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                       super_Output_data" (field_expression "(uint)(pOVar4->super_Output_section_data_build).super_Output_section_data" (call_expression "(uint)(pOVar4->super_Output_section_data_build)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar4->super_Output_section_data_build)" ( (field_expression "pOVar4->super_Output_section_data_build" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4);" (assignment_expression "iVar14 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4)" identifier = (pointer_expression "*(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4)" * (cast_expression "(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4)" ( (binary_expression "(int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_ + 4" (cast_expression "(int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_" & (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.data_size_" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar4->super_Output_section_data_build)" ( (field_expression "pOVar4->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "pOVar20 = this->got_irelative_;" (assignment_expression "pOVar20 = this->got_irelative_" identifier = (field_expression "this->got_irelative_" identifier -> field_identifier)) ;) (if_statement "if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 4) == 0) goto LAB_0005a28e;" if (parenthesized_expression "(((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 4) == 0)" ( (binary_expression "((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 4) == 0" (parenthesized_expression "((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 4)" ( (binary_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c & 4" (field_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n             field_0x1c" (field_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar20->super_Output_section_data_build)" ( (field_expression "pOVar20->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0005a28e;" goto statement_identifier ;)) (if_statement "if (iVar18 + iVar14 + (uint)CARRY4(uVar2,uVar15) !=\n            *(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4) ||\n            (int)(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.offset_ != uVar2 + uVar15) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/x86_64.cc",0xa12,"do_write");\n        }" if (parenthesized_expression "(iVar18 + iVar14 + (uint)CARRY4(uVar2,uVar15) !=\n            *(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4) ||\n            (int)(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.offset_ != uVar2 + uVar15)" ( (binary_expression "iVar18 + iVar14 + (uint)CARRY4(uVar2,uVar15) !=\n            *(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4) ||\n            (int)(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.offset_ != uVar2 + uVar15" (binary_expression "iVar18 + iVar14 + (uint)CARRY4(uVar2,uVar15) !=\n            *(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4)" (binary_expression "iVar18 + iVar14 + (uint)CARRY4(uVar2,uVar15)" (binary_expression "iVar18 + iVar14" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar2,uVar15)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar2,uVar15)" identifier (argument_list "(uVar2,uVar15)" ( identifier , identifier ))))) != (pointer_expression "*(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4)" * (cast_expression "(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4)" ( (binary_expression "(int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_ + 4" (cast_expression "(int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_" & (field_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data.offset_" (field_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                           super_Output_data" (field_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar20->super_Output_section_data_build)" ( (field_expression "pOVar20->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))))) || (binary_expression "(int)(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.offset_ != uVar2 + uVar15" (cast_expression "(int)(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.offset_" (field_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data" (field_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar20->super_Output_section_data_build)" ( (field_expression "pOVar20->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) != (binary_expression "uVar2 + uVar15" identifier + identifier))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/x86_64.cc",0xa12,"do_write");\n        }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/x86_64.cc",0xa12,"do_write");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/x86_64.cc",0xa12,"do_write");" (call_expression "do_gold_unreachable("../../gold/x86_64.cc",0xa12,"do_write")" identifier (argument_list "("../../gold/x86_64.cc",0xa12,"do_write")" ( (string_literal ""../../gold/x86_64.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;)) })) }))) (if_statement "if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 2) == 0) {\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }" if (parenthesized_expression "(((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 2) == 0)" ( (binary_expression "((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 2) == 0" (parenthesized_expression "((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 2)" ( (binary_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c & 2" (field_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           field_0x1c" (field_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar20->super_Output_section_data_build)" ( (field_expression "pOVar20->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }" { (labeled_statement "LAB_0005a252:\n                    /* WARNING: Subroutine does not return */\n        gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");" statement_identifier : comment (labeled_statement "gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");" statement_identifier : (ERROR ":" :) (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 ") ))) ;))) })) (expression_statement "poVar1 = &(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.data_size_;" (assignment_expression "poVar1 = &(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.data_size_" identifier = (pointer_expression "&(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.data_size_" & (field_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.data_size_" (field_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data" (field_expression "(pOVar20->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar20->super_Output_section_data_build)" ( (field_expression "pOVar20->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "uVar12 = uVar15 + (int)*poVar1;" (assignment_expression "uVar12 = uVar15 + (int)*poVar1" identifier = (binary_expression "uVar15 + (int)*poVar1" identifier + (cast_expression "(int)*poVar1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*poVar1" * identifier)))) ;) (if_statement "if (iVar14 + *(int *)((int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_ + 4) +\n          (uint)CARRY4(uVar15,(uint)*poVar1) != 0) goto LAB_0005a271;" if (parenthesized_expression "(iVar14 + *(int *)((int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_ + 4) +\n          (uint)CARRY4(uVar15,(uint)*poVar1) != 0)" ( (binary_expression "iVar14 + *(int *)((int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_ + 4) +\n          (uint)CARRY4(uVar15,(uint)*poVar1) != 0" (binary_expression "iVar14 + *(int *)((int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_ + 4) +\n          (uint)CARRY4(uVar15,(uint)*poVar1)" (binary_expression "iVar14 + *(int *)((int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_ + 4)" identifier + (pointer_expression "*(int *)((int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_ + 4)" * (cast_expression "(int *)((int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_ + 4)" ( (binary_expression "(int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_ + 4" (cast_expression "(int)&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_" & (field_expression "(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data.data_size_" (field_expression "(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data.super_Output_data" (field_expression "(pOVar20->super_Output_section_data_build).\n                                  super_Output_section_data" (parenthesized_expression "(pOVar20->super_Output_section_data_build)" ( (field_expression "pOVar20->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar15,(uint)*poVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar15,(uint)*poVar1)" identifier (argument_list "(uVar15,(uint)*poVar1)" ( identifier , (binary_expression "(uint)*poVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier) ))))) != number_literal) )) (goto_statement "goto LAB_0005a271;" goto statement_identifier ;)) (if_statement "if (-1 < iVar18) {\n        iVar18 = iVar18 + (uint)CARRY4(uVar12,uVar2);\n        iVar14 = *(int *)((int)&of->file_size_ + 4);\n        uVar15 = (uint)((uint)of->file_size_ < uVar12 + uVar2);\n        iVar19 = iVar14 - iVar18;\n        if ((SBORROW4(iVar14,iVar18) != SBORROW4(iVar19,uVar15)) == (int)(iVar19 - uVar15) < 0) {\n          puVar13 = of->base_ + uVar2;\n          if ((this->field_0x1c & 1) != 0) {\n            uVar2 = *(uint *)&this->field_0x4;\n            iVar18 = *(int *)&this->field_0x8;\n            pOVar5 = this->got_;\n            if (((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0) {\n              uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4);\n              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_;\n              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0) {\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0xc5,"address");\n        }\n      }" if (parenthesized_expression "(-1 < iVar18)" ( (binary_expression "-1 < iVar18" number_literal < identifier) )) (compound_statement "{\n        iVar18 = iVar18 + (uint)CARRY4(uVar12,uVar2);\n        iVar14 = *(int *)((int)&of->file_size_ + 4);\n        uVar15 = (uint)((uint)of->file_size_ < uVar12 + uVar2);\n        iVar19 = iVar14 - iVar18;\n        if ((SBORROW4(iVar14,iVar18) != SBORROW4(iVar19,uVar15)) == (int)(iVar19 - uVar15) < 0) {\n          puVar13 = of->base_ + uVar2;\n          if ((this->field_0x1c & 1) != 0) {\n            uVar2 = *(uint *)&this->field_0x4;\n            iVar18 = *(int *)&this->field_0x8;\n            pOVar5 = this->got_;\n            if (((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0) {\n              uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4);\n              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_;\n              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0) {\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0xc5,"address");\n        }\n      }" { (expression_statement "iVar18 = iVar18 + (uint)CARRY4(uVar12,uVar2);" (assignment_expression "iVar18 = iVar18 + (uint)CARRY4(uVar12,uVar2)" identifier = (binary_expression "iVar18 + (uint)CARRY4(uVar12,uVar2)" identifier + (cast_expression "(uint)CARRY4(uVar12,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,uVar2)" identifier (argument_list "(uVar12,uVar2)" ( identifier , identifier )))))) ;) (expression_statement "iVar14 = *(int *)((int)&of->file_size_ + 4);" (assignment_expression "iVar14 = *(int *)((int)&of->file_size_ + 4)" identifier = (pointer_expression "*(int *)((int)&of->file_size_ + 4)" * (cast_expression "(int *)((int)&of->file_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&of->file_size_ + 4)" ( (binary_expression "(int)&of->file_size_ + 4" (cast_expression "(int)&of->file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&of->file_size_" & (field_expression "of->file_size_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar15 = (uint)((uint)of->file_size_ < uVar12 + uVar2);" (assignment_expression "uVar15 = (uint)((uint)of->file_size_ < uVar12 + uVar2)" identifier = (call_expression "(uint)((uint)of->file_size_ < uVar12 + uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)of->file_size_ < uVar12 + uVar2)" ( (binary_expression "(uint)of->file_size_ < uVar12 + uVar2" (cast_expression "(uint)of->file_size_" ( (type_descriptor "uint" type_identifier) ) (field_expression "of->file_size_" identifier -> field_identifier)) < (binary_expression "uVar12 + uVar2" identifier + identifier)) )))) ;) (expression_statement "iVar19 = iVar14 - iVar18;" (assignment_expression "iVar19 = iVar14 - iVar18" identifier = (binary_expression "iVar14 - iVar18" identifier - identifier)) ;) (if_statement "if ((SBORROW4(iVar14,iVar18) != SBORROW4(iVar19,uVar15)) == (int)(iVar19 - uVar15) < 0) {\n          puVar13 = of->base_ + uVar2;\n          if ((this->field_0x1c & 1) != 0) {\n            uVar2 = *(uint *)&this->field_0x4;\n            iVar18 = *(int *)&this->field_0x8;\n            pOVar5 = this->got_;\n            if (((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0) {\n              uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4);\n              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_;\n              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0) {\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0xc5,"address");\n        }" if (parenthesized_expression "((SBORROW4(iVar14,iVar18) != SBORROW4(iVar19,uVar15)) == (int)(iVar19 - uVar15) < 0)" ( (binary_expression "(SBORROW4(iVar14,iVar18) != SBORROW4(iVar19,uVar15)) == (int)(iVar19 - uVar15) < 0" (parenthesized_expression "(SBORROW4(iVar14,iVar18) != SBORROW4(iVar19,uVar15))" ( (binary_expression "SBORROW4(iVar14,iVar18) != SBORROW4(iVar19,uVar15)" (call_expression "SBORROW4(iVar14,iVar18)" identifier (argument_list "(iVar14,iVar18)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar19,uVar15)" identifier (argument_list "(iVar19,uVar15)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar19 - uVar15) < 0" (cast_expression "(int)(iVar19 - uVar15)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar19 - uVar15)" ( (binary_expression "iVar19 - uVar15" identifier - identifier) ))) < number_literal)) )) (compound_statement "{\n          puVar13 = of->base_ + uVar2;\n          if ((this->field_0x1c & 1) != 0) {\n            uVar2 = *(uint *)&this->field_0x4;\n            iVar18 = *(int *)&this->field_0x8;\n            pOVar5 = this->got_;\n            if (((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0) {\n              uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4);\n              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_;\n              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0) {\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }\n            }\n          }\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/output.h",0xc5,"address");\n        }" { (expression_statement "puVar13 = of->base_ + uVar2;" (assignment_expression "puVar13 = of->base_ + uVar2" identifier = (binary_expression "of->base_ + uVar2" (field_expression "of->base_" identifier -> field_identifier) + identifier)) ;) (if_statement "if ((this->field_0x1c & 1) != 0) {\n            uVar2 = *(uint *)&this->field_0x4;\n            iVar18 = *(int *)&this->field_0x8;\n            pOVar5 = this->got_;\n            if (((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0) {\n              uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4);\n              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_;\n              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0) {\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }\n            }\n          }" if (parenthesized_expression "((this->field_0x1c & 1) != 0)" ( (binary_expression "(this->field_0x1c & 1) != 0" (parenthesized_expression "(this->field_0x1c & 1)" ( (binary_expression "this->field_0x1c & 1" (field_expression "this->field_0x1c" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar2 = *(uint *)&this->field_0x4;\n            iVar18 = *(int *)&this->field_0x8;\n            pOVar5 = this->got_;\n            if (((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0) {\n              uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4);\n              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_;\n              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0) {\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }\n            }\n          }" { (expression_statement "uVar2 = *(uint *)&this->field_0x4;" (assignment_expression "uVar2 = *(uint *)&this->field_0x4" identifier = (pointer_expression "*(uint *)&this->field_0x4" * (cast_expression "(uint *)&this->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x4" & (field_expression "this->field_0x4" identifier -> field_identifier))))) ;) (expression_statement "iVar18 = *(int *)&this->field_0x8;" (assignment_expression "iVar18 = *(int *)&this->field_0x8" identifier = (pointer_expression "*(int *)&this->field_0x8" * (cast_expression "(int *)&this->field_0x8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x8" & (field_expression "this->field_0x8" identifier -> field_identifier))))) ;) (expression_statement "pOVar5 = this->got_;" (assignment_expression "pOVar5 = this->got_" identifier = (field_expression "this->got_" identifier -> field_identifier)) ;) (if_statement "if (((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0) {\n              uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4);\n              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_;\n              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0) {\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }\n            }" if (parenthesized_expression "(((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0)" ( (binary_expression "((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0" (parenthesized_expression "((pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1)" ( (binary_expression "(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c & 1" (field_expression "(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data.field_0x1c" (field_expression "(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data.super_Output_data" (field_expression "(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                 super_Output_section_data" (field_expression "(pOVar5->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(pOVar5->super_Output_data_got_base)" ( (field_expression "pOVar5->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4);\n              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_;\n              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0) {\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }\n            }" { (expression_statement "uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4);" (assignment_expression "uVar6 = *(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4)" identifier = (pointer_expression "*(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4)" * (cast_expression "(undefined4 *)\n                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4)" ( (binary_expression "(int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_ + 4" (cast_expression "(int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_" & (field_expression "(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data.address_" (field_expression "(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data.super_Output_data" (field_expression "(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                              super_Output_section_data" (field_expression "(pOVar5->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(pOVar5->super_Output_data_got_base)" ( (field_expression "pOVar5->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_;" (assignment_expression "uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_" identifier = (field_expression "(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.address_" (field_expression "(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data" (field_expression "(pOVar5->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data" (field_expression "(pOVar5->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(pOVar5->super_Output_data_got_base)" ( (field_expression "pOVar5->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0) {\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }" if (parenthesized_expression "(((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0)" ( (binary_expression "((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1) != 0" (parenthesized_expression "((pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1)" ( (binary_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c & 1" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data.field_0x1c" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                   super_Output_data" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar4->super_Output_section_data_build)" ( (field_expression "pOVar4->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);\n                uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;\n                (**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);\n                iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                local_60 = puVar11 + iVar14;\n                local_40 = puVar13 + 0x18;\n                uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                iVar14 = this->irelative_count_ + this->count_;\n                if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }\n                if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }\n                if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }\n                    /* WARNING: Subroutine does not return */\n                gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");\n              }" { (expression_statement "uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4);" (assignment_expression "uVar7 = *(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4)" identifier = (pointer_expression "*(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4)" * (cast_expression "(undefined4 *)\n                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4)" ( (binary_expression "(int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_ + 4" (cast_expression "(int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_" & (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data.address_" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data.\n                                super_Output_data" (field_expression "(pOVar4->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar4->super_Output_section_data_build)" ( (field_expression "pOVar4->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_;" (assignment_expression "uVar8 = (undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_" identifier = (field_expression "(undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data.address_" (field_expression "(undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data.\n                        super_Output_data" (field_expression "(undefined4)\n                        (pOVar4->super_Output_section_data_build).super_Output_section_data" (call_expression "(undefined4)\n                        (pOVar4->super_Output_section_data_build)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "(pOVar4->super_Output_section_data_build)" ( (field_expression "pOVar4->super_Output_section_data_build" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "(**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18);" (call_expression "(**(code **)(this->plt_eh_frame_cie_size + 0x68))\n                          (this,puVar11,uVar8,uVar7,uVar2,iVar18)" (parenthesized_expression "(**(code **)(this->plt_eh_frame_cie_size + 0x68))" ( (pointer_expression "**(code **)(this->plt_eh_frame_cie_size + 0x68)" * (pointer_expression "*(code **)(this->plt_eh_frame_cie_size + 0x68)" * (cast_expression "(code **)(this->plt_eh_frame_cie_size + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this->plt_eh_frame_cie_size + 0x68)" ( (binary_expression "this->plt_eh_frame_cie_size + 0x68" (field_expression "this->plt_eh_frame_cie_size" identifier -> field_identifier) + number_literal) ))))) )) (argument_list "(this,puVar11,uVar8,uVar7,uVar2,iVar18)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);" (assignment_expression "iVar14 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this)" identifier = (call_expression "(**(code **)(this->plt_eh_frame_cie_size + 100))(this)" (parenthesized_expression "(**(code **)(this->plt_eh_frame_cie_size + 100))" ( (pointer_expression "**(code **)(this->plt_eh_frame_cie_size + 100)" * (pointer_expression "*(code **)(this->plt_eh_frame_cie_size + 100)" * (cast_expression "(code **)(this->plt_eh_frame_cie_size + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this->plt_eh_frame_cie_size + 100)" ( (binary_expression "this->plt_eh_frame_cie_size + 100" (field_expression "this->plt_eh_frame_cie_size" identifier -> field_identifier) + number_literal) ))))) )) (argument_list "(this)" ( identifier )))) ;) (expression_statement "local_60 = puVar11 + iVar14;" (assignment_expression "local_60 = puVar11 + iVar14" identifier = (binary_expression "puVar11 + iVar14" identifier + identifier)) ;) (expression_statement "local_40 = puVar13 + 0x18;" (assignment_expression "local_40 = puVar13 + 0x18" identifier = (binary_expression "puVar13 + 0x18" identifier + number_literal)) ;) (expression_statement "uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);" (assignment_expression "uVar15 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this)" identifier = (call_expression "(**(code **)(this->plt_eh_frame_cie_size + 100))(this)" (parenthesized_expression "(**(code **)(this->plt_eh_frame_cie_size + 100))" ( (pointer_expression "**(code **)(this->plt_eh_frame_cie_size + 100)" * (pointer_expression "*(code **)(this->plt_eh_frame_cie_size + 100)" * (cast_expression "(code **)(this->plt_eh_frame_cie_size + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this->plt_eh_frame_cie_size + 100)" ( (binary_expression "this->plt_eh_frame_cie_size + 100" (field_expression "this->plt_eh_frame_cie_size" identifier -> field_identifier) + number_literal) ))))) )) (argument_list "(this)" ( identifier )))) ;) (expression_statement "iVar14 = this->irelative_count_ + this->count_;" (assignment_expression "iVar14 = this->irelative_count_ + this->count_" identifier = (binary_expression "this->irelative_count_ + this->count_" (field_expression "this->irelative_count_" identifier -> field_identifier) + (field_expression "this->count_" identifier -> field_identifier))) ;) (if_statement "if (iVar14 != 0) {\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar19 = 0;\n                  do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);\n                  local_40 = local_40 + iVar14 * 8;\n                }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  } while (iVar14 != iVar19);" do (compound_statement "{\n                    uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;\n                    iVar17 = this->plt_eh_frame_cie_size;\n                    *(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);\n                    iVar19 = iVar19 + 1;\n                    iVar17 = (**(code **)(iVar17 + 100))(this);\n                    local_60 = local_60 + iVar17;\n                    iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                    uVar15 = uVar15 + iVar17;\n                  }" { (expression_statement "uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19);" (assignment_expression "uVar16 = (**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19)" identifier = (call_expression "(**(code **)(this->plt_eh_frame_cie_size + 0x6c))\n                                       (this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19)" (parenthesized_expression "(**(code **)(this->plt_eh_frame_cie_size + 0x6c))" ( (pointer_expression "**(code **)(this->plt_eh_frame_cie_size + 0x6c)" * (pointer_expression "*(code **)(this->plt_eh_frame_cie_size + 0x6c)" * (cast_expression "(code **)(this->plt_eh_frame_cie_size + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this->plt_eh_frame_cie_size + 0x6c)" ( (binary_expression "this->plt_eh_frame_cie_size + 0x6c" (field_expression "this->plt_eh_frame_cie_size" identifier -> field_identifier) + number_literal) ))))) )) (argument_list "(this,local_60,uVar8,uVar7,uVar2,iVar18,iVar19 * 8 + 0x18,\n                                        uVar15,iVar19)" ( identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "iVar19 * 8 + 0x18" (binary_expression "iVar19 * 8" identifier * number_literal) + number_literal) , identifier , identifier )))) ;) (expression_statement "*(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2;" (assignment_expression "*(uint *)(puVar13 + iVar19 * 8 + 0x18) = uVar15 + uVar16 + uVar2" (pointer_expression "*(uint *)(puVar13 + iVar19 * 8 + 0x18)" * (cast_expression "(uint *)(puVar13 + iVar19 * 8 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + iVar19 * 8 + 0x18)" ( (binary_expression "puVar13 + iVar19 * 8 + 0x18" (binary_expression "puVar13 + iVar19 * 8" identifier + (binary_expression "iVar19 * 8" identifier * number_literal)) + number_literal) )))) = (binary_expression "uVar15 + uVar16 + uVar2" (binary_expression "uVar15 + uVar16" identifier + identifier) + identifier)) ;) (expression_statement "iVar17 = this->plt_eh_frame_cie_size;" (assignment_expression "iVar17 = this->plt_eh_frame_cie_size" identifier = (field_expression "this->plt_eh_frame_cie_size" identifier -> field_identifier)) ;) (expression_statement "*(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2);" (assignment_expression "*(uint *)(puVar13 + iVar19 * 8 + 0x1c) =\n                         (uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2)" (pointer_expression "*(uint *)(puVar13 + iVar19 * 8 + 0x1c)" * (cast_expression "(uint *)(puVar13 + iVar19 * 8 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + iVar19 * 8 + 0x1c)" ( (binary_expression "puVar13 + iVar19 * 8 + 0x1c" (binary_expression "puVar13 + iVar19 * 8" identifier + (binary_expression "iVar19 * 8" identifier * number_literal)) + number_literal) )))) = (binary_expression "(uint)CARRY4(uVar15,uVar16) + iVar18 + (uint)CARRY4(uVar15 + uVar16,uVar2)" (binary_expression "(uint)CARRY4(uVar15,uVar16) + iVar18" (cast_expression "(uint)CARRY4(uVar15,uVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar15,uVar16)" identifier (argument_list "(uVar15,uVar16)" ( identifier , identifier )))) + identifier) + (cast_expression "(uint)CARRY4(uVar15 + uVar16,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar15 + uVar16,uVar2)" identifier (argument_list "(uVar15 + uVar16,uVar2)" ( (binary_expression "uVar15 + uVar16" identifier + identifier) , identifier )))))) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = (**(code **)(iVar17 + 100))(this);" (assignment_expression "iVar17 = (**(code **)(iVar17 + 100))(this)" identifier = (call_expression "(**(code **)(iVar17 + 100))(this)" (parenthesized_expression "(**(code **)(iVar17 + 100))" ( (pointer_expression "**(code **)(iVar17 + 100)" * (pointer_expression "*(code **)(iVar17 + 100)" * (cast_expression "(code **)(iVar17 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 100)" ( (binary_expression "iVar17 + 100" identifier + number_literal) ))))) )) (argument_list "(this)" ( identifier )))) ;) (expression_statement "local_60 = local_60 + iVar17;" (assignment_expression "local_60 = local_60 + iVar17" identifier = (binary_expression "local_60 + iVar17" identifier + identifier)) ;) (expression_statement "iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);" (assignment_expression "iVar17 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this)" identifier = (call_expression "(**(code **)(this->plt_eh_frame_cie_size + 100))(this)" (parenthesized_expression "(**(code **)(this->plt_eh_frame_cie_size + 100))" ( (pointer_expression "**(code **)(this->plt_eh_frame_cie_size + 100)" * (pointer_expression "*(code **)(this->plt_eh_frame_cie_size + 100)" * (cast_expression "(code **)(this->plt_eh_frame_cie_size + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this->plt_eh_frame_cie_size + 100)" ( (binary_expression "this->plt_eh_frame_cie_size + 100" (field_expression "this->plt_eh_frame_cie_size" identifier -> field_identifier) + number_literal) ))))) )) (argument_list "(this)" ( identifier )))) ;) (expression_statement "uVar15 = uVar15 + iVar17;" (assignment_expression "uVar15 = uVar15 + iVar17" identifier = (binary_expression "uVar15 + iVar17" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar14 != iVar19)" ( (binary_expression "iVar14 != iVar19" identifier != identifier) )) ;) (expression_statement "local_40 = local_40 + iVar14 * 8;" (assignment_expression "local_40 = local_40 + iVar14 * 8" identifier = (binary_expression "local_40 + iVar14 * 8" identifier + (binary_expression "iVar14 * 8" identifier * number_literal))) ;) })) (if_statement "if (this->tlsdesc_got_offset_ != 0xffffffff) {\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }" if (parenthesized_expression "(this->tlsdesc_got_offset_ != 0xffffffff)" ( (binary_expression "this->tlsdesc_got_offset_ != 0xffffffff" (field_expression "this->tlsdesc_got_offset_" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                  (**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);\n                  iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);\n                  local_60 = local_60 + iVar18;\n                }" { (expression_statement "(**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15);" (call_expression "(**(code **)(this->plt_eh_frame_cie_size + 0x70))\n                            (this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15)" (parenthesized_expression "(**(code **)(this->plt_eh_frame_cie_size + 0x70))" ( (pointer_expression "**(code **)(this->plt_eh_frame_cie_size + 0x70)" * (pointer_expression "*(code **)(this->plt_eh_frame_cie_size + 0x70)" * (cast_expression "(code **)(this->plt_eh_frame_cie_size + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this->plt_eh_frame_cie_size + 0x70)" ( (binary_expression "this->plt_eh_frame_cie_size + 0x70" (field_expression "this->plt_eh_frame_cie_size" identifier -> field_identifier) + number_literal) ))))) )) (argument_list "(this,local_60,uVar8,uVar7,uVar2,iVar18,(int)uVar9,uVar6,\n                             this->tlsdesc_got_offset_,uVar15)" ( identifier , identifier , identifier , identifier , identifier , identifier , (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , (field_expression "this->tlsdesc_got_offset_" identifier -> field_identifier) , identifier ))) ;) (expression_statement "iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this);" (assignment_expression "iVar18 = (**(code **)(this->plt_eh_frame_cie_size + 100))(this)" identifier = (call_expression "(**(code **)(this->plt_eh_frame_cie_size + 100))(this)" (parenthesized_expression "(**(code **)(this->plt_eh_frame_cie_size + 100))" ( (pointer_expression "**(code **)(this->plt_eh_frame_cie_size + 100)" * (pointer_expression "*(code **)(this->plt_eh_frame_cie_size + 100)" * (cast_expression "(code **)(this->plt_eh_frame_cie_size + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this->plt_eh_frame_cie_size + 100)" ( (binary_expression "this->plt_eh_frame_cie_size + 100" (field_expression "this->plt_eh_frame_cie_size" identifier -> field_identifier) + number_literal) ))))) )) (argument_list "(this)" ( identifier )))) ;) (expression_statement "local_60 = local_60 + iVar18;" (assignment_expression "local_60 = local_60 + iVar18" identifier = (binary_expression "local_60 + iVar18" identifier + identifier)) ;) })) (if_statement "if ((int)local_60 - (int)puVar11 == uVar3) {\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }" if (parenthesized_expression "((int)local_60 - (int)puVar11 == uVar3)" ( (binary_expression "(int)local_60 - (int)puVar11 == uVar3" (binary_expression "(int)local_60 - (int)puVar11" (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier)) == identifier) )) (compound_statement "{\n                  if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }\n                    /* WARNING: Subroutine does not return */\n                  gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");\n                }" { (if_statement "if ((int)local_40 - (int)puVar13 == uVar12) {\n                    return;\n                  }" if (parenthesized_expression "((int)local_40 - (int)puVar13 == uVar12)" ( (binary_expression "(int)local_40 - (int)puVar13 == uVar12" (binary_expression "(int)local_40 - (int)puVar13" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) == identifier) )) (compound_statement "{\n                    return;\n                  }" { (return_statement "return;" return ;) })) comment (labeled_statement "gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write");" (call_expression "do_gold_unreachable("../../gold/x86_64.cc",0xa4c,"do_write")" identifier (argument_list "("../../gold/x86_64.cc",0xa4c,"do_write")" ( (string_literal ""../../gold/x86_64.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;)) })) comment (labeled_statement "gold::do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write");" (call_expression "do_gold_unreachable("../../gold/x86_64.cc",0xa4b,"do_write")" identifier (argument_list "("../../gold/x86_64.cc",0xa4b,"do_write")" ( (string_literal ""../../gold/x86_64.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;)) })) })) })) comment (labeled_statement "gold::do_gold_unreachable("../../gold/output.h",0xc5,"address");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/output.h",0xc5,"address");" (call_expression "do_gold_unreachable("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;)) })) })) })) comment (labeled_statement "gold::do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");" (call_expression "do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view")" identifier (argument_list "("../../gold/output.h",0x6f,"get_output_view")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""get_output_view"" " string_content ") ))) ;)) })) (labeled_statement "LAB_0005a271:\n                    /* WARNING: Subroutine does not return */\n  gold::do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");" statement_identifier : comment (labeled_statement "gold::do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");" (call_expression "do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types")" identifier (argument_list "("../../gold/gold.h",0xc0,"convert_types")" ( (string_literal ""../../gold/gold.h"" " string_content ") , number_literal , (string_literal ""convert_types"" " string_content ") ))) ;))) })))
(translation_unit "void FUN_00059f20(int *param_1,int param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  char cVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined4 unaff_EBX;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  undefined8 uVar18;\n  int local_60;\n  int local_40;\n  \n  if ((*(byte *)(param_1 + 7) & 4) == 0) goto LAB_0005a28e;\n  uVar1 = param_1[5];\n  if ((*(byte *)(param_1 + 7) & 2) == 0) goto LAB_0005a252;\n  uVar2 = param_1[3];\n  if (param_1[4] == 0) {\n    if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n  }\nLAB_0005a271:\n                    \n  FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX);\n}\n\n" (function_definition "void FUN_00059f20(int *param_1,int param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  char cVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined4 unaff_EBX;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  undefined8 uVar18;\n  int local_60;\n  int local_40;\n  \n  if ((*(byte *)(param_1 + 7) & 4) == 0) goto LAB_0005a28e;\n  uVar1 = param_1[5];\n  if ((*(byte *)(param_1 + 7) & 2) == 0) goto LAB_0005a252;\n  uVar2 = param_1[3];\n  if (param_1[4] == 0) {\n    if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n  }\nLAB_0005a271:\n                    \n  FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX);\n}" primitive_type (function_declarator "FUN_00059f20(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  char cVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined4 unaff_EBX;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  undefined8 uVar18;\n  int local_60;\n  int local_40;\n  \n  if ((*(byte *)(param_1 + 7) & 4) == 0) goto LAB_0005a28e;\n  uVar1 = param_1[5];\n  if ((*(byte *)(param_1 + 7) & 2) == 0) goto LAB_0005a252;\n  uVar2 = param_1[3];\n  if (param_1[4] == 0) {\n    if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n  }\nLAB_0005a271:\n                    \n  FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX);\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined4 unaff_EBX;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined8 uVar18;" type_identifier identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (if_statement "if ((*(byte *)(param_1 + 7) & 4) == 0) goto LAB_0005a28e;" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 4) == 0)" ( (binary_expression "(*(byte *)(param_1 + 7) & 4) == 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 4)" ( (binary_expression "*(byte *)(param_1 + 7) & 4" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0005a28e;" goto statement_identifier ;)) (expression_statement "uVar1 = param_1[5];" (assignment_expression "uVar1 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(param_1 + 7) & 2) == 0) goto LAB_0005a252;" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 2)" ( (binary_expression "*(byte *)(param_1 + 7) & 2" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0005a252;" goto statement_identifier ;)) (expression_statement "uVar2 = param_1[3];" (assignment_expression "uVar2 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (if_statement "if (param_1[4] == 0) {\n    if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n  }" if (parenthesized_expression "(param_1[4] == 0)" ( (binary_expression "param_1[4] == 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n  }" { (if_statement "if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }" if (parenthesized_expression "((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0))" ( (binary_expression "(-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)" (parenthesized_expression "(-1 < param_1[6])" ( (binary_expression "-1 < param_1[6]" number_literal < (subscript_expression "param_1[6]" identifier [ number_literal ])) )) && (parenthesized_expression "(iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)" ( (comma_expression "iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0" (assignment_expression "iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1)" identifier = (binary_expression "param_1[6] + (uint)CARRY4(uVar2,uVar1)" (subscript_expression "param_1[6]" identifier [ number_literal ]) + (cast_expression "(uint)CARRY4(uVar2,uVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar2,uVar1)" identifier (argument_list "(uVar2,uVar1)" ( identifier , identifier )))))) , (comma_expression "uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0" (assignment_expression "uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1)" identifier = (call_expression "(uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(param_2 + 8) < uVar2 + uVar1)" ( (binary_expression "*(uint *)(param_2 + 8) < uVar2 + uVar1" (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) < (binary_expression "uVar2 + uVar1" identifier + identifier)) )))) , (comma_expression "iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0" (assignment_expression "iVar9 = *(int *)(param_2 + 0xc) - iVar14" identifier = (binary_expression "*(int *)(param_2 + 0xc) - iVar14" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) - identifier)) , (binary_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0" (parenthesized_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16))" ( (binary_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)" (call_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar14)" identifier (argument_list "(*(int *)(param_2 + 0xc),iVar14)" ( (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) , identifier ))) != (call_expression "SBORROW4(iVar9,uVar16)" identifier (argument_list "(iVar9,uVar16)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar9 - uVar16) < 0" (cast_expression "(int)(iVar9 - uVar16)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar9 - uVar16)" ( (binary_expression "iVar9 - uVar16" identifier - identifier) ))) < number_literal))))) ))) )) (compound_statement "{\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }" { (expression_statement "iVar14 = uVar1 + *(int *)(param_2 + 0x10);" (assignment_expression "iVar14 = uVar1 + *(int *)(param_2 + 0x10)" identifier = (binary_expression "uVar1 + *(int *)(param_2 + 0x10)" identifier + (pointer_expression "*(int *)(param_2 + 0x10)" * (cast_expression "(int *)(param_2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "iVar9 = param_1[0xf];" (assignment_expression "iVar9 = param_1[0xf]" identifier = (subscript_expression "param_1[0xf]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }" if (parenthesized_expression "((*(byte *)(iVar9 + 0x1c) & 4) == 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x1c) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1c) & 4)" ( (binary_expression "*(byte *)(iVar9 + 0x1c) & 4" (pointer_expression "*(byte *)(iVar9 + 0x1c)" * (cast_expression "(byte *)(iVar9 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }" { (labeled_statement "LAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);" statement_identifier : (expression_statement "FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);" (call_expression "FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1)" identifier (argument_list "("../../gold/output.h",0xe3,"offset",param_1)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") , identifier ))) ;)) })) (expression_statement "iVar12 = *(int *)(iVar9 + 0x18);" (assignment_expression "iVar12 = *(int *)(iVar9 + 0x18)" identifier = (pointer_expression "*(int *)(iVar9 + 0x18)" * (cast_expression "(int *)(iVar9 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(uint *)(iVar9 + 0x14);" (assignment_expression "uVar1 = *(uint *)(iVar9 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "cVar7 = FUN_0011a440(DAT_0033f2f0);" (assignment_expression "cVar7 = FUN_0011a440(DAT_0033f2f0)" identifier = (call_expression "FUN_0011a440(DAT_0033f2f0)" identifier (argument_list "(DAT_0033f2f0)" ( identifier )))) ;) (expression_statement "iVar9 = param_1[0xf];" (assignment_expression "iVar9 = param_1[0xf]" identifier = (subscript_expression "param_1[0xf]" identifier [ number_literal ])) ;) (if_statement "if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }" { (if_statement "if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;" if (parenthesized_expression "((*(byte *)(iVar9 + 0x1c) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1c) & 2)" ( (binary_expression "*(byte *)(iVar9 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar9 + 0x1c)" * (cast_expression "(byte *)(iVar9 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0005a252;" goto statement_identifier ;)) (expression_statement "uVar16 = *(uint *)(iVar9 + 0xc);" (assignment_expression "uVar16 = *(uint *)(iVar9 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar9 + 0xc)" * (cast_expression "(uint *)(iVar9 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar17 = *(int *)(iVar9 + 0x10)" identifier = (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = param_1[0x10];" (assignment_expression "iVar15 = param_1[0x10]" identifier = (subscript_expression "param_1[0x10]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;" if (parenthesized_expression "((*(byte *)(iVar15 + 0x1c) & 4) == 0)" ( (binary_expression "(*(byte *)(iVar15 + 0x1c) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x1c) & 4)" ( (binary_expression "*(byte *)(iVar15 + 0x1c) & 4" (pointer_expression "*(byte *)(iVar15 + 0x1c)" * (cast_expression "(byte *)(iVar15 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0005a28e;" goto statement_identifier ;)) (if_statement "if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }" if (parenthesized_expression "(iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16)" ( (binary_expression "iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16" (binary_expression "iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18)" (binary_expression "iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16)" (binary_expression "iVar12 + iVar17" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar1,uVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar1,uVar16)" identifier (argument_list "(uVar1,uVar16)" ( identifier , identifier ))))) != (pointer_expression "*(int *)(iVar15 + 0x18)" * (cast_expression "(int *)(iVar15 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) ))))) || (binary_expression "*(int *)(iVar15 + 0x14) != uVar1 + uVar16" (pointer_expression "*(int *)(iVar15 + 0x14)" * (cast_expression "(int *)(iVar15 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x14)" ( (binary_expression "iVar15 + 0x14" identifier + number_literal) )))) != (binary_expression "uVar1 + uVar16" identifier + identifier))) )) (compound_statement "{\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }" { (expression_statement "FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);" (call_expression "FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9)" identifier (argument_list "("../../gold/x86_64.cc",0xa12,"do_write",iVar9)" ( (string_literal ""../../gold/x86_64.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") , identifier ))) ;) })) }) (else_clause "else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }" else (compound_statement "{\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }" { (if_statement "if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;" if (parenthesized_expression "((*(byte *)(iVar9 + 0x1c) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1c) & 2)" ( (binary_expression "*(byte *)(iVar9 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar9 + 0x1c)" * (cast_expression "(byte *)(iVar9 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0005a252;" goto statement_identifier ;)) (expression_statement "iVar15 = param_1[0x10];" (assignment_expression "iVar15 = param_1[0x10]" identifier = (subscript_expression "param_1[0x10]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = *(uint *)(iVar9 + 0xc);" (assignment_expression "uVar16 = *(uint *)(iVar9 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar9 + 0xc)" * (cast_expression "(uint *)(iVar9 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar17 = *(int *)(iVar9 + 0x10)" identifier = (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ;) }))) (if_statement "if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }" if (parenthesized_expression "((*(byte *)(iVar15 + 0x1c) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar15 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x1c) & 2)" ( (binary_expression "*(byte *)(iVar15 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar15 + 0x1c)" * (cast_expression "(byte *)(iVar15 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1c)" ( (binary_expression "iVar15 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }" { (labeled_statement "LAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");" statement_identifier : (expression_statement "FUN_0008b620("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0008b620("../../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 ") ))) ;)) })) (expression_statement "uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);" (assignment_expression "uVar8 = uVar16 + *(uint *)(iVar15 + 0xc)" identifier = (binary_expression "uVar16 + *(uint *)(iVar15 + 0xc)" identifier + (pointer_expression "*(uint *)(iVar15 + 0xc)" * (cast_expression "(uint *)(iVar15 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "unaff_EBX = 0;" (assignment_expression "unaff_EBX = 0" identifier = number_literal) ;) (if_statement "if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;" if (parenthesized_expression "(iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)" ( (binary_expression "iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0" (binary_expression "iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc))" (binary_expression "iVar17 + *(int *)(iVar15 + 0x10)" identifier + (pointer_expression "*(int *)(iVar15 + 0x10)" * (cast_expression "(int *)(iVar15 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar16,*(uint *)(iVar15 + 0xc))" identifier (argument_list "(uVar16,*(uint *)(iVar15 + 0xc))" ( identifier , (pointer_expression "*(uint *)(iVar15 + 0xc)" * (cast_expression "(uint *)(iVar15 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) )))) ))))) != number_literal) )) (goto_statement "goto LAB_0005a271;" goto statement_identifier ;)) (if_statement "if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }" if (parenthesized_expression "(-1 < iVar12)" ( (binary_expression "-1 < iVar12" number_literal < identifier) )) (compound_statement "{\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }" { (expression_statement "iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);" (assignment_expression "iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1)" identifier = (binary_expression "iVar12 + (uint)CARRY4(uVar8,uVar1)" identifier + (cast_expression "(uint)CARRY4(uVar8,uVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar8,uVar1)" identifier (argument_list "(uVar8,uVar1)" ( identifier , identifier )))))) ;) (expression_statement "uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);" (assignment_expression "uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1)" identifier = (call_expression "(uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(param_2 + 8) < uVar8 + uVar1)" ( (binary_expression "*(uint *)(param_2 + 8) < uVar8 + uVar1" (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) < (binary_expression "uVar8 + uVar1" identifier + identifier)) )))) ;) (expression_statement "iVar15 = *(int *)(param_2 + 0xc) - iVar12;" (assignment_expression "iVar15 = *(int *)(param_2 + 0xc) - iVar12" identifier = (binary_expression "*(int *)(param_2 + 0xc) - iVar12" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) - identifier)) ;) (if_statement "if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }" if (parenthesized_expression "((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0)" ( (binary_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0" (parenthesized_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16))" ( (binary_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)" (call_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar12)" identifier (argument_list "(*(int *)(param_2 + 0xc),iVar12)" ( (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) , identifier ))) != (call_expression "SBORROW4(iVar15,uVar16)" identifier (argument_list "(iVar15,uVar16)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar15 - uVar16) < 0" (cast_expression "(int)(iVar15 - uVar16)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar15 - uVar16)" ( (binary_expression "iVar15 - uVar16" identifier - identifier) ))) < number_literal)) )) (compound_statement "{\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }" { (expression_statement "iVar12 = uVar1 + *(int *)(param_2 + 0x10);" (assignment_expression "iVar12 = uVar1 + *(int *)(param_2 + 0x10)" identifier = (binary_expression "uVar1 + *(int *)(param_2 + 0x10)" identifier + (pointer_expression "*(int *)(param_2 + 0x10)" * (cast_expression "(int *)(param_2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))))) ;) (if_statement "if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 1) != 0)" ( (binary_expression "(*(byte *)(param_1 + 7) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 1)" ( (binary_expression "*(byte *)(param_1 + 7) & 1" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }" { (expression_statement "uVar1 = param_1[1];" (assignment_expression "uVar1 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = param_1[2];" (assignment_expression "iVar15 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar17 = param_1[0xe];" (assignment_expression "iVar17 = param_1[0xe]" identifier = (subscript_expression "param_1[0xe]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }" if (parenthesized_expression "((*(byte *)(iVar17 + 0x1c) & 1) != 0)" ( (binary_expression "(*(byte *)(iVar17 + 0x1c) & 1) != 0" (parenthesized_expression "(*(byte *)(iVar17 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar17 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar17 + 0x1c)" * (cast_expression "(byte *)(iVar17 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x1c)" ( (binary_expression "iVar17 + 0x1c" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }" { (expression_statement "uVar3 = *(undefined4 *)(iVar17 + 8);" (assignment_expression "uVar3 = *(undefined4 *)(iVar17 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar17 + 8)" * (cast_expression "(undefined4 *)(iVar17 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 8)" ( (binary_expression "iVar17 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(iVar17 + 4);" (assignment_expression "uVar4 = *(undefined4 *)(iVar17 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar17 + 4)" * (cast_expression "(undefined4 *)(iVar17 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 4)" ( (binary_expression "iVar17 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }" if (parenthesized_expression "((*(byte *)(iVar9 + 0x1c) & 1) != 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x1c) & 1) != 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar9 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar9 + 0x1c)" * (cast_expression "(byte *)(iVar9 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }" { (expression_statement "uVar5 = *(undefined4 *)(iVar9 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar9 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 8)" * (cast_expression "(undefined4 *)(iVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(undefined4 *)(iVar9 + 4);" (assignment_expression "uVar6 = *(undefined4 *)(iVar9 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 4)" * (cast_expression "(undefined4 *)(iVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);" (call_expression "(**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15)" (parenthesized_expression "(**(code **)(*param_1 + 0x68))" ( (pointer_expression "**(code **)(*param_1 + 0x68)" * (pointer_expression "*(code **)(*param_1 + 0x68)" * (cast_expression "(code **)(*param_1 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x68)" ( (binary_expression "*param_1 + 0x68" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1,iVar14,uVar6,uVar5,uVar1,iVar15)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_60 = (**(code **)(*param_1 + 100))(param_1);" (assignment_expression "local_60 = (**(code **)(*param_1 + 100))(param_1)" identifier = (call_expression "(**(code **)(*param_1 + 100))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 100))" ( (pointer_expression "**(code **)(*param_1 + 100)" * (pointer_expression "*(code **)(*param_1 + 100)" * (cast_expression "(code **)(*param_1 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 100)" ( (binary_expression "*param_1 + 100" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "local_60 = local_60 + iVar14;" (assignment_expression "local_60 = local_60 + iVar14" identifier = (binary_expression "local_60 + iVar14" identifier + identifier)) ;) (expression_statement "local_40 = iVar12 + 0x18;" (assignment_expression "local_40 = iVar12 + 0x18" identifier = (binary_expression "iVar12 + 0x18" identifier + number_literal)) ;) (expression_statement "uVar18 = (**(code **)(*param_1 + 100))(param_1);" (assignment_expression "uVar18 = (**(code **)(*param_1 + 100))(param_1)" identifier = (call_expression "(**(code **)(*param_1 + 100))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 100))" ( (pointer_expression "**(code **)(*param_1 + 100)" * (pointer_expression "*(code **)(*param_1 + 100)" * (cast_expression "(code **)(*param_1 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 100)" ( (binary_expression "*param_1 + 100" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar16 = (uint)uVar18;" (assignment_expression "uVar16 = (uint)uVar18" identifier = (cast_expression "(uint)uVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar9 = param_1[0x12] + param_1[0x11];" (assignment_expression "iVar9 = param_1[0x12] + param_1[0x11]" identifier = (binary_expression "param_1[0x12] + param_1[0x11]" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) + (subscript_expression "param_1[0x11]" identifier [ number_literal ]))) ;) (if_statement "if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);" do (compound_statement "{\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  }" { (expression_statement "uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);" (assignment_expression "uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17)" identifier = (call_expression "(**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17)" (parenthesized_expression "(**(code **)(*param_1 + 0x6c))" ( (pointer_expression "**(code **)(*param_1 + 0x6c)" * (pointer_expression "*(code **)(*param_1 + 0x6c)" * (cast_expression "(code **)(*param_1 + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x6c)" ( (binary_expression "*param_1 + 0x6c" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17)" ( identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "iVar17 * 8 + 0x18" (binary_expression "iVar17 * 8" identifier * number_literal) + number_literal) , identifier , identifier )))) ;) (expression_statement "*(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;" (assignment_expression "*(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1" (pointer_expression "*(uint *)(iVar12 + 0x18 + iVar17 * 8)" * (cast_expression "(uint *)(iVar12 + 0x18 + iVar17 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18 + iVar17 * 8)" ( (binary_expression "iVar12 + 0x18 + iVar17 * 8" (binary_expression "iVar12 + 0x18" identifier + number_literal) + (binary_expression "iVar17 * 8" identifier * number_literal)) )))) = (binary_expression "uVar16 + uVar10 + uVar1" (binary_expression "uVar16 + uVar10" identifier + identifier) + identifier)) ;) (expression_statement "iVar11 = *param_1;" (assignment_expression "iVar11 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);" (assignment_expression "*(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1)" (pointer_expression "*(uint *)(iVar12 + 0x1c + iVar17 * 8)" * (cast_expression "(uint *)(iVar12 + 0x1c + iVar17 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c + iVar17 * 8)" ( (binary_expression "iVar12 + 0x1c + iVar17 * 8" (binary_expression "iVar12 + 0x1c" identifier + number_literal) + (binary_expression "iVar17 * 8" identifier * number_literal)) )))) = (binary_expression "(uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1)" (binary_expression "(uint)CARRY4(uVar16,uVar10) + iVar15" (cast_expression "(uint)CARRY4(uVar16,uVar10)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar16,uVar10)" identifier (argument_list "(uVar16,uVar10)" ( identifier , identifier )))) + identifier) + (cast_expression "(uint)CARRY4(uVar16 + uVar10,uVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar16 + uVar10,uVar1)" identifier (argument_list "(uVar16 + uVar10,uVar1)" ( (binary_expression "uVar16 + uVar10" identifier + identifier) , identifier )))))) ;) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "iVar11 = (**(code **)(iVar11 + 100))(param_1);" (assignment_expression "iVar11 = (**(code **)(iVar11 + 100))(param_1)" identifier = (call_expression "(**(code **)(iVar11 + 100))(param_1)" (parenthesized_expression "(**(code **)(iVar11 + 100))" ( (pointer_expression "**(code **)(iVar11 + 100)" * (pointer_expression "*(code **)(iVar11 + 100)" * (cast_expression "(code **)(iVar11 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 100)" ( (binary_expression "iVar11 + 100" identifier + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "local_60 = local_60 + iVar11;" (assignment_expression "local_60 = local_60 + iVar11" identifier = (binary_expression "local_60 + iVar11" identifier + identifier)) ;) (expression_statement "iVar11 = (**(code **)(*param_1 + 100))(param_1);" (assignment_expression "iVar11 = (**(code **)(*param_1 + 100))(param_1)" identifier = (call_expression "(**(code **)(*param_1 + 100))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 100))" ( (pointer_expression "**(code **)(*param_1 + 100)" * (pointer_expression "*(code **)(*param_1 + 100)" * (cast_expression "(code **)(*param_1 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 100)" ( (binary_expression "*param_1 + 100" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar16 = uVar16 + iVar11;" (assignment_expression "uVar16 = uVar16 + iVar11" identifier = (binary_expression "uVar16 + iVar11" identifier + identifier)) ;) (expression_statement "uVar18 = CONCAT44(iVar9,uVar16);" (assignment_expression "uVar18 = CONCAT44(iVar9,uVar16)" identifier = (call_expression "CONCAT44(iVar9,uVar16)" identifier (argument_list "(iVar9,uVar16)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "(iVar9 != iVar17)" ( (binary_expression "iVar9 != iVar17" identifier != identifier) )) ;) (expression_statement "local_40 = local_40 + iVar9 * 8;" (assignment_expression "local_40 = local_40 + iVar9 * 8" identifier = (binary_expression "local_40 + iVar9 * 8" identifier + (binary_expression "iVar9 * 8" identifier * number_literal))) ;) })) (expression_statement "uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);" (assignment_expression "uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar18 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar18 >> 0x20)" ( (binary_expression "(ulonglong)uVar18 >> 0x20" (cast_expression "(ulonglong)uVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }" if (parenthesized_expression "(param_1[0x13] != -1)" ( (binary_expression "param_1[0x13] != -1" (subscript_expression "param_1[0x13]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }" { (expression_statement "(**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);" (call_expression "(**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18)" (parenthesized_expression "(**(code **)(*param_1 + 0x70))" ( (pointer_expression "**(code **)(*param_1 + 0x70)" * (pointer_expression "*(code **)(*param_1 + 0x70)" * (cast_expression "(code **)(*param_1 + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x70)" ( (binary_expression "*param_1 + 0x70" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , (subscript_expression "param_1[0x13]" identifier [ number_literal ]) , (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "uVar18 = (**(code **)(*param_1 + 100))(param_1);" (assignment_expression "uVar18 = (**(code **)(*param_1 + 100))(param_1)" identifier = (call_expression "(**(code **)(*param_1 + 100))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 100))" ( (pointer_expression "**(code **)(*param_1 + 100)" * (pointer_expression "*(code **)(*param_1 + 100)" * (cast_expression "(code **)(*param_1 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 100)" ( (binary_expression "*param_1 + 100" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);" (assignment_expression "uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar18 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar18 >> 0x20)" ( (binary_expression "(ulonglong)uVar18 >> 0x20" (cast_expression "(ulonglong)uVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_60 = local_60 + (int)uVar18;" (assignment_expression "local_60 = local_60 + (int)uVar18" identifier = (binary_expression "local_60 + (int)uVar18" identifier + (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (if_statement "if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }" if (parenthesized_expression "(local_60 - iVar14 == uVar2)" ( (binary_expression "local_60 - iVar14 == uVar2" (binary_expression "local_60 - iVar14" identifier - identifier) == identifier) )) (compound_statement "{\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }" { (if_statement "if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }" if (parenthesized_expression "(local_40 - iVar12 == uVar8)" ( (binary_expression "local_40 - iVar12 == uVar8" (binary_expression "local_40 - iVar12" identifier - identifier) == identifier) )) (compound_statement "{\n                    return;\n                  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);" (call_expression "FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12)" identifier (argument_list "("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12)" ( (string_literal ""../../gold/x86_64.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") , (binary_expression "local_40 - iVar12" identifier - identifier) ))) ;) })) (expression_statement "FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);" (call_expression "FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13)" identifier (argument_list "("../../gold/x86_64.cc",0xa4b,"do_write",uVar13)" ( (string_literal ""../../gold/x86_64.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") , identifier ))) ;) })) })) })) (expression_statement "FUN_0008b620("../../gold/output.h",0xc5,"address");" (call_expression "FUN_0008b620("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;) })) })) })) (expression_statement "FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");" (call_expression "FUN_0008b620("../../gold/output.h",0x6f,"get_output_view")" identifier (argument_list "("../../gold/output.h",0x6f,"get_output_view")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""get_output_view"" " string_content ") ))) ;) })) (labeled_statement "LAB_0005a271:\n                    \n  FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX);" statement_identifier : (expression_statement "FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX);" (call_expression "FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX)" identifier (argument_list "("../../gold/gold.h",0xc0,"convert_types",unaff_EBX)" ( (string_literal ""../../gold/gold.h"" " string_content ") , number_literal , (string_literal ""convert_types"" " string_content ") , identifier ))) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) , (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (binary_expression IDENT + IDENT)) )))) , (comma_expression (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) != (call_expression IDENT (argument_list ( IDENT , IDENT )))) )) == (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) < LIT))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) || (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (binary_expression IDENT + IDENT))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (binary_expression IDENT + IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) != (call_expression IDENT (argument_list ( IDENT , IDENT )))) )) == (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) < LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , (binary_expression (binary_expression IDENT * LIT) + LIT) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) == IDENT) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , (binary_expression IDENT - IDENT) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) })) })) (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 ") ))) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })))
(function_definition "void FUN_00059f20(int *param_1,int param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  char cVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined4 unaff_EBX;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  undefined8 uVar18;\n  int local_60;\n  int local_40;\n  \n  if ((*(byte *)(param_1 + 7) & 4) == 0) goto LAB_0005a28e;\n  uVar1 = param_1[5];\n  if ((*(byte *)(param_1 + 7) & 2) == 0) goto LAB_0005a252;\n  uVar2 = param_1[3];\n  if (param_1[4] == 0) {\n    if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n  }\nLAB_0005a271:\n                    \n  FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX);\n}" (primitive_type "void") (function_declarator "FUN_00059f20(int *param_1,int param_2)" (identifier "FUN_00059f20") (parameter_list "(int *param_1,int param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  char cVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined4 unaff_EBX;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  int iVar17;\n  undefined8 uVar18;\n  int local_60;\n  int local_40;\n  \n  if ((*(byte *)(param_1 + 7) & 4) == 0) goto LAB_0005a28e;\n  uVar1 = param_1[5];\n  if ((*(byte *)(param_1 + 7) & 2) == 0) goto LAB_0005a252;\n  uVar2 = param_1[3];\n  if (param_1[4] == 0) {\n    if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n  }\nLAB_0005a271:\n                    \n  FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX);\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "char cVar7;" (primitive_type "char") (identifier "cVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "undefined4 unaff_EBX;" (type_identifier "undefined4") (identifier "unaff_EBX") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "undefined8 uVar18;" (type_identifier "undefined8") (identifier "uVar18") (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (if_statement "if ((*(byte *)(param_1 + 7) & 4) == 0) goto LAB_0005a28e;" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 7) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 7) & 4) == 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 4)" (( "(") (binary_expression "*(byte *)(param_1 + 7) & 4" (pointer_expression "*(byte *)(param_1 + 7)" (* "*") (cast_expression "(byte *)(param_1 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005a28e;" (goto "goto") (statement_identifier "LAB_0005a28e") (; ";"))) (expression_statement "uVar1 = param_1[5];" (assignment_expression "uVar1 = param_1[5]" (identifier "uVar1") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 7) & 2) == 0) goto LAB_0005a252;" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 7) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 2)" (( "(") (binary_expression "*(byte *)(param_1 + 7) & 2" (pointer_expression "*(byte *)(param_1 + 7)" (* "*") (cast_expression "(byte *)(param_1 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005a252;" (goto "goto") (statement_identifier "LAB_0005a252") (; ";"))) (expression_statement "uVar2 = param_1[3];" (assignment_expression "uVar2 = param_1[3]" (identifier "uVar2") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (param_1[4] == 0) {\n    if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n  }" (if "if") (parenthesized_expression "(param_1[4] == 0)" (( "(") (binary_expression "param_1[4] == 0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n  }" ({ "{") (if_statement "if ((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)) {\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }" (if "if") (parenthesized_expression "((-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0))" (( "(") (binary_expression "(-1 < param_1[6]) &&\n       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)" (parenthesized_expression "(-1 < param_1[6])" (( "(") (binary_expression "-1 < param_1[6]" (number_literal "-1") (< "<") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "(iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0)" (( "(") (comma_expression "iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),\n       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0" (assignment_expression "iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1)" (identifier "iVar14") (= "=") (binary_expression "param_1[6] + (uint)CARRY4(uVar2,uVar1)" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (+ "+") (cast_expression "(uint)CARRY4(uVar2,uVar1)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar2,uVar1)" (identifier "CARRY4") (argument_list "(uVar2,uVar1)" (( "(") (identifier "uVar2") (, ",") (identifier "uVar1") () ")")))))) (, ",") (comma_expression "uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),\n       iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0" (assignment_expression "uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1)" (identifier "uVar16") (= "=") (call_expression "(uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(param_2 + 8) < uVar2 + uVar1)" (( "(") (binary_expression "*(uint *)(param_2 + 8) < uVar2 + uVar1" (pointer_expression "*(uint *)(param_2 + 8)" (* "*") (cast_expression "(uint *)(param_2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (< "<") (binary_expression "uVar2 + uVar1" (identifier "uVar2") (+ "+") (identifier "uVar1"))) () ")")))) (, ",") (comma_expression "iVar9 = *(int *)(param_2 + 0xc) - iVar14,\n       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0" (assignment_expression "iVar9 = *(int *)(param_2 + 0xc) - iVar14" (identifier "iVar9") (= "=") (binary_expression "*(int *)(param_2 + 0xc) - iVar14" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (identifier "iVar14"))) (, ",") (binary_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==\n       (int)(iVar9 - uVar16) < 0" (parenthesized_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16))" (( "(") (binary_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)" (call_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar14)" (identifier "SBORROW4") (argument_list "(*(int *)(param_2 + 0xc),iVar14)" (( "(") (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (identifier "iVar14") () ")"))) (!= "!=") (call_expression "SBORROW4(iVar9,uVar16)" (identifier "SBORROW4") (argument_list "(iVar9,uVar16)" (( "(") (identifier "iVar9") (, ",") (identifier "uVar16") () ")")))) () ")")) (== "==") (binary_expression "(int)(iVar9 - uVar16) < 0" (cast_expression "(int)(iVar9 - uVar16)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar9 - uVar16)" (( "(") (binary_expression "iVar9 - uVar16" (identifier "iVar9") (- "-") (identifier "uVar16")) () ")"))) (< "<") (number_literal "0")))))) () ")"))) () ")")) (compound_statement "{\n      iVar14 = uVar1 + *(int *)(param_2 + 0x10);\n      iVar9 = param_1[0xf];\n      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }\n      iVar12 = *(int *)(iVar9 + 0x18);\n      uVar1 = *(uint *)(iVar9 + 0x14);\n      cVar7 = FUN_0011a440(DAT_0033f2f0);\n      iVar9 = param_1[0xf];\n      if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }\n      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);\n      unaff_EBX = 0;\n      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;\n      if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }\n    }" ({ "{") (expression_statement "iVar14 = uVar1 + *(int *)(param_2 + 0x10);" (assignment_expression "iVar14 = uVar1 + *(int *)(param_2 + 0x10)" (identifier "iVar14") (= "=") (binary_expression "uVar1 + *(int *)(param_2 + 0x10)" (identifier "uVar1") (+ "+") (pointer_expression "*(int *)(param_2 + 0x10)" (* "*") (cast_expression "(int *)(param_2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "iVar9 = param_1[0xf];" (assignment_expression "iVar9 = param_1[0xf]" (identifier "iVar9") (= "=") (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (if_statement "if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }" (if "if") (parenthesized_expression "((*(byte *)(iVar9 + 0x1c) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(iVar9 + 0x1c) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1c) & 4)" (( "(") (binary_expression "*(byte *)(iVar9 + 0x1c) & 4" (pointer_expression "*(byte *)(iVar9 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar9 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x1c)" (( "(") (binary_expression "iVar9 + 0x1c" (identifier "iVar9") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);\n      }" ({ "{") (labeled_statement "LAB_0005a28e:\n                    \n        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);" (statement_identifier "LAB_0005a28e") (: ":") (expression_statement "FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);" (call_expression "FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1)" (identifier "FUN_0008b620") (argument_list "("../../gold/output.h",0xe3,"offset",param_1)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xe3") (, ",") (string_literal ""offset"" (" """) (string_content "offset") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";"))) (} "}"))) (expression_statement "iVar12 = *(int *)(iVar9 + 0x18);" (assignment_expression "iVar12 = *(int *)(iVar9 + 0x18)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar9 + 0x18)" (* "*") (cast_expression "(int *)(iVar9 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "uVar1 = *(uint *)(iVar9 + 0x14);" (assignment_expression "uVar1 = *(uint *)(iVar9 + 0x14)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(iVar9 + 0x14)" (* "*") (cast_expression "(uint *)(iVar9 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "cVar7 = FUN_0011a440(DAT_0033f2f0);" (assignment_expression "cVar7 = FUN_0011a440(DAT_0033f2f0)" (identifier "cVar7") (= "=") (call_expression "FUN_0011a440(DAT_0033f2f0)" (identifier "FUN_0011a440") (argument_list "(DAT_0033f2f0)" (( "(") (identifier "DAT_0033f2f0") () ")")))) (; ";")) (expression_statement "iVar9 = param_1[0xf];" (assignment_expression "iVar9 = param_1[0xf]" (identifier "iVar9") (= "=") (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (if_statement "if (cVar7 == '\0') {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }\n      else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n        iVar15 = param_1[0x10];\n        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;\n        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }\n      }" ({ "{") (if_statement "if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;" (if "if") (parenthesized_expression "((*(byte *)(iVar9 + 0x1c) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(iVar9 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1c) & 2)" (( "(") (binary_expression "*(byte *)(iVar9 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar9 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar9 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x1c)" (( "(") (binary_expression "iVar9 + 0x1c" (identifier "iVar9") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005a252;" (goto "goto") (statement_identifier "LAB_0005a252") (; ";"))) (expression_statement "uVar16 = *(uint *)(iVar9 + 0xc);" (assignment_expression "uVar16 = *(uint *)(iVar9 + 0xc)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(iVar9 + 0xc)" (* "*") (cast_expression "(uint *)(iVar9 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar17 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar17 = *(int *)(iVar9 + 0x10)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar15 = param_1[0x10];" (assignment_expression "iVar15 = param_1[0x10]" (identifier "iVar15") (= "=") (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (if_statement "if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;" (if "if") (parenthesized_expression "((*(byte *)(iVar15 + 0x1c) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(iVar15 + 0x1c) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x1c) & 4)" (( "(") (binary_expression "*(byte *)(iVar15 + 0x1c) & 4" (pointer_expression "*(byte *)(iVar15 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar15 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x1c)" (( "(") (binary_expression "iVar15 + 0x1c" (identifier "iVar15") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005a28e;" (goto "goto") (statement_identifier "LAB_0005a28e") (; ";"))) (if_statement "if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }" (if "if") (parenthesized_expression "(iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16)" (( "(") (binary_expression "iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||\n            *(int *)(iVar15 + 0x14) != uVar1 + uVar16" (binary_expression "iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18)" (binary_expression "iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16)" (binary_expression "iVar12 + iVar17" (identifier "iVar12") (+ "+") (identifier "iVar17")) (+ "+") (cast_expression "(uint)CARRY4(uVar1,uVar16)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar1,uVar16)" (identifier "CARRY4") (argument_list "(uVar1,uVar16)" (( "(") (identifier "uVar1") (, ",") (identifier "uVar16") () ")"))))) (!= "!=") (pointer_expression "*(int *)(iVar15 + 0x18)" (* "*") (cast_expression "(int *)(iVar15 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x18)" (( "(") (binary_expression "iVar15 + 0x18" (identifier "iVar15") (+ "+") (number_literal "0x18")) () ")"))))) (|| "||") (binary_expression "*(int *)(iVar15 + 0x14) != uVar1 + uVar16" (pointer_expression "*(int *)(iVar15 + 0x14)" (* "*") (cast_expression "(int *)(iVar15 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x14)" (( "(") (binary_expression "iVar15 + 0x14" (identifier "iVar15") (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (binary_expression "uVar1 + uVar16" (identifier "uVar1") (+ "+") (identifier "uVar16")))) () ")")) (compound_statement "{\n                    \n          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);\n        }" ({ "{") (expression_statement "FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);" (call_expression "FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9)" (identifier "FUN_0008b620") (argument_list "("../../gold/x86_64.cc",0xa12,"do_write",iVar9)" (( "(") (string_literal ""../../gold/x86_64.cc"" (" """) (string_content "../../gold/x86_64.cc") (" """)) (, ",") (number_literal "0xa12") (, ",") (string_literal ""do_write"" (" """) (string_content "do_write") (" """)) (, ",") (identifier "iVar9") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }" (else "else") (compound_statement "{\n        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;\n        iVar15 = param_1[0x10];\n        uVar16 = *(uint *)(iVar9 + 0xc);\n        iVar17 = *(int *)(iVar9 + 0x10);\n      }" ({ "{") (if_statement "if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;" (if "if") (parenthesized_expression "((*(byte *)(iVar9 + 0x1c) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(iVar9 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1c) & 2)" (( "(") (binary_expression "*(byte *)(iVar9 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar9 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar9 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x1c)" (( "(") (binary_expression "iVar9 + 0x1c" (identifier "iVar9") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005a252;" (goto "goto") (statement_identifier "LAB_0005a252") (; ";"))) (expression_statement "iVar15 = param_1[0x10];" (assignment_expression "iVar15 = param_1[0x10]" (identifier "iVar15") (= "=") (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "uVar16 = *(uint *)(iVar9 + 0xc);" (assignment_expression "uVar16 = *(uint *)(iVar9 + 0xc)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(iVar9 + 0xc)" (* "*") (cast_expression "(uint *)(iVar9 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar17 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar17 = *(int *)(iVar9 + 0x10)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")))) (if_statement "if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }" (if "if") (parenthesized_expression "((*(byte *)(iVar15 + 0x1c) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(iVar15 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar15 + 0x1c) & 2)" (( "(") (binary_expression "*(byte *)(iVar15 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar15 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar15 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x1c)" (( "(") (binary_expression "iVar15 + 0x1c" (identifier "iVar15") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");\n      }" ({ "{") (labeled_statement "LAB_0005a252:\n                    \n        FUN_0008b620("../../gold/output.h",0xcf,"data_size");" (statement_identifier "LAB_0005a252") (: ":") (expression_statement "FUN_0008b620("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0008b620("../../gold/output.h",0xcf,"data_size")" (identifier "FUN_0008b620") (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") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);" (assignment_expression "uVar8 = uVar16 + *(uint *)(iVar15 + 0xc)" (identifier "uVar8") (= "=") (binary_expression "uVar16 + *(uint *)(iVar15 + 0xc)" (identifier "uVar16") (+ "+") (pointer_expression "*(uint *)(iVar15 + 0xc)" (* "*") (cast_expression "(uint *)(iVar15 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xc)" (( "(") (binary_expression "iVar15 + 0xc" (identifier "iVar15") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (expression_statement "unaff_EBX = 0;" (assignment_expression "unaff_EBX = 0" (identifier "unaff_EBX") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)\n      goto LAB_0005a271;" (if "if") (parenthesized_expression "(iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)" (( "(") (binary_expression "iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0" (binary_expression "iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc))" (binary_expression "iVar17 + *(int *)(iVar15 + 0x10)" (identifier "iVar17") (+ "+") (pointer_expression "*(int *)(iVar15 + 0x10)" (* "*") (cast_expression "(int *)(iVar15 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x10)" (( "(") (binary_expression "iVar15 + 0x10" (identifier "iVar15") (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar16,*(uint *)(iVar15 + 0xc))" (identifier "CARRY4") (argument_list "(uVar16,*(uint *)(iVar15 + 0xc))" (( "(") (identifier "uVar16") (, ",") (pointer_expression "*(uint *)(iVar15 + 0xc)" (* "*") (cast_expression "(uint *)(iVar15 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xc)" (( "(") (binary_expression "iVar15 + 0xc" (identifier "iVar15") (+ "+") (number_literal "0xc")) () ")")))) () ")"))))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005a271;" (goto "goto") (statement_identifier "LAB_0005a271") (; ";"))) (if_statement "if (-1 < iVar12) {\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }" (if "if") (parenthesized_expression "(-1 < iVar12)" (( "(") (binary_expression "-1 < iVar12" (number_literal "-1") (< "<") (identifier "iVar12")) () ")")) (compound_statement "{\n        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);\n        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);\n        iVar15 = *(int *)(param_2 + 0xc) - iVar12;\n        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }\n      }" ({ "{") (expression_statement "iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);" (assignment_expression "iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1)" (identifier "iVar12") (= "=") (binary_expression "iVar12 + (uint)CARRY4(uVar8,uVar1)" (identifier "iVar12") (+ "+") (cast_expression "(uint)CARRY4(uVar8,uVar1)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar8,uVar1)" (identifier "CARRY4") (argument_list "(uVar8,uVar1)" (( "(") (identifier "uVar8") (, ",") (identifier "uVar1") () ")")))))) (; ";")) (expression_statement "uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);" (assignment_expression "uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1)" (identifier "uVar16") (= "=") (call_expression "(uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(param_2 + 8) < uVar8 + uVar1)" (( "(") (binary_expression "*(uint *)(param_2 + 8) < uVar8 + uVar1" (pointer_expression "*(uint *)(param_2 + 8)" (* "*") (cast_expression "(uint *)(param_2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (< "<") (binary_expression "uVar8 + uVar1" (identifier "uVar8") (+ "+") (identifier "uVar1"))) () ")")))) (; ";")) (expression_statement "iVar15 = *(int *)(param_2 + 0xc) - iVar12;" (assignment_expression "iVar15 = *(int *)(param_2 + 0xc) - iVar12" (identifier "iVar15") (= "=") (binary_expression "*(int *)(param_2 + 0xc) - iVar12" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (identifier "iVar12"))) (; ";")) (if_statement "if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0) {\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }" (if "if") (parenthesized_expression "((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0)" (( "(") (binary_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==\n            (int)(iVar15 - uVar16) < 0" (parenthesized_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16))" (( "(") (binary_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)" (call_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar12)" (identifier "SBORROW4") (argument_list "(*(int *)(param_2 + 0xc),iVar12)" (( "(") (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (identifier "iVar12") () ")"))) (!= "!=") (call_expression "SBORROW4(iVar15,uVar16)" (identifier "SBORROW4") (argument_list "(iVar15,uVar16)" (( "(") (identifier "iVar15") (, ",") (identifier "uVar16") () ")")))) () ")")) (== "==") (binary_expression "(int)(iVar15 - uVar16) < 0" (cast_expression "(int)(iVar15 - uVar16)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar15 - uVar16)" (( "(") (binary_expression "iVar15 - uVar16" (identifier "iVar15") (- "-") (identifier "uVar16")) () ")"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n          iVar12 = uVar1 + *(int *)(param_2 + 0x10);\n          if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }\n                    \n          FUN_0008b620("../../gold/output.h",0xc5,"address");\n        }" ({ "{") (expression_statement "iVar12 = uVar1 + *(int *)(param_2 + 0x10);" (assignment_expression "iVar12 = uVar1 + *(int *)(param_2 + 0x10)" (identifier "iVar12") (= "=") (binary_expression "uVar1 + *(int *)(param_2 + 0x10)" (identifier "uVar1") (+ "+") (pointer_expression "*(int *)(param_2 + 0x10)" (* "*") (cast_expression "(int *)(param_2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 7) & 1) != 0) {\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 7) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 7) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 1)" (( "(") (binary_expression "*(byte *)(param_1 + 7) & 1" (pointer_expression "*(byte *)(param_1 + 7)" (* "*") (cast_expression "(byte *)(param_1 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar1 = param_1[1];\n            iVar15 = param_1[2];\n            iVar17 = param_1[0xe];\n            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }\n          }" ({ "{") (expression_statement "uVar1 = param_1[1];" (assignment_expression "uVar1 = param_1[1]" (identifier "uVar1") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar15 = param_1[2];" (assignment_expression "iVar15 = param_1[2]" (identifier "iVar15") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar17 = param_1[0xe];" (assignment_expression "iVar17 = param_1[0xe]" (identifier "iVar17") (= "=") (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (if_statement "if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }" (if "if") (parenthesized_expression "((*(byte *)(iVar17 + 0x1c) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(iVar17 + 0x1c) & 1) != 0" (parenthesized_expression "(*(byte *)(iVar17 + 0x1c) & 1)" (( "(") (binary_expression "*(byte *)(iVar17 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar17 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar17 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x1c)" (( "(") (binary_expression "iVar17 + 0x1c" (identifier "iVar17") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar3 = *(undefined4 *)(iVar17 + 8);\n              uVar4 = *(undefined4 *)(iVar17 + 4);\n              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }\n            }" ({ "{") (expression_statement "uVar3 = *(undefined4 *)(iVar17 + 8);" (assignment_expression "uVar3 = *(undefined4 *)(iVar17 + 8)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(iVar17 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar17 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 8)" (( "(") (binary_expression "iVar17 + 8" (identifier "iVar17") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(iVar17 + 4);" (assignment_expression "uVar4 = *(undefined4 *)(iVar17 + 4)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(iVar17 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar17 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 4)" (( "(") (binary_expression "iVar17 + 4" (identifier "iVar17") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }" (if "if") (parenthesized_expression "((*(byte *)(iVar9 + 0x1c) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(iVar9 + 0x1c) & 1) != 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x1c) & 1)" (( "(") (binary_expression "*(byte *)(iVar9 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar9 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar9 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x1c)" (( "(") (binary_expression "iVar9 + 0x1c" (identifier "iVar9") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar5 = *(undefined4 *)(iVar9 + 8);\n                uVar6 = *(undefined4 *)(iVar9 + 4);\n                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);\n                local_60 = (**(code **)(*param_1 + 100))(param_1);\n                local_60 = local_60 + iVar14;\n                local_40 = iVar12 + 0x18;\n                uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                uVar16 = (uint)uVar18;\n                iVar9 = param_1[0x12] + param_1[0x11];\n                if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }\n                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }\n                if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }\n                    \n                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);\n              }" ({ "{") (expression_statement "uVar5 = *(undefined4 *)(iVar9 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar9 + 8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(iVar9 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar6 = *(undefined4 *)(iVar9 + 4);" (assignment_expression "uVar6 = *(undefined4 *)(iVar9 + 4)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(iVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "(**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);" (call_expression "(**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15)" (parenthesized_expression "(**(code **)(*param_1 + 0x68))" (( "(") (pointer_expression "**(code **)(*param_1 + 0x68)" (* "*") (pointer_expression "*(code **)(*param_1 + 0x68)" (* "*") (cast_expression "(code **)(*param_1 + 0x68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x68)" (( "(") (binary_expression "*param_1 + 0x68" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x68")) () ")"))))) () ")")) (argument_list "(param_1,iVar14,uVar6,uVar5,uVar1,iVar15)" (( "(") (identifier "param_1") (, ",") (identifier "iVar14") (, ",") (identifier "uVar6") (, ",") (identifier "uVar5") (, ",") (identifier "uVar1") (, ",") (identifier "iVar15") () ")"))) (; ";")) (expression_statement "local_60 = (**(code **)(*param_1 + 100))(param_1);" (assignment_expression "local_60 = (**(code **)(*param_1 + 100))(param_1)" (identifier "local_60") (= "=") (call_expression "(**(code **)(*param_1 + 100))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 100))" (( "(") (pointer_expression "**(code **)(*param_1 + 100)" (* "*") (pointer_expression "*(code **)(*param_1 + 100)" (* "*") (cast_expression "(code **)(*param_1 + 100)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 100)" (( "(") (binary_expression "*param_1 + 100" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "100")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "local_60 = local_60 + iVar14;" (assignment_expression "local_60 = local_60 + iVar14" (identifier "local_60") (= "=") (binary_expression "local_60 + iVar14" (identifier "local_60") (+ "+") (identifier "iVar14"))) (; ";")) (expression_statement "local_40 = iVar12 + 0x18;" (assignment_expression "local_40 = iVar12 + 0x18" (identifier "local_40") (= "=") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "uVar18 = (**(code **)(*param_1 + 100))(param_1);" (assignment_expression "uVar18 = (**(code **)(*param_1 + 100))(param_1)" (identifier "uVar18") (= "=") (call_expression "(**(code **)(*param_1 + 100))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 100))" (( "(") (pointer_expression "**(code **)(*param_1 + 100)" (* "*") (pointer_expression "*(code **)(*param_1 + 100)" (* "*") (cast_expression "(code **)(*param_1 + 100)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 100)" (( "(") (binary_expression "*param_1 + 100" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "100")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar16 = (uint)uVar18;" (assignment_expression "uVar16 = (uint)uVar18" (identifier "uVar16") (= "=") (cast_expression "(uint)uVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar18"))) (; ";")) (expression_statement "iVar9 = param_1[0x12] + param_1[0x11];" (assignment_expression "iVar9 = param_1[0x12] + param_1[0x11]" (identifier "iVar9") (= "=") (binary_expression "param_1[0x12] + param_1[0x11]" (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]")) (+ "+") (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]")))) (; ";")) (if_statement "if (iVar9 != 0) {\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar17 = 0;\n                  do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);\n                  local_40 = local_40 + iVar9 * 8;\n                }" ({ "{") (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  } while (iVar9 != iVar17);" (do "do") (compound_statement "{\n                    uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);\n                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;\n                    iVar11 = *param_1;\n                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);\n                    iVar17 = iVar17 + 1;\n                    iVar11 = (**(code **)(iVar11 + 100))(param_1);\n                    local_60 = local_60 + iVar11;\n                    iVar11 = (**(code **)(*param_1 + 100))(param_1);\n                    uVar16 = uVar16 + iVar11;\n                    uVar18 = CONCAT44(iVar9,uVar16);\n                  }" ({ "{") (expression_statement "uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17);" (assignment_expression "uVar10 = (**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17)" (identifier "uVar10") (= "=") (call_expression "(**(code **)(*param_1 + 0x6c))\n                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17)" (parenthesized_expression "(**(code **)(*param_1 + 0x6c))" (( "(") (pointer_expression "**(code **)(*param_1 + 0x6c)" (* "*") (pointer_expression "*(code **)(*param_1 + 0x6c)" (* "*") (cast_expression "(code **)(*param_1 + 0x6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x6c)" (( "(") (binary_expression "*param_1 + 0x6c" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x6c")) () ")"))))) () ")")) (argument_list "(param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,\n                                        uVar16,iVar17)" (( "(") (identifier "param_1") (, ",") (identifier "local_60") (, ",") (identifier "uVar6") (, ",") (identifier "uVar5") (, ",") (identifier "uVar1") (, ",") (identifier "iVar15") (, ",") (binary_expression "iVar17 * 8 + 0x18" (binary_expression "iVar17 * 8" (identifier "iVar17") (* "*") (number_literal "8")) (+ "+") (number_literal "0x18")) (, ",") (identifier "uVar16") (, ",") (identifier "iVar17") () ")")))) (; ";")) (expression_statement "*(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;" (assignment_expression "*(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1" (pointer_expression "*(uint *)(iVar12 + 0x18 + iVar17 * 8)" (* "*") (cast_expression "(uint *)(iVar12 + 0x18 + iVar17 * 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x18 + iVar17 * 8)" (( "(") (binary_expression "iVar12 + 0x18 + iVar17 * 8" (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) (+ "+") (binary_expression "iVar17 * 8" (identifier "iVar17") (* "*") (number_literal "8"))) () ")")))) (= "=") (binary_expression "uVar16 + uVar10 + uVar1" (binary_expression "uVar16 + uVar10" (identifier "uVar16") (+ "+") (identifier "uVar10")) (+ "+") (identifier "uVar1"))) (; ";")) (expression_statement "iVar11 = *param_1;" (assignment_expression "iVar11 = *param_1" (identifier "iVar11") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "*(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);" (assignment_expression "*(uint *)(iVar12 + 0x1c + iVar17 * 8) =\n                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1)" (pointer_expression "*(uint *)(iVar12 + 0x1c + iVar17 * 8)" (* "*") (cast_expression "(uint *)(iVar12 + 0x1c + iVar17 * 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x1c + iVar17 * 8)" (( "(") (binary_expression "iVar12 + 0x1c + iVar17 * 8" (binary_expression "iVar12 + 0x1c" (identifier "iVar12") (+ "+") (number_literal "0x1c")) (+ "+") (binary_expression "iVar17 * 8" (identifier "iVar17") (* "*") (number_literal "8"))) () ")")))) (= "=") (binary_expression "(uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1)" (binary_expression "(uint)CARRY4(uVar16,uVar10) + iVar15" (cast_expression "(uint)CARRY4(uVar16,uVar10)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar16,uVar10)" (identifier "CARRY4") (argument_list "(uVar16,uVar10)" (( "(") (identifier "uVar16") (, ",") (identifier "uVar10") () ")")))) (+ "+") (identifier "iVar15")) (+ "+") (cast_expression "(uint)CARRY4(uVar16 + uVar10,uVar1)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar16 + uVar10,uVar1)" (identifier "CARRY4") (argument_list "(uVar16 + uVar10,uVar1)" (( "(") (binary_expression "uVar16 + uVar10" (identifier "uVar16") (+ "+") (identifier "uVar10")) (, ",") (identifier "uVar1") () ")")))))) (; ";")) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar11 = (**(code **)(iVar11 + 100))(param_1);" (assignment_expression "iVar11 = (**(code **)(iVar11 + 100))(param_1)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(iVar11 + 100))(param_1)" (parenthesized_expression "(**(code **)(iVar11 + 100))" (( "(") (pointer_expression "**(code **)(iVar11 + 100)" (* "*") (pointer_expression "*(code **)(iVar11 + 100)" (* "*") (cast_expression "(code **)(iVar11 + 100)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 100)" (( "(") (binary_expression "iVar11 + 100" (identifier "iVar11") (+ "+") (number_literal "100")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "local_60 = local_60 + iVar11;" (assignment_expression "local_60 = local_60 + iVar11" (identifier "local_60") (= "=") (binary_expression "local_60 + iVar11" (identifier "local_60") (+ "+") (identifier "iVar11"))) (; ";")) (expression_statement "iVar11 = (**(code **)(*param_1 + 100))(param_1);" (assignment_expression "iVar11 = (**(code **)(*param_1 + 100))(param_1)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(*param_1 + 100))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 100))" (( "(") (pointer_expression "**(code **)(*param_1 + 100)" (* "*") (pointer_expression "*(code **)(*param_1 + 100)" (* "*") (cast_expression "(code **)(*param_1 + 100)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 100)" (( "(") (binary_expression "*param_1 + 100" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "100")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar16 = uVar16 + iVar11;" (assignment_expression "uVar16 = uVar16 + iVar11" (identifier "uVar16") (= "=") (binary_expression "uVar16 + iVar11" (identifier "uVar16") (+ "+") (identifier "iVar11"))) (; ";")) (expression_statement "uVar18 = CONCAT44(iVar9,uVar16);" (assignment_expression "uVar18 = CONCAT44(iVar9,uVar16)" (identifier "uVar18") (= "=") (call_expression "CONCAT44(iVar9,uVar16)" (identifier "CONCAT44") (argument_list "(iVar9,uVar16)" (( "(") (identifier "iVar9") (, ",") (identifier "uVar16") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 != iVar17)" (( "(") (binary_expression "iVar9 != iVar17" (identifier "iVar9") (!= "!=") (identifier "iVar17")) () ")")) (; ";")) (expression_statement "local_40 = local_40 + iVar9 * 8;" (assignment_expression "local_40 = local_40 + iVar9 * 8" (identifier "local_40") (= "=") (binary_expression "local_40 + iVar9 * 8" (identifier "local_40") (+ "+") (binary_expression "iVar9 * 8" (identifier "iVar9") (* "*") (number_literal "8")))) (; ";")) (} "}"))) (expression_statement "uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);" (assignment_expression "uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20)" (identifier "uVar13") (= "=") (call_expression "(undefined4)((ulonglong)uVar18 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)uVar18 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar18 >> 0x20" (cast_expression "(ulonglong)uVar18" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar18")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (param_1[0x13] != -1) {\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }" (if "if") (parenthesized_expression "(param_1[0x13] != -1)" (( "(") (binary_expression "param_1[0x13] != -1" (subscript_expression "param_1[0x13]" (identifier "param_1") ([ "[") (number_literal "0x13") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n                  (**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);\n                  uVar18 = (**(code **)(*param_1 + 100))(param_1);\n                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);\n                  local_60 = local_60 + (int)uVar18;\n                }" ({ "{") (expression_statement "(**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18);" (call_expression "(**(code **)(*param_1 + 0x70))\n                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18)" (parenthesized_expression "(**(code **)(*param_1 + 0x70))" (( "(") (pointer_expression "**(code **)(*param_1 + 0x70)" (* "*") (pointer_expression "*(code **)(*param_1 + 0x70)" (* "*") (cast_expression "(code **)(*param_1 + 0x70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x70)" (( "(") (binary_expression "*param_1 + 0x70" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x70")) () ")"))))) () ")")) (argument_list "(param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],\n                             (int)uVar18)" (( "(") (identifier "param_1") (, ",") (identifier "local_60") (, ",") (identifier "uVar6") (, ",") (identifier "uVar5") (, ",") (identifier "uVar1") (, ",") (identifier "iVar15") (, ",") (identifier "uVar4") (, ",") (identifier "uVar3") (, ",") (subscript_expression "param_1[0x13]" (identifier "param_1") ([ "[") (number_literal "0x13") (] "]")) (, ",") (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18")) () ")"))) (; ";")) (expression_statement "uVar18 = (**(code **)(*param_1 + 100))(param_1);" (assignment_expression "uVar18 = (**(code **)(*param_1 + 100))(param_1)" (identifier "uVar18") (= "=") (call_expression "(**(code **)(*param_1 + 100))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 100))" (( "(") (pointer_expression "**(code **)(*param_1 + 100)" (* "*") (pointer_expression "*(code **)(*param_1 + 100)" (* "*") (cast_expression "(code **)(*param_1 + 100)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 100)" (( "(") (binary_expression "*param_1 + 100" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "100")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);" (assignment_expression "uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20)" (identifier "uVar13") (= "=") (call_expression "(undefined4)((ulonglong)uVar18 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)uVar18 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar18 >> 0x20" (cast_expression "(ulonglong)uVar18" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar18")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_60 = local_60 + (int)uVar18;" (assignment_expression "local_60 = local_60 + (int)uVar18" (identifier "local_60") (= "=") (binary_expression "local_60 + (int)uVar18" (identifier "local_60") (+ "+") (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18")))) (; ";")) (} "}"))) (if_statement "if (local_60 - iVar14 == uVar2) {\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }" (if "if") (parenthesized_expression "(local_60 - iVar14 == uVar2)" (( "(") (binary_expression "local_60 - iVar14 == uVar2" (binary_expression "local_60 - iVar14" (identifier "local_60") (- "-") (identifier "iVar14")) (== "==") (identifier "uVar2")) () ")")) (compound_statement "{\n                  if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }\n                    \n                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);\n                }" ({ "{") (if_statement "if (local_40 - iVar12 == uVar8) {\n                    return;\n                  }" (if "if") (parenthesized_expression "(local_40 - iVar12 == uVar8)" (( "(") (binary_expression "local_40 - iVar12 == uVar8" (binary_expression "local_40 - iVar12" (identifier "local_40") (- "-") (identifier "iVar12")) (== "==") (identifier "uVar8")) () ")")) (compound_statement "{\n                    return;\n                  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);" (call_expression "FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12)" (identifier "FUN_0008b620") (argument_list "("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12)" (( "(") (string_literal ""../../gold/x86_64.cc"" (" """) (string_content "../../gold/x86_64.cc") (" """)) (, ",") (number_literal "0xa4c") (, ",") (string_literal ""do_write"" (" """) (string_content "do_write") (" """)) (, ",") (binary_expression "local_40 - iVar12" (identifier "local_40") (- "-") (identifier "iVar12")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);" (call_expression "FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13)" (identifier "FUN_0008b620") (argument_list "("../../gold/x86_64.cc",0xa4b,"do_write",uVar13)" (( "(") (string_literal ""../../gold/x86_64.cc"" (" """) (string_content "../../gold/x86_64.cc") (" """)) (, ",") (number_literal "0xa4b") (, ",") (string_literal ""do_write"" (" """) (string_content "do_write") (" """)) (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "FUN_0008b620("../../gold/output.h",0xc5,"address");" (call_expression "FUN_0008b620("../../gold/output.h",0xc5,"address")" (identifier "FUN_0008b620") (argument_list "("../../gold/output.h",0xc5,"address")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xc5") (, ",") (string_literal ""address"" (" """) (string_content "address") (" """)) () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");" (call_expression "FUN_0008b620("../../gold/output.h",0x6f,"get_output_view")" (identifier "FUN_0008b620") (argument_list "("../../gold/output.h",0x6f,"get_output_view")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x6f") (, ",") (string_literal ""get_output_view"" (" """) (string_content "get_output_view") (" """)) () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0005a271:\n                    \n  FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX);" (statement_identifier "LAB_0005a271") (: ":") (expression_statement "FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX);" (call_expression "FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX)" (identifier "FUN_0008b620") (argument_list "("../../gold/gold.h",0xc0,"convert_types",unaff_EBX)" (( "(") (string_literal ""../../gold/gold.h"" (" """) (string_content "../../gold/gold.h") (" """)) (, ",") (number_literal "0xc0") (, ",") (string_literal ""convert_types"" (" """) (string_content "convert_types") (" """)) (, ",") (identifier "unaff_EBX") () ")"))) (; ";"))) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void do_write(Output_data_plt_x86_64<64> * this, Output_file * of) */

void __thiscall
anon_unknown.dwarf_32964f::type_1<64>::function_1
          (type_1<64> *this,type_2 *of)

{
  type_3 *var_12;
  type_4 var_5;
  type_4 var_4;
  type_5 *pOVar4;
  var_1<64,var_2> *pOVar5;
  type_6 uVar6;
  type_6 uVar7;
  type_6 uVar8;
  uint64_t uVar9;
  bool bVar10;
  type_7 *var_14;
  type_4 var_13;
  type_7 *var_15;
  int var_9;
  type_4 var_10;
  type_4 var_16;
  int var_17;
  int var_6;
  int var_7;
  type_8 *pOVar20;
  type_7 *var_18;
  type_7 *var_19;
  
  if ((this->field_0x1c & 4) == 0) goto LAB_0005a28e;
  var_5 = *(type_4 *)&this->field_0x14;
  if ((this->field_0x1c & 2) == 0) goto LAB_0005a252;
  var_4 = *(type_4 *)&this->field_0xc;
  if (*(int *)&this->field_0x10 == 0) {
    if ((-1 < *(int *)&this->field_0x18) &&
       (var_6 = *(int *)((int)&of->file_size_ + 4),
       var_7 = *(int *)&this->field_0x18 + (type_4)var_3(var_4,var_5),
       var_10 = (type_4)((type_4)of->file_size_ < var_4 + var_5), var_9 = var_6 - var_7,
       (var_8(var_6,var_7) != var_8(var_9,var_10)) == (int)(var_9 - var_10) < 0)) {
      var_14 = of->base_ + var_5;
      pOVar4 = this->got_plt_;
      if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.
           field_0x1c & 4) == 0) {
LAB_0005a28e:
                    /* WARNING: Subroutine does not return */
        gold::var_11("../../gold/output.h",0xe3,"offset");
      }
      var_6 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.
                              super_Output_data.offset_ + 4);
      var_5 = (type_4)(pOVar4->super_Output_section_data_build).super_Output_section_data.
                    super_Output_data.offset_;
      bVar10 = gold::Parameters::incremental_update(gold::parameters);
      pOVar4 = this->got_plt_;
      if (bVar10) {
        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.
             field_0x1c & 2) == 0) goto LAB_0005a252;
        pOVar20 = this->got_irelative_;
        var_10 = (type_4)(pOVar4->super_Output_section_data_build).super_Output_section_data.
                       super_Output_data.data_size_;
        var_9 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.
                                super_Output_data.data_size_ + 4);
      }
      else {
        if (((pOVar4->super_Output_section_data_build).super_Output_section_data.super_Output_data.
             field_0x1c & 2) == 0) goto LAB_0005a252;
        var_10 = (type_4)(pOVar4->super_Output_section_data_build).super_Output_section_data.
                       super_Output_data.data_size_;
        var_9 = *(int *)((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.
                                super_Output_data.data_size_ + 4);
        pOVar20 = this->got_irelative_;
        if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.
             field_0x1c & 4) == 0) goto LAB_0005a28e;
        if (var_6 + var_9 + (type_4)var_3(var_5,var_10) !=
            *(int *)((int)&(pOVar20->super_Output_section_data_build).super_Output_section_data.
                           super_Output_data.offset_ + 4) ||
            (int)(pOVar20->super_Output_section_data_build).super_Output_section_data.
                 super_Output_data.offset_ != var_5 + var_10) {
                    /* WARNING: Subroutine does not return */
          gold::var_11("../../gold/x86_64.cc",0xa12,"do_write");
        }
      }
      if (((pOVar20->super_Output_section_data_build).super_Output_section_data.super_Output_data.
           field_0x1c & 2) == 0) {
LAB_0005a252:
                    /* WARNING: Subroutine does not return */
        gold::var_11("../../gold/output.h",0xcf,"data_size");
      }
      var_12 = &(pOVar20->super_Output_section_data_build).super_Output_section_data.
                super_Output_data.data_size_;
      var_13 = var_10 + (int)*var_12;
      if (var_9 + *(int *)((int)&(pOVar20->super_Output_section_data_build).
                                  super_Output_section_data.super_Output_data.data_size_ + 4) +
          (type_4)var_3(var_10,(type_4)*var_12) != 0) goto LAB_0005a271;
      if (-1 < var_6) {
        var_6 = var_6 + (type_4)var_3(var_13,var_5);
        var_9 = *(int *)((int)&of->file_size_ + 4);
        var_10 = (type_4)((type_4)of->file_size_ < var_13 + var_5);
        var_7 = var_9 - var_6;
        if ((var_8(var_9,var_6) != var_8(var_7,var_10)) == (int)(var_7 - var_10) < 0) {
          var_15 = of->base_ + var_5;
          if ((this->field_0x1c & 1) != 0) {
            var_5 = *(type_4 *)&this->field_0x4;
            var_6 = *(int *)&this->field_0x8;
            pOVar5 = this->got_;
            if (((pOVar5->super_Output_data_got_base).super_Output_section_data_build.
                 super_Output_section_data.super_Output_data.field_0x1c & 1) != 0) {
              uVar6 = *(type_6 *)
                       ((int)&(pOVar5->super_Output_data_got_base).super_Output_section_data_build.
                              super_Output_section_data.super_Output_data.address_ + 4);
              uVar9 = (pOVar5->super_Output_data_got_base).super_Output_section_data_build.
                      super_Output_section_data.super_Output_data.address_;
              if (((pOVar4->super_Output_section_data_build).super_Output_section_data.
                   super_Output_data.field_0x1c & 1) != 0) {
                uVar7 = *(type_6 *)
                         ((int)&(pOVar4->super_Output_section_data_build).super_Output_section_data.
                                super_Output_data.address_ + 4);
                uVar8 = (type_6)
                        (pOVar4->super_Output_section_data_build).super_Output_section_data.
                        super_Output_data.address_;
                (**(type_9 **)(this->plt_eh_frame_cie_size + 0x68))
                          (this,var_14,uVar8,uVar7,var_5,var_6);
                var_9 = (**(type_9 **)(this->plt_eh_frame_cie_size + 100))(this);
                var_18 = var_14 + var_9;
                var_19 = var_15 + 0x18;
                var_10 = (**(type_9 **)(this->plt_eh_frame_cie_size + 100))(this);
                var_9 = this->irelative_count_ + this->count_;
                if (var_9 != 0) {
                  var_7 = 0;
                  do {
                    var_16 = (**(type_9 **)(this->plt_eh_frame_cie_size + 0x6c))
                                       (this,var_18,uVar8,uVar7,var_5,var_6,var_7 * 8 + 0x18,
                                        var_10,var_7);
                    *(type_4 *)(var_15 + var_7 * 8 + 0x18) = var_10 + var_16 + var_5;
                    var_17 = this->plt_eh_frame_cie_size;
                    *(type_4 *)(var_15 + var_7 * 8 + 0x1c) =
                         (type_4)var_3(var_10,var_16) + var_6 + (type_4)var_3(var_10 + var_16,var_5);
                    var_7 = var_7 + 1;
                    var_17 = (**(type_9 **)(var_17 + 100))(this);
                    var_18 = var_18 + var_17;
                    var_17 = (**(type_9 **)(this->plt_eh_frame_cie_size + 100))(this);
                    var_10 = var_10 + var_17;
                  } while (var_9 != var_7);
                  var_19 = var_19 + var_9 * 8;
                }
                if (this->tlsdesc_got_offset_ != 0xffffffff) {
                  (**(type_9 **)(this->plt_eh_frame_cie_size + 0x70))
                            (this,var_18,uVar8,uVar7,var_5,var_6,(int)uVar9,uVar6,
                             this->tlsdesc_got_offset_,var_10);
                  var_6 = (**(type_9 **)(this->plt_eh_frame_cie_size + 100))(this);
                  var_18 = var_18 + var_6;
                }
                if ((int)var_18 - (int)var_14 == var_4) {
                  if ((int)var_19 - (int)var_15 == var_13) {
                    return;
                  }
                    /* WARNING: Subroutine does not return */
                  gold::var_11("../../gold/x86_64.cc",0xa4c,"do_write");
                }
                    /* WARNING: Subroutine does not return */
                gold::var_11("../../gold/x86_64.cc",0xa4b,"do_write");
              }
            }
          }
                    /* WARNING: Subroutine does not return */
          gold::var_11("../../gold/output.h",0xc5,"address");
        }
      }
    }
                    /* WARNING: Subroutine does not return */
    gold::var_11("../../gold/output.h",0x6f,"get_output_view");
  }
LAB_0005a271:
                    /* WARNING: Subroutine does not return */
  gold::var_11("../../gold/gold.h",0xc0,"convert_types");
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void MASKED(int *param_1,int param_2)

{
  uint uVar1;
  uint uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  char cVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  int iVar11;
  int iVar12;
  undefined4 uVar13;
  undefined4 unaff_EBX;
  int iVar14;
  int iVar15;
  uint uVar16;
  int iVar17;
  undefined8 uVar18;
  int local_60;
  int local_40;
  
  if ((*(byte *)(param_1 + 7) & 4) == 0) goto LAB_0005a28e;
  uVar1 = param_1[5];
  if ((*(byte *)(param_1 + 7) & 2) == 0) goto LAB_0005a252;
  uVar2 = param_1[3];
  if (param_1[4] == 0) {
    if ((-1 < param_1[6]) &&
       (iVar14 = param_1[6] + (uint)CARRY4(uVar2,uVar1),
       uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar1),
       iVar9 = *(int *)(param_2 + 0xc) - iVar14,
       (SBORROW4(*(int *)(param_2 + 0xc),iVar14) != SBORROW4(iVar9,uVar16)) ==
       (int)(iVar9 - uVar16) < 0)) {
      iVar14 = uVar1 + *(int *)(param_2 + 0x10);
      iVar9 = param_1[0xf];
      if ((*(byte *)(iVar9 + 0x1c) & 4) == 0) {
LAB_0005a28e:
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/output.h",0xe3,"offset",param_1);
      }
      iVar12 = *(int *)(iVar9 + 0x18);
      uVar1 = *(uint *)(iVar9 + 0x14);
      cVar7 = FUN_0011a440(DAT_0033f2f0);
      iVar9 = param_1[0xf];
      if (cVar7 == '\0') {
        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;
        uVar16 = *(uint *)(iVar9 + 0xc);
        iVar17 = *(int *)(iVar9 + 0x10);
        iVar15 = param_1[0x10];
        if ((*(byte *)(iVar15 + 0x1c) & 4) == 0) goto LAB_0005a28e;
        if (iVar12 + iVar17 + (uint)CARRY4(uVar1,uVar16) != *(int *)(iVar15 + 0x18) ||
            *(int *)(iVar15 + 0x14) != uVar1 + uVar16) {
                    /* WARNING: Subroutine does not return */
          FUN_0008b620("../../gold/x86_64.cc",0xa12,"do_write",iVar9);
        }
      }
      else {
        if ((*(byte *)(iVar9 + 0x1c) & 2) == 0) goto LAB_0005a252;
        iVar15 = param_1[0x10];
        uVar16 = *(uint *)(iVar9 + 0xc);
        iVar17 = *(int *)(iVar9 + 0x10);
      }
      if ((*(byte *)(iVar15 + 0x1c) & 2) == 0) {
LAB_0005a252:
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/output.h",0xcf,"data_size");
      }
      uVar8 = uVar16 + *(uint *)(iVar15 + 0xc);
      unaff_EBX = 0;
      if (iVar17 + *(int *)(iVar15 + 0x10) + (uint)CARRY4(uVar16,*(uint *)(iVar15 + 0xc)) != 0)
      goto LAB_0005a271;
      if (-1 < iVar12) {
        iVar12 = iVar12 + (uint)CARRY4(uVar8,uVar1);
        uVar16 = (uint)(*(uint *)(param_2 + 8) < uVar8 + uVar1);
        iVar15 = *(int *)(param_2 + 0xc) - iVar12;
        if ((SBORROW4(*(int *)(param_2 + 0xc),iVar12) != SBORROW4(iVar15,uVar16)) ==
            (int)(iVar15 - uVar16) < 0) {
          iVar12 = uVar1 + *(int *)(param_2 + 0x10);
          if ((*(byte *)(param_1 + 7) & 1) != 0) {
            uVar1 = param_1[1];
            iVar15 = param_1[2];
            iVar17 = param_1[0xe];
            if ((*(byte *)(iVar17 + 0x1c) & 1) != 0) {
              uVar3 = *(undefined4 *)(iVar17 + 8);
              uVar4 = *(undefined4 *)(iVar17 + 4);
              if ((*(byte *)(iVar9 + 0x1c) & 1) != 0) {
                uVar5 = *(undefined4 *)(iVar9 + 8);
                uVar6 = *(undefined4 *)(iVar9 + 4);
                (**(code **)(*param_1 + 0x68))(param_1,iVar14,uVar6,uVar5,uVar1,iVar15);
                local_60 = (**(code **)(*param_1 + 100))(param_1);
                local_60 = local_60 + iVar14;
                local_40 = iVar12 + 0x18;
                uVar18 = (**(code **)(*param_1 + 100))(param_1);
                uVar16 = (uint)uVar18;
                iVar9 = param_1[0x12] + param_1[0x11];
                if (iVar9 != 0) {
                  iVar17 = 0;
                  do {
                    uVar10 = (**(code **)(*param_1 + 0x6c))
                                       (param_1,local_60,uVar6,uVar5,uVar1,iVar15,iVar17 * 8 + 0x18,
                                        uVar16,iVar17);
                    *(uint *)(iVar12 + 0x18 + iVar17 * 8) = uVar16 + uVar10 + uVar1;
                    iVar11 = *param_1;
                    *(uint *)(iVar12 + 0x1c + iVar17 * 8) =
                         (uint)CARRY4(uVar16,uVar10) + iVar15 + (uint)CARRY4(uVar16 + uVar10,uVar1);
                    iVar17 = iVar17 + 1;
                    iVar11 = (**(code **)(iVar11 + 100))(param_1);
                    local_60 = local_60 + iVar11;
                    iVar11 = (**(code **)(*param_1 + 100))(param_1);
                    uVar16 = uVar16 + iVar11;
                    uVar18 = CONCAT44(iVar9,uVar16);
                  } while (iVar9 != iVar17);
                  local_40 = local_40 + iVar9 * 8;
                }
                uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);
                if (param_1[0x13] != -1) {
                  (**(code **)(*param_1 + 0x70))
                            (param_1,local_60,uVar6,uVar5,uVar1,iVar15,uVar4,uVar3,param_1[0x13],
                             (int)uVar18);
                  uVar18 = (**(code **)(*param_1 + 100))(param_1);
                  uVar13 = (undefined4)((ulonglong)uVar18 >> 0x20);
                  local_60 = local_60 + (int)uVar18;
                }
                if (local_60 - iVar14 == uVar2) {
                  if (local_40 - iVar12 == uVar8) {
                    return;
                  }
                    /* WARNING: Subroutine does not return */
                  FUN_0008b620("../../gold/x86_64.cc",0xa4c,"do_write",local_40 - iVar12);
                }
                    /* WARNING: Subroutine does not return */
                FUN_0008b620("../../gold/x86_64.cc",0xa4b,"do_write",uVar13);
              }
            }
          }
                    /* WARNING: Subroutine does not return */
          FUN_0008b620("../../gold/output.h",0xc5,"address");
        }
      }
    }
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");
  }
LAB_0005a271:
                    /* WARNING: Subroutine does not return */
  FUN_0008b620("../../gold/gold.h",0xc0,"convert_types",unaff_EBX);
}

