
/* 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 write_binary(Layout * this, Output_file * in) */

void __thiscall gold::Layout::write_binary(Layout *this,Output_file *in)

{
  pointer ppOVar1;
  Output_segment *pOVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  Object_format OVar7;
  uchar *puVar8;
  pointer ppOVar9;
  uint uVar10;
  int iVar11;
  uchar *local_54;
  uint local_50;
  Output_file out;
  
  if (parameters->options_ == (General_options *)0x0) {
LAB_000abd80:
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  OVar7 = General_options::oformat_enum(parameters->options_);
  if (OVar7 != OBJECT_FORMAT_BINARY) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/layout.cc",0x1714,"write_binary");
  }
  local_54 = (uchar *)0x0;
  local_50 = 0;
  ppOVar9 = (this->segment_list_).
            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
            _M_impl._M_start;
  ppOVar1 = (this->segment_list_).
            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
            _M_impl._M_finish;
joined_r0x000abb97:
  if (ppOVar9 != ppOVar1) {
    do {
      pOVar2 = *ppOVar9;
      if (pOVar2->type_ == 1) {
        uVar10 = (uint)pOVar2->filesz_;
        iVar11 = *(int *)((int)&pOVar2->filesz_ + 4);
        if (-iVar11 < (int)(uint)(uVar10 != 0)) {
          puVar8 = (uchar *)(uVar10 + (int)pOVar2->paddr_);
          uVar10 = iVar11 + *(int *)((int)&pOVar2->paddr_ + 4) +
                   (uint)CARRY4(uVar10,(uint)pOVar2->paddr_);
          if (local_50 < uVar10 || local_50 - uVar10 < (uint)(local_54 < puVar8))
          goto code_r0x000abbde;
        }
      }
      ppOVar9 = ppOVar9 + 1;
      if (ppOVar1 == ppOVar9) break;
    } while( true );
  }
  if (parameters->options_ == (General_options *)0x0) goto LAB_000abd80;
  Output_file::Output_file(&out,(parameters->options_->output_).value);
  Output_file::open(&out,(char *)local_54,local_50);
  ppOVar9 = (this->segment_list_).
            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
            _M_impl._M_start;
  if (ppOVar9 !=
      (this->segment_list_).
      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.
      _M_finish) {
LAB_000abc63:
    do {
      pOVar2 = *ppOVar9;
      if ((pOVar2->type_ == 1) &&
         (uVar10 = (uint)pOVar2->filesz_,
         -*(int *)((int)&pOVar2->filesz_ + 4) < (int)(uint)(uVar10 != 0))) {
        iVar11 = *(int *)((int)&pOVar2->offset_ + 4);
        uVar5 = (uint)pOVar2->offset_;
        if ((-1 < iVar11) &&
           (iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5), iVar3 = *(int *)((int)&in->file_size_ + 4)
           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,
           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0)) {
          iVar11 = *(int *)((int)&pOVar2->paddr_ + 4);
          uVar4 = (uint)pOVar2->paddr_;
          local_54 = in->base_ + uVar5;
          if ((-1 < iVar11) &&
             (iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),
             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),
             iVar3 = out.file_size_._4_4_ - iVar11,
             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==
             (int)(iVar3 - uVar5) < 0)) {
            ppOVar9 = ppOVar9 + 1;
            memcpy(out.base_ + uVar4,local_54,uVar10);
            if ((this->segment_list_).
                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
                _M_impl._M_finish == ppOVar9) break;
            goto LAB_000abc63;
          }
        }
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");
      }
      ppOVar9 = ppOVar9 + 1;
    } while ((this->segment_list_).
             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
             _M_impl._M_finish != ppOVar9);
  }
  Output_file::close(&out,(int)local_54);
  return;
code_r0x000abbde:
  ppOVar9 = ppOVar9 + 1;
  local_54 = puVar8;
  local_50 = uVar10;
  goto joined_r0x000abb97;
}



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

void __regparm2 FUN_000abb30(undefined4 param_1,uint param_2,int param_3,int param_4)

{
  int iVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  int *piVar6;
  int iVar7;
  int iVar8;
  undefined8 uVar9;
  uint local_54;
  uint local_50;
  undefined1 local_34 [8];
  uint local_2c;
  int local_28;
  int local_24;
  
  if (*(int *)(DAT_0033f2f0 + 8) == 0) {
LAB_000abd80:
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);
  }
  uVar9 = FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8));
  param_2 = (uint)((ulonglong)uVar9 >> 0x20);
  if ((int)uVar9 != 1) {
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);
  }
  local_54 = 0;
  local_50 = 0;
  piVar6 = *(int **)(param_3 + 0x124);
joined_r0x000abb97:
  if (piVar6 != *(int **)(param_3 + 0x128)) {
    do {
      iVar1 = *piVar6;
      if (*(int *)(iVar1 + 0x194) == 1) {
        uVar2 = *(uint *)(iVar1 + 0x18c);
        param_2 = *(uint *)(iVar1 + 400);
        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {
          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);
          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))
          ;
          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))
          goto code_r0x000abbde;
        }
      }
      piVar6 = piVar6 + 1;
      if (*(int **)(param_3 + 0x128) == piVar6) break;
    } while( true );
  }
  if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000abd80;
  FUN_000ebda0(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8));
  FUN_000ec0c0(local_34,local_54,local_50);
  piVar6 = *(int **)(param_3 + 0x124);
  if (piVar6 != *(int **)(param_3 + 0x128)) {
LAB_000abc63:
    do {
      iVar1 = *piVar6;
      if ((*(int *)(iVar1 + 0x194) == 1) &&
         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {
        uVar5 = *(uint *)(iVar1 + 0x184);
        if ((-1 < *(int *)(iVar1 + 0x188)) &&
           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),
           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),
           iVar7 = *(int *)(param_4 + 0xc) - iVar8,
           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==
           (int)(iVar7 - uVar3) < 0)) {
          uVar3 = *(uint *)(iVar1 + 0x164);
          if ((-1 < *(int *)(iVar1 + 0x168)) &&
             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),
             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,
             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {
            piVar6 = piVar6 + 1;
            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);
            if (*(int **)(param_3 + 0x128) == piVar6) break;
            goto LAB_000abc63;
          }
        }
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");
      }
      piVar6 = piVar6 + 1;
    } while (*(int **)(param_3 + 0x128) != piVar6);
  }
  FUN_000ec730(local_34);
  return;
code_r0x000abbde:
  piVar6 = piVar6 + 1;
  local_54 = uVar5;
  local_50 = param_2;
  goto joined_r0x000abb97;
}


CALL 0x00058c42
ADD EAX,0x2934cb
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x4c
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EAX + 0x2f0]
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000abd80
SUB ESP,0xc
PUSH EAX
MOV EBX,dword ptr [ESP + 0x28]
CALL 0x000d81d0
ADD ESP,0x10
CMP EAX,0x1
JNZ 0x000abd63
MOV EAX,dword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x8],0x0
MOV dword ptr [ESP + 0xc],0x0
MOV ECX,dword ptr [EAX + 0x124]
MOV EBX,dword ptr [EAX + 0x128]
CMP ECX,EBX
JZ 0x000abbf0
XOR EDI,EDI
JMP 0x000abba7
ADD ECX,0x4
CMP EBX,ECX
JZ 0x000abbf0
MOV ESI,dword ptr [ECX]
CMP dword ptr [ESI + 0x194],0x1
JNZ 0x000abba0
MOV EAX,dword ptr [ESI + 0x18c]
MOV EDX,dword ptr [ESI + 0x190]
MOV EBP,EDI
CMP EDI,EAX
SBB EBP,EDX
JGE 0x000abba0
ADD EAX,dword ptr [ESI + 0x164]
ADC EDX,dword ptr [ESI + 0x168]
MOV ESI,dword ptr [ESP + 0xc]
CMP dword ptr [ESP + 0x8],EAX
SBB ESI,EDX
JNC 0x000abba0
ADD ECX,0x4
MOV dword ptr [ESP + 0x8],EAX
MOV dword ptr [ESP + 0xc],EDX
CMP EBX,ECX
JNZ 0x000abba7
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000abd80
SUB ESP,0x8
PUSH dword ptr [EAX + 0x27a8]
LEA EAX,[ESP + 0x34]
MOV dword ptr [ESP + 0x28],EAX
MOV EDI,EAX
PUSH EAX
MOV ESI,dword ptr [ESP + 0x28]
MOV EBX,ESI
CALL 0x000ebda0
ADD ESP,0xc
PUSH dword ptr [ESP + 0x10]
PUSH dword ptr [ESP + 0x10]
PUSH EDI
CALL 0x000ec0c0
MOV EAX,dword ptr [ESP + 0x70]
ADD ESP,0x10
MOV EBP,dword ptr [EAX + 0x124]
MOV EAX,dword ptr [ESP + 0x60]
CMP EBP,dword ptr [EAX + 0x128]
JNZ 0x000abc63
JMP 0x000abd2f
MOV EAX,dword ptr [ESP + 0x60]
ADD EBP,0x4
CMP dword ptr [EAX + 0x128],EBP
JZ 0x000abd2f
MOV EAX,dword ptr [EBP]
CMP dword ptr [EAX + 0x194],0x1
JNZ 0x000abc50
MOV EDX,dword ptr [EAX + 0x18c]
XOR EBX,EBX
MOV EDI,0x0
CMP EBX,EDX
SBB EDI,dword ptr [EAX + 0x190]
JGE 0x000abc50
MOV EBX,dword ptr [EAX + 0x188]
MOV ECX,dword ptr [EAX + 0x184]
TEST EBX,EBX
JS 0x000abd47
MOV dword ptr [ESP],EDX
MOV ESI,dword ptr [ESP]
MOV dword ptr [ESP + 0x4],0x0
MOV EDI,dword ptr [ESP + 0x4]
ADD ESI,ECX
ADC EDI,EBX
MOV dword ptr [ESP + 0x8],ESI
MOV ESI,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0xc],EDI
MOV EDI,dword ptr [ESP + 0x64]
MOV EDI,dword ptr [EDI + 0xc]
MOV dword ptr [ESP + 0x14],EDI
MOV EDI,dword ptr [ESP + 0x64]
CMP dword ptr [EDI + 0x8],ESI
MOV ESI,dword ptr [ESP + 0x14]
SBB ESI,dword ptr [ESP + 0xc]
JL 0x000abd47
MOV ESI,dword ptr [ESP + 0x64]
MOV EBX,dword ptr [EAX + 0x168]
MOV EDI,dword ptr [ESI + 0x10]
MOV ESI,dword ptr [EAX + 0x164]
ADD EDI,ECX
MOV ECX,ESI
TEST EBX,EBX
JS 0x000abd47
MOV EAX,dword ptr [ESP + 0x34]
ADD ECX,dword ptr [ESP]
ADC EBX,dword ptr [ESP + 0x4]
CMP dword ptr [ESP + 0x30],ECX
SBB EAX,EBX
JL 0x000abd47
ADD ESI,dword ptr [ESP + 0x38]
SUB ESP,0x4
ADD EBP,0x4
PUSH EDX
PUSH EDI
PUSH ESI
MOV EBX,dword ptr [ESP + 0x28]
CALL 0x000285c0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x60]
CMP dword ptr [EAX + 0x128],EBP
JNZ 0x000abc63
SUB ESP,0xc
PUSH dword ptr [ESP + 0x28]
MOV EBX,dword ptr [ESP + 0x28]
CALL 0x000ec730
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x1c]
LEA EAX,[EBX + 0xfff17034]
PUSH EAX
LEA EAX,[EBX + 0xfff0c35d]
PUSH 0x6f
PUSH EAX
CALL 0x0008b620
PUSH EAX
MOV EBX,dword ptr [ESP + 0x1c]
LEA EAX,[EBX + 0xfff17024]
PUSH EAX
LEA EAX,[EBX + 0xfff160b8]
PUSH 0x1714
PUSH EAX
CALL 0x0008b620
PUSH EDX
MOV EBX,dword ptr [ESP + 0x1c]
LEA EAX,[EBX + 0xfff17528]
PUSH EAX
LEA EAX,[EBX + 0xfff0726d]
PUSH 0x5c
PUSH EAX
CALL 0x0008b620
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid __regparm2 FUN_000abb30(undefined4 param_1,uint param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  undefined8 uVar9;\n  uint local_54;\n  uint local_50;\n  undefined1 local_34 [8];\n  uint local_2c;\n  int local_28;\n  int local_24;\n  \n  if (*(int *)(DAT_0033f2f0 + 8) == 0) {\nLAB_000abd80:\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);\n  }\n  uVar9 = FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8));\n  param_2 = (uint)((ulonglong)uVar9 >> 0x20);\n  if ((int)uVar9 != 1) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);\n  }\n  local_54 = 0;\n  local_50 = 0;\n  piVar6 = *(int **)(param_3 + 0x124);\njoined_r0x000abb97:\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }\n  if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000abd80;\n  FUN_000ebda0(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8));\n  FUN_000ec0c0(local_34,local_54,local_50);\n  piVar6 = *(int **)(param_3 + 0x124);\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\nLAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);\n  }\n  FUN_000ec730(local_34);\n  return;\ncode_r0x000abbde:\n  piVar6 = piVar6 + 1;\n  local_54 = uVar5;\n  local_50 = param_2;\n  goto joined_r0x000abb97;\n}\n\n" comment (function_definition "void __regparm2 FUN_000abb30(undefined4 param_1,uint param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  undefined8 uVar9;\n  uint local_54;\n  uint local_50;\n  undefined1 local_34 [8];\n  uint local_2c;\n  int local_28;\n  int local_24;\n  \n  if (*(int *)(DAT_0033f2f0 + 8) == 0) {\nLAB_000abd80:\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);\n  }\n  uVar9 = FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8));\n  param_2 = (uint)((ulonglong)uVar9 >> 0x20);\n  if ((int)uVar9 != 1) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);\n  }\n  local_54 = 0;\n  local_50 = 0;\n  piVar6 = *(int **)(param_3 + 0x124);\njoined_r0x000abb97:\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }\n  if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000abd80;\n  FUN_000ebda0(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8));\n  FUN_000ec0c0(local_34,local_54,local_50);\n  piVar6 = *(int **)(param_3 + 0x124);\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\nLAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);\n  }\n  FUN_000ec730(local_34);\n  return;\ncode_r0x000abbde:\n  piVar6 = piVar6 + 1;\n  local_54 = uVar5;\n  local_50 = param_2;\n  goto joined_r0x000abb97;\n}" primitive_type (ERROR "__regparm2" identifier) (function_declarator "FUN_000abb30(undefined4 param_1,uint param_2,int param_3,int param_4)" identifier (parameter_list "(undefined4 param_1,uint param_2,int param_3,int param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  undefined8 uVar9;\n  uint local_54;\n  uint local_50;\n  undefined1 local_34 [8];\n  uint local_2c;\n  int local_28;\n  int local_24;\n  \n  if (*(int *)(DAT_0033f2f0 + 8) == 0) {\nLAB_000abd80:\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);\n  }\n  uVar9 = FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8));\n  param_2 = (uint)((ulonglong)uVar9 >> 0x20);\n  if ((int)uVar9 != 1) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);\n  }\n  local_54 = 0;\n  local_50 = 0;\n  piVar6 = *(int **)(param_3 + 0x124);\njoined_r0x000abb97:\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }\n  if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000abd80;\n  FUN_000ebda0(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8));\n  FUN_000ec0c0(local_34,local_54,local_50);\n  piVar6 = *(int **)(param_3 + 0x124);\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\nLAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);\n  }\n  FUN_000ec730(local_34);\n  return;\ncode_r0x000abbde:\n  piVar6 = piVar6 + 1;\n  local_54 = uVar5;\n  local_50 = param_2;\n  goto joined_r0x000abb97;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "undefined1 local_34 [8];" type_identifier (array_declarator "local_34 [8]" identifier [ number_literal ]) ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (if_statement "if (*(int *)(DAT_0033f2f0 + 8) == 0) {\nLAB_000abd80:\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);\n  }" if (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) == 0)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 8) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000abd80:\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);\n  }" { (labeled_statement "LAB_000abd80:\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);" statement_identifier : comment (expression_statement "FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",param_2)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;)) })) (expression_statement "uVar9 = FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8));" (assignment_expression "uVar9 = FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8))" identifier = (call_expression "FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8))" identifier (argument_list "(*(int *)(DAT_0033f2f0 + 8))" ( (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "param_2 = (uint)((ulonglong)uVar9 >> 0x20);" (assignment_expression "param_2 = (uint)((ulonglong)uVar9 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar9 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((int)uVar9 != 1) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);\n  }" if (parenthesized_expression "((int)uVar9 != 1)" ( (binary_expression "(int)uVar9 != 1" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);\n  }" { comment (expression_statement "FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);" (call_expression "FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9)" identifier (argument_list "("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9)" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""write_binary"" " string_content ") , (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "piVar6 = *(int **)(param_3 + 0x124);" (assignment_expression "piVar6 = *(int **)(param_3 + 0x124)" identifier = (pointer_expression "*(int **)(param_3 + 0x124)" * (cast_expression "(int **)(param_3 + 0x124)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x124)" ( (binary_expression "param_3 + 0x124" identifier + number_literal) ))))) ;) (labeled_statement "joined_r0x000abb97:\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (piVar6 != *(int **)(param_3 + 0x128)) {\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }" if (parenthesized_expression "(piVar6 != *(int **)(param_3 + 0x128))" ( (binary_expression "piVar6 != *(int **)(param_3 + 0x128)" identifier != (pointer_expression "*(int **)(param_3 + 0x128)" * (cast_expression "(int **)(param_3 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x128)" ( (binary_expression "param_3 + 0x128" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }" { (do_statement "do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );" do (compound_statement "{\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    }" { (expression_statement "iVar1 = *piVar6;" (assignment_expression "iVar1 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (if_statement "if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar1 + 0x194) == 1)" ( (binary_expression "*(int *)(iVar1 + 0x194) == 1" (pointer_expression "*(int *)(iVar1 + 0x194)" * (cast_expression "(int *)(iVar1 + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x194)" ( (binary_expression "iVar1 + 0x194" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }" { (expression_statement "uVar2 = *(uint *)(iVar1 + 0x18c);" (assignment_expression "uVar2 = *(uint *)(iVar1 + 0x18c)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x18c)" * (cast_expression "(uint *)(iVar1 + 0x18c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18c)" ( (binary_expression "iVar1 + 0x18c" identifier + number_literal) ))))) ;) (expression_statement "param_2 = *(uint *)(iVar1 + 400);" (assignment_expression "param_2 = *(uint *)(iVar1 + 400)" identifier = (pointer_expression "*(uint *)(iVar1 + 400)" * (cast_expression "(uint *)(iVar1 + 400)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 400)" ( (binary_expression "iVar1 + 400" identifier + number_literal) ))))) ;) (if_statement "if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }" if (parenthesized_expression "((int)-param_2 < (int)(uint)(uVar2 != 0))" ( (binary_expression "(int)-param_2 < (int)(uint)(uVar2 != 0)" (cast_expression "(int)-param_2" ( (type_descriptor "int" primitive_type) ) (unary_expression "-param_2" - identifier)) < (cast_expression "(int)(uint)(uVar2 != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(uVar2 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) ))))) )) (compound_statement "{\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }" { (expression_statement "uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);" (assignment_expression "uVar5 = uVar2 + *(uint *)(iVar1 + 0x164)" identifier = (binary_expression "uVar2 + *(uint *)(iVar1 + 0x164)" identifier + (pointer_expression "*(uint *)(iVar1 + 0x164)" * (cast_expression "(uint *)(iVar1 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x164)" ( (binary_expression "iVar1 + 0x164" identifier + number_literal) )))))) ;) (expression_statement "param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;" (assignment_expression "param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))" identifier = (binary_expression "param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))" (binary_expression "param_2 + *(int *)(iVar1 + 0x168)" identifier + (pointer_expression "*(int *)(iVar1 + 0x168)" * (cast_expression "(int *)(iVar1 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x168)" ( (binary_expression "iVar1 + 0x168" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar2,*(uint *)(iVar1 + 0x164))" identifier (argument_list "(uVar2,*(uint *)(iVar1 + 0x164))" ( identifier , (pointer_expression "*(uint *)(iVar1 + 0x164)" * (cast_expression "(uint *)(iVar1 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x164)" ( (binary_expression "iVar1 + 0x164" identifier + number_literal) )))) )))))) ;) (if_statement "if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;" if (parenthesized_expression "(local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))" ( (binary_expression "local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5)" (binary_expression "local_50 < param_2" identifier < identifier) || (binary_expression "local_50 - param_2 < (uint)(local_54 < uVar5)" (binary_expression "local_50 - param_2" identifier - identifier) < (call_expression "(uint)(local_54 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < uVar5)" ( (binary_expression "local_54 < uVar5" identifier < identifier) ))))) )) (goto_statement "goto code_r0x000abbde;" goto statement_identifier ;)) })) })) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (if_statement "if (*(int **)(param_3 + 0x128) == piVar6) break;" if (parenthesized_expression "(*(int **)(param_3 + 0x128) == piVar6)" ( (binary_expression "*(int **)(param_3 + 0x128) == piVar6" (pointer_expression "*(int **)(param_3 + 0x128)" * (cast_expression "(int **)(param_3 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x128)" ( (binary_expression "param_3 + 0x128" identifier + number_literal) )))) == identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (if_statement "if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000abd80;" if (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) == 0)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 8) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000abd80;" goto statement_identifier ;)) (expression_statement "FUN_000ebda0(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8));" (call_expression "FUN_000ebda0(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8))" identifier (argument_list "(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8))" ( identifier , (pointer_expression "*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8)" * (cast_expression "(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) + 0x27a8)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 8) + 0x27a8" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) )))) + number_literal) )))) ))) ;) (expression_statement "FUN_000ec0c0(local_34,local_54,local_50);" (call_expression "FUN_000ec0c0(local_34,local_54,local_50)" identifier (argument_list "(local_34,local_54,local_50)" ( identifier , identifier , identifier ))) ;) (expression_statement "piVar6 = *(int **)(param_3 + 0x124);" (assignment_expression "piVar6 = *(int **)(param_3 + 0x124)" identifier = (pointer_expression "*(int **)(param_3 + 0x124)" * (cast_expression "(int **)(param_3 + 0x124)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x124)" ( (binary_expression "param_3 + 0x124" identifier + number_literal) ))))) ;) (if_statement "if (piVar6 != *(int **)(param_3 + 0x128)) {\nLAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);\n  }" if (parenthesized_expression "(piVar6 != *(int **)(param_3 + 0x128))" ( (binary_expression "piVar6 != *(int **)(param_3 + 0x128)" identifier != (pointer_expression "*(int **)(param_3 + 0x128)" * (cast_expression "(int **)(param_3 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x128)" ( (binary_expression "param_3 + 0x128" identifier + number_literal) ))))) )) (compound_statement "{\nLAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);\n  }" { (labeled_statement "LAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);" statement_identifier : (do_statement "do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);" do (compound_statement "{\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    }" { (expression_statement "iVar1 = *piVar6;" (assignment_expression "iVar1 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (if_statement "if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }" if (parenthesized_expression "((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0)))" ( (binary_expression "(*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))" (parenthesized_expression "(*(int *)(iVar1 + 0x194) == 1)" ( (binary_expression "*(int *)(iVar1 + 0x194) == 1" (pointer_expression "*(int *)(iVar1 + 0x194)" * (cast_expression "(int *)(iVar1 + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x194)" ( (binary_expression "iVar1 + 0x194" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))" ( (comma_expression "uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0)" (assignment_expression "uVar2 = *(uint *)(iVar1 + 0x18c)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x18c)" * (cast_expression "(uint *)(iVar1 + 0x18c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18c)" ( (binary_expression "iVar1 + 0x18c" identifier + number_literal) ))))) , (binary_expression "-*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0)" (unary_expression "-*(int *)(iVar1 + 400)" - (pointer_expression "*(int *)(iVar1 + 400)" * (cast_expression "(int *)(iVar1 + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 400)" ( (binary_expression "iVar1 + 400" identifier + number_literal) ))))) < (cast_expression "(int)(uint)(uVar2 != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(uVar2 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )))))) ))) )) (compound_statement "{\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }" { (expression_statement "uVar5 = *(uint *)(iVar1 + 0x184);" (assignment_expression "uVar5 = *(uint *)(iVar1 + 0x184)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x184)" * (cast_expression "(uint *)(iVar1 + 0x184)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x184)" ( (binary_expression "iVar1 + 0x184" identifier + number_literal) ))))) ;) (if_statement "if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }" if (parenthesized_expression "((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0))" ( (binary_expression "(-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)" (parenthesized_expression "(-1 < *(int *)(iVar1 + 0x188))" ( (binary_expression "-1 < *(int *)(iVar1 + 0x188)" number_literal < (pointer_expression "*(int *)(iVar1 + 0x188)" * (cast_expression "(int *)(iVar1 + 0x188)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x188)" ( (binary_expression "iVar1 + 0x188" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)" ( (comma_expression "iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0" (assignment_expression "iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5)" identifier = (binary_expression "*(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5)" (pointer_expression "*(int *)(iVar1 + 0x188)" * (cast_expression "(int *)(iVar1 + 0x188)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x188)" ( (binary_expression "iVar1 + 0x188" identifier + number_literal) )))) + (cast_expression "(uint)CARRY4(uVar2,uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar2,uVar5)" identifier (argument_list "(uVar2,uVar5)" ( identifier , identifier )))))) , (comma_expression "uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0" (assignment_expression "uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5)" identifier = (call_expression "(uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(param_4 + 8) < uVar2 + uVar5)" ( (binary_expression "*(uint *)(param_4 + 8) < uVar2 + uVar5" (pointer_expression "*(uint *)(param_4 + 8)" * (cast_expression "(uint *)(param_4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) )))) < (binary_expression "uVar2 + uVar5" identifier + identifier)) )))) , (comma_expression "iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0" (assignment_expression "iVar7 = *(int *)(param_4 + 0xc) - iVar8" identifier = (binary_expression "*(int *)(param_4 + 0xc) - iVar8" (pointer_expression "*(int *)(param_4 + 0xc)" * (cast_expression "(int *)(param_4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) )))) - identifier)) , (binary_expression "(SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0" (parenthesized_expression "(SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3))" ( (binary_expression "SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)" (call_expression "SBORROW4(*(int *)(param_4 + 0xc),iVar8)" identifier (argument_list "(*(int *)(param_4 + 0xc),iVar8)" ( (pointer_expression "*(int *)(param_4 + 0xc)" * (cast_expression "(int *)(param_4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) )))) , identifier ))) != (call_expression "SBORROW4(iVar7,uVar3)" identifier (argument_list "(iVar7,uVar3)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar7 - uVar3) < 0" (cast_expression "(int)(iVar7 - uVar3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar7 - uVar3)" ( (binary_expression "iVar7 - uVar3" identifier - identifier) ))) < number_literal))))) ))) )) (compound_statement "{\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }" { (expression_statement "uVar3 = *(uint *)(iVar1 + 0x164);" (assignment_expression "uVar3 = *(uint *)(iVar1 + 0x164)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x164)" * (cast_expression "(uint *)(iVar1 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x164)" ( (binary_expression "iVar1 + 0x164" identifier + number_literal) ))))) ;) (if_statement "if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }" if (parenthesized_expression "((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0))" ( (binary_expression "(-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)" (parenthesized_expression "(-1 < *(int *)(iVar1 + 0x168))" ( (binary_expression "-1 < *(int *)(iVar1 + 0x168)" number_literal < (pointer_expression "*(int *)(iVar1 + 0x168)" * (cast_expression "(int *)(iVar1 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x168)" ( (binary_expression "iVar1 + 0x168" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)" ( (comma_expression "iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0" (assignment_expression "iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2)" identifier = (binary_expression "*(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2)" (pointer_expression "*(int *)(iVar1 + 0x168)" * (cast_expression "(int *)(iVar1 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x168)" ( (binary_expression "iVar1 + 0x168" identifier + number_literal) )))) + (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 "uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0" (assignment_expression "uVar4 = (uint)(local_2c < uVar3 + uVar2)" identifier = (call_expression "(uint)(local_2c < uVar3 + uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_2c < uVar3 + uVar2)" ( (binary_expression "local_2c < uVar3 + uVar2" identifier < (binary_expression "uVar3 + uVar2" identifier + identifier)) )))) , (comma_expression "iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0" (assignment_expression "iVar1 = local_28 - iVar7" identifier = (binary_expression "local_28 - iVar7" identifier - identifier)) , (binary_expression "(SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0" (parenthesized_expression "(SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4))" ( (binary_expression "SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)" (call_expression "SBORROW4(local_28,iVar7)" identifier (argument_list "(local_28,iVar7)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar1,uVar4)" identifier (argument_list "(iVar1,uVar4)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar1 - uVar4) < 0" (cast_expression "(int)(iVar1 - uVar4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar1 - uVar4)" ( (binary_expression "iVar1 - uVar4" identifier - identifier) ))) < number_literal))))) ))) )) (compound_statement "{\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }" { (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);" (call_expression "memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2)" identifier (argument_list "((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2)" ( (cast_expression "(void *)(uVar3 + local_24)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 + local_24)" ( (binary_expression "uVar3 + local_24" identifier + identifier) ))) , (cast_expression "(void *)(*(int *)(param_4 + 0x10) + uVar5)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_4 + 0x10) + uVar5)" ( (binary_expression "*(int *)(param_4 + 0x10) + uVar5" (pointer_expression "*(int *)(param_4 + 0x10)" * (cast_expression "(int *)(param_4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) + identifier) ))) , identifier ))) ;) (if_statement "if (*(int **)(param_3 + 0x128) == piVar6) break;" if (parenthesized_expression "(*(int **)(param_3 + 0x128) == piVar6)" ( (binary_expression "*(int **)(param_3 + 0x128) == piVar6" (pointer_expression "*(int **)(param_3 + 0x128)" * (cast_expression "(int **)(param_3 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x128)" ( (binary_expression "param_3 + 0x128" identifier + number_literal) )))) == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000abc63;" goto statement_identifier ;) })) })) 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 ") ))) ;) })) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_3 + 0x128) != piVar6)" ( (binary_expression "*(int **)(param_3 + 0x128) != piVar6" (pointer_expression "*(int **)(param_3 + 0x128)" * (cast_expression "(int **)(param_3 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x128)" ( (binary_expression "param_3 + 0x128" identifier + number_literal) )))) != identifier) )) ;)) })) (expression_statement "FUN_000ec730(local_34);" (call_expression "FUN_000ec730(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) (return_statement "return;" return ;) (labeled_statement "code_r0x000abbde:\n  piVar6 = piVar6 + 1;" statement_identifier : (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;)) (expression_statement "local_54 = uVar5;" (assignment_expression "local_54 = uVar5" identifier = identifier) ;) (expression_statement "local_50 = param_2;" (assignment_expression "local_50 = param_2" identifier = identifier) ;) (goto_statement "goto joined_r0x000abb97;" goto statement_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 write_binary(Layout * this, Output_file * in) */\n\nvoid __thiscall gold::Layout::write_binary(Layout *this,Output_file *in)\n\n{\n  pointer ppOVar1;\n  Output_segment *pOVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  Object_format OVar7;\n  uchar *puVar8;\n  pointer ppOVar9;\n  uint uVar10;\n  int iVar11;\n  uchar *local_54;\n  uint local_50;\n  Output_file out;\n  \n  if (parameters->options_ == (General_options *)0x0) {\nLAB_000abd80:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  OVar7 = General_options::oformat_enum(parameters->options_);\n  if (OVar7 != OBJECT_FORMAT_BINARY) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x1714,"write_binary");\n  }\n  local_54 = (uchar *)0x0;\n  local_50 = 0;\n  ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl._M_start;\n  ppOVar1 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl._M_finish;\njoined_r0x000abb97:\n  if (ppOVar9 != ppOVar1) {\n    do {\n      pOVar2 = *ppOVar9;\n      if (pOVar2->type_ == 1) {\n        uVar10 = (uint)pOVar2->filesz_;\n        iVar11 = *(int *)((int)&pOVar2->filesz_ + 4);\n        if (-iVar11 < (int)(uint)(uVar10 != 0)) {\n          puVar8 = (uchar *)(uVar10 + (int)pOVar2->paddr_);\n          uVar10 = iVar11 + *(int *)((int)&pOVar2->paddr_ + 4) +\n                   (uint)CARRY4(uVar10,(uint)pOVar2->paddr_);\n          if (local_50 < uVar10 || local_50 - uVar10 < (uint)(local_54 < puVar8))\n          goto code_r0x000abbde;\n        }\n      }\n      ppOVar9 = ppOVar9 + 1;\n      if (ppOVar1 == ppOVar9) break;\n    } while( true );\n  }\n  if (parameters->options_ == (General_options *)0x0) goto LAB_000abd80;\n  Output_file::Output_file(&out,(parameters->options_->output_).value);\n  Output_file::open(&out,(char *)local_54,local_50);\n  ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl._M_start;\n  if (ppOVar9 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish) {\nLAB_000abc63:\n    do {\n      pOVar2 = *ppOVar9;\n      if ((pOVar2->type_ == 1) &&\n         (uVar10 = (uint)pOVar2->filesz_,\n         -*(int *)((int)&pOVar2->filesz_ + 4) < (int)(uint)(uVar10 != 0))) {\n        iVar11 = *(int *)((int)&pOVar2->offset_ + 4);\n        uVar5 = (uint)pOVar2->offset_;\n        if ((-1 < iVar11) &&\n           (iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5), iVar3 = *(int *)((int)&in->file_size_ + 4)\n           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0)) {\n          iVar11 = *(int *)((int)&pOVar2->paddr_ + 4);\n          uVar4 = (uint)pOVar2->paddr_;\n          local_54 = in->base_ + uVar5;\n          if ((-1 < iVar11) &&\n             (iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0)) {\n            ppOVar9 = ppOVar9 + 1;\n            memcpy(out.base_ + uVar4,local_54,uVar10);\n            if ((this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n      }\n      ppOVar9 = ppOVar9 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar9);\n  }\n  Output_file::close(&out,(int)local_54);\n  return;\ncode_r0x000abbde:\n  ppOVar9 = ppOVar9 + 1;\n  local_54 = puVar8;\n  local_50 = uVar10;\n  goto joined_r0x000abb97;\n}\n\n" comment comment comment comment (function_definition "void __thiscall gold::Layout::write_binary(Layout *this,Output_file *in)\n\n{\n  pointer ppOVar1;\n  Output_segment *pOVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  Object_format OVar7;\n  uchar *puVar8;\n  pointer ppOVar9;\n  uint uVar10;\n  int iVar11;\n  uchar *local_54;\n  uint local_50;\n  Output_file out;\n  \n  if (parameters->options_ == (General_options *)0x0) {\nLAB_000abd80:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  OVar7 = General_options::oformat_enum(parameters->options_);\n  if (OVar7 != OBJECT_FORMAT_BINARY) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x1714,"write_binary");\n  }\n  local_54 = (uchar *)0x0;\n  local_50 = 0;\n  ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl._M_start;\n  ppOVar1 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl._M_finish;\njoined_r0x000abb97:\n  if (ppOVar9 != ppOVar1) {\n    do {\n      pOVar2 = *ppOVar9;\n      if (pOVar2->type_ == 1) {\n        uVar10 = (uint)pOVar2->filesz_;\n        iVar11 = *(int *)((int)&pOVar2->filesz_ + 4);\n        if (-iVar11 < (int)(uint)(uVar10 != 0)) {\n          puVar8 = (uchar *)(uVar10 + (int)pOVar2->paddr_);\n          uVar10 = iVar11 + *(int *)((int)&pOVar2->paddr_ + 4) +\n                   (uint)CARRY4(uVar10,(uint)pOVar2->paddr_);\n          if (local_50 < uVar10 || local_50 - uVar10 < (uint)(local_54 < puVar8))\n          goto code_r0x000abbde;\n        }\n      }\n      ppOVar9 = ppOVar9 + 1;\n      if (ppOVar1 == ppOVar9) break;\n    } while( true );\n  }\n  if (parameters->options_ == (General_options *)0x0) goto LAB_000abd80;\n  Output_file::Output_file(&out,(parameters->options_->output_).value);\n  Output_file::open(&out,(char *)local_54,local_50);\n  ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl._M_start;\n  if (ppOVar9 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish) {\nLAB_000abc63:\n    do {\n      pOVar2 = *ppOVar9;\n      if ((pOVar2->type_ == 1) &&\n         (uVar10 = (uint)pOVar2->filesz_,\n         -*(int *)((int)&pOVar2->filesz_ + 4) < (int)(uint)(uVar10 != 0))) {\n        iVar11 = *(int *)((int)&pOVar2->offset_ + 4);\n        uVar5 = (uint)pOVar2->offset_;\n        if ((-1 < iVar11) &&\n           (iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5), iVar3 = *(int *)((int)&in->file_size_ + 4)\n           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0)) {\n          iVar11 = *(int *)((int)&pOVar2->paddr_ + 4);\n          uVar4 = (uint)pOVar2->paddr_;\n          local_54 = in->base_ + uVar5;\n          if ((-1 < iVar11) &&\n             (iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0)) {\n            ppOVar9 = ppOVar9 + 1;\n            memcpy(out.base_ + uVar4,local_54,uVar10);\n            if ((this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n      }\n      ppOVar9 = ppOVar9 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar9);\n  }\n  Output_file::close(&out,(int)local_54);\n  return;\ncode_r0x000abbde:\n  ppOVar9 = ppOVar9 + 1;\n  local_54 = puVar8;\n  local_50 = uVar10;\n  goto joined_r0x000abb97;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "write_binary(Layout *this,Output_file *in)" identifier (parameter_list "(Layout *this,Output_file *in)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_file *in" type_identifier (pointer_declarator "*in" * identifier)) ))) (compound_statement "{\n  pointer ppOVar1;\n  Output_segment *pOVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  Object_format OVar7;\n  uchar *puVar8;\n  pointer ppOVar9;\n  uint uVar10;\n  int iVar11;\n  uchar *local_54;\n  uint local_50;\n  Output_file out;\n  \n  if (parameters->options_ == (General_options *)0x0) {\nLAB_000abd80:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  OVar7 = General_options::oformat_enum(parameters->options_);\n  if (OVar7 != OBJECT_FORMAT_BINARY) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x1714,"write_binary");\n  }\n  local_54 = (uchar *)0x0;\n  local_50 = 0;\n  ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl._M_start;\n  ppOVar1 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl._M_finish;\njoined_r0x000abb97:\n  if (ppOVar9 != ppOVar1) {\n    do {\n      pOVar2 = *ppOVar9;\n      if (pOVar2->type_ == 1) {\n        uVar10 = (uint)pOVar2->filesz_;\n        iVar11 = *(int *)((int)&pOVar2->filesz_ + 4);\n        if (-iVar11 < (int)(uint)(uVar10 != 0)) {\n          puVar8 = (uchar *)(uVar10 + (int)pOVar2->paddr_);\n          uVar10 = iVar11 + *(int *)((int)&pOVar2->paddr_ + 4) +\n                   (uint)CARRY4(uVar10,(uint)pOVar2->paddr_);\n          if (local_50 < uVar10 || local_50 - uVar10 < (uint)(local_54 < puVar8))\n          goto code_r0x000abbde;\n        }\n      }\n      ppOVar9 = ppOVar9 + 1;\n      if (ppOVar1 == ppOVar9) break;\n    } while( true );\n  }\n  if (parameters->options_ == (General_options *)0x0) goto LAB_000abd80;\n  Output_file::Output_file(&out,(parameters->options_->output_).value);\n  Output_file::open(&out,(char *)local_54,local_50);\n  ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl._M_start;\n  if (ppOVar9 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish) {\nLAB_000abc63:\n    do {\n      pOVar2 = *ppOVar9;\n      if ((pOVar2->type_ == 1) &&\n         (uVar10 = (uint)pOVar2->filesz_,\n         -*(int *)((int)&pOVar2->filesz_ + 4) < (int)(uint)(uVar10 != 0))) {\n        iVar11 = *(int *)((int)&pOVar2->offset_ + 4);\n        uVar5 = (uint)pOVar2->offset_;\n        if ((-1 < iVar11) &&\n           (iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5), iVar3 = *(int *)((int)&in->file_size_ + 4)\n           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0)) {\n          iVar11 = *(int *)((int)&pOVar2->paddr_ + 4);\n          uVar4 = (uint)pOVar2->paddr_;\n          local_54 = in->base_ + uVar5;\n          if ((-1 < iVar11) &&\n             (iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0)) {\n            ppOVar9 = ppOVar9 + 1;\n            memcpy(out.base_ + uVar4,local_54,uVar10);\n            if ((this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n      }\n      ppOVar9 = ppOVar9 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar9);\n  }\n  Output_file::close(&out,(int)local_54);\n  return;\ncode_r0x000abbde:\n  ppOVar9 = ppOVar9 + 1;\n  local_54 = puVar8;\n  local_50 = uVar10;\n  goto joined_r0x000abb97;\n}" { (declaration "pointer ppOVar1;" type_identifier identifier ;) (declaration "Output_segment *pOVar2;" type_identifier (pointer_declarator "*pOVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "Object_format OVar7;" type_identifier identifier ;) (declaration "uchar *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "pointer ppOVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uchar *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "Output_file out;" type_identifier identifier ;) (if_statement "if (parameters->options_ == (General_options *)0x0) {\nLAB_000abd80:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000abd80:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { (labeled_statement "LAB_000abd80:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (ERROR "OVar7 = General_options::" (assignment_expression "OVar7 = General_options" identifier = identifier) : :) (expression_statement "oformat_enum(parameters->options_);" (call_expression "oformat_enum(parameters->options_)" identifier (argument_list "(parameters->options_)" ( (field_expression "parameters->options_" identifier -> field_identifier) ))) ;) (if_statement "if (OVar7 != OBJECT_FORMAT_BINARY) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x1714,"write_binary");\n  }" if (parenthesized_expression "(OVar7 != OBJECT_FORMAT_BINARY)" ( (binary_expression "OVar7 != OBJECT_FORMAT_BINARY" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x1714,"write_binary");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0x1714,"write_binary");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0x1714,"write_binary")" identifier (argument_list "("../../gold/layout.cc",0x1714,"write_binary")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""write_binary"" " string_content ") ))) ;) })) (expression_statement "local_54 = (uchar *)0x0;" (assignment_expression "local_54 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl._M_start;" (field_expression "ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl._M_start" (field_expression "ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl" (binary_expression "ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std" (assignment_expression "ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->segment_list_).\n            super__Vector_base<gold" (field_expression "(this->segment_list_).\n            super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "ppOVar1 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl._M_finish;" (field_expression "ppOVar1 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl._M_finish" (field_expression "ppOVar1 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl" (binary_expression "ppOVar1 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "ppOVar1 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "ppOVar1 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std" (assignment_expression "ppOVar1 = (this->segment_list_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->segment_list_).\n            super__Vector_base<gold" (field_expression "(this->segment_list_).\n            super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (labeled_statement "joined_r0x000abb97:\n  if (ppOVar9 != ppOVar1) {\n    do {\n      pOVar2 = *ppOVar9;\n      if (pOVar2->type_ == 1) {\n        uVar10 = (uint)pOVar2->filesz_;\n        iVar11 = *(int *)((int)&pOVar2->filesz_ + 4);\n        if (-iVar11 < (int)(uint)(uVar10 != 0)) {\n          puVar8 = (uchar *)(uVar10 + (int)pOVar2->paddr_);\n          uVar10 = iVar11 + *(int *)((int)&pOVar2->paddr_ + 4) +\n                   (uint)CARRY4(uVar10,(uint)pOVar2->paddr_);\n          if (local_50 < uVar10 || local_50 - uVar10 < (uint)(local_54 < puVar8))\n          goto code_r0x000abbde;\n        }\n      }\n      ppOVar9 = ppOVar9 + 1;\n      if (ppOVar1 == ppOVar9) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (ppOVar9 != ppOVar1) {\n    do {\n      pOVar2 = *ppOVar9;\n      if (pOVar2->type_ == 1) {\n        uVar10 = (uint)pOVar2->filesz_;\n        iVar11 = *(int *)((int)&pOVar2->filesz_ + 4);\n        if (-iVar11 < (int)(uint)(uVar10 != 0)) {\n          puVar8 = (uchar *)(uVar10 + (int)pOVar2->paddr_);\n          uVar10 = iVar11 + *(int *)((int)&pOVar2->paddr_ + 4) +\n                   (uint)CARRY4(uVar10,(uint)pOVar2->paddr_);\n          if (local_50 < uVar10 || local_50 - uVar10 < (uint)(local_54 < puVar8))\n          goto code_r0x000abbde;\n        }\n      }\n      ppOVar9 = ppOVar9 + 1;\n      if (ppOVar1 == ppOVar9) break;\n    } while( true );\n  }" if (parenthesized_expression "(ppOVar9 != ppOVar1)" ( (binary_expression "ppOVar9 != ppOVar1" identifier != identifier) )) (compound_statement "{\n    do {\n      pOVar2 = *ppOVar9;\n      if (pOVar2->type_ == 1) {\n        uVar10 = (uint)pOVar2->filesz_;\n        iVar11 = *(int *)((int)&pOVar2->filesz_ + 4);\n        if (-iVar11 < (int)(uint)(uVar10 != 0)) {\n          puVar8 = (uchar *)(uVar10 + (int)pOVar2->paddr_);\n          uVar10 = iVar11 + *(int *)((int)&pOVar2->paddr_ + 4) +\n                   (uint)CARRY4(uVar10,(uint)pOVar2->paddr_);\n          if (local_50 < uVar10 || local_50 - uVar10 < (uint)(local_54 < puVar8))\n          goto code_r0x000abbde;\n        }\n      }\n      ppOVar9 = ppOVar9 + 1;\n      if (ppOVar1 == ppOVar9) break;\n    } while( true );\n  }" { (do_statement "do {\n      pOVar2 = *ppOVar9;\n      if (pOVar2->type_ == 1) {\n        uVar10 = (uint)pOVar2->filesz_;\n        iVar11 = *(int *)((int)&pOVar2->filesz_ + 4);\n        if (-iVar11 < (int)(uint)(uVar10 != 0)) {\n          puVar8 = (uchar *)(uVar10 + (int)pOVar2->paddr_);\n          uVar10 = iVar11 + *(int *)((int)&pOVar2->paddr_ + 4) +\n                   (uint)CARRY4(uVar10,(uint)pOVar2->paddr_);\n          if (local_50 < uVar10 || local_50 - uVar10 < (uint)(local_54 < puVar8))\n          goto code_r0x000abbde;\n        }\n      }\n      ppOVar9 = ppOVar9 + 1;\n      if (ppOVar1 == ppOVar9) break;\n    } while( true );" do (compound_statement "{\n      pOVar2 = *ppOVar9;\n      if (pOVar2->type_ == 1) {\n        uVar10 = (uint)pOVar2->filesz_;\n        iVar11 = *(int *)((int)&pOVar2->filesz_ + 4);\n        if (-iVar11 < (int)(uint)(uVar10 != 0)) {\n          puVar8 = (uchar *)(uVar10 + (int)pOVar2->paddr_);\n          uVar10 = iVar11 + *(int *)((int)&pOVar2->paddr_ + 4) +\n                   (uint)CARRY4(uVar10,(uint)pOVar2->paddr_);\n          if (local_50 < uVar10 || local_50 - uVar10 < (uint)(local_54 < puVar8))\n          goto code_r0x000abbde;\n        }\n      }\n      ppOVar9 = ppOVar9 + 1;\n      if (ppOVar1 == ppOVar9) break;\n    }" { (expression_statement "pOVar2 = *ppOVar9;" (assignment_expression "pOVar2 = *ppOVar9" identifier = (pointer_expression "*ppOVar9" * identifier)) ;) (if_statement "if (pOVar2->type_ == 1) {\n        uVar10 = (uint)pOVar2->filesz_;\n        iVar11 = *(int *)((int)&pOVar2->filesz_ + 4);\n        if (-iVar11 < (int)(uint)(uVar10 != 0)) {\n          puVar8 = (uchar *)(uVar10 + (int)pOVar2->paddr_);\n          uVar10 = iVar11 + *(int *)((int)&pOVar2->paddr_ + 4) +\n                   (uint)CARRY4(uVar10,(uint)pOVar2->paddr_);\n          if (local_50 < uVar10 || local_50 - uVar10 < (uint)(local_54 < puVar8))\n          goto code_r0x000abbde;\n        }\n      }" if (parenthesized_expression "(pOVar2->type_ == 1)" ( (binary_expression "pOVar2->type_ == 1" (field_expression "pOVar2->type_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        uVar10 = (uint)pOVar2->filesz_;\n        iVar11 = *(int *)((int)&pOVar2->filesz_ + 4);\n        if (-iVar11 < (int)(uint)(uVar10 != 0)) {\n          puVar8 = (uchar *)(uVar10 + (int)pOVar2->paddr_);\n          uVar10 = iVar11 + *(int *)((int)&pOVar2->paddr_ + 4) +\n                   (uint)CARRY4(uVar10,(uint)pOVar2->paddr_);\n          if (local_50 < uVar10 || local_50 - uVar10 < (uint)(local_54 < puVar8))\n          goto code_r0x000abbde;\n        }\n      }" { (expression_statement "uVar10 = (uint)pOVar2->filesz_;" (assignment_expression "uVar10 = (uint)pOVar2->filesz_" identifier = (cast_expression "(uint)pOVar2->filesz_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar2->filesz_" identifier -> field_identifier))) ;) (expression_statement "iVar11 = *(int *)((int)&pOVar2->filesz_ + 4);" (assignment_expression "iVar11 = *(int *)((int)&pOVar2->filesz_ + 4)" identifier = (pointer_expression "*(int *)((int)&pOVar2->filesz_ + 4)" * (cast_expression "(int *)((int)&pOVar2->filesz_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar2->filesz_ + 4)" ( (binary_expression "(int)&pOVar2->filesz_ + 4" (cast_expression "(int)&pOVar2->filesz_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar2->filesz_" & (field_expression "pOVar2->filesz_" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (-iVar11 < (int)(uint)(uVar10 != 0)) {\n          puVar8 = (uchar *)(uVar10 + (int)pOVar2->paddr_);\n          uVar10 = iVar11 + *(int *)((int)&pOVar2->paddr_ + 4) +\n                   (uint)CARRY4(uVar10,(uint)pOVar2->paddr_);\n          if (local_50 < uVar10 || local_50 - uVar10 < (uint)(local_54 < puVar8))\n          goto code_r0x000abbde;\n        }" if (parenthesized_expression "(-iVar11 < (int)(uint)(uVar10 != 0))" ( (binary_expression "-iVar11 < (int)(uint)(uVar10 != 0)" (unary_expression "-iVar11" - identifier) < (cast_expression "(int)(uint)(uVar10 != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(uVar10 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) ))))) )) (compound_statement "{\n          puVar8 = (uchar *)(uVar10 + (int)pOVar2->paddr_);\n          uVar10 = iVar11 + *(int *)((int)&pOVar2->paddr_ + 4) +\n                   (uint)CARRY4(uVar10,(uint)pOVar2->paddr_);\n          if (local_50 < uVar10 || local_50 - uVar10 < (uint)(local_54 < puVar8))\n          goto code_r0x000abbde;\n        }" { (expression_statement "puVar8 = (uchar *)(uVar10 + (int)pOVar2->paddr_);" (assignment_expression "puVar8 = (uchar *)(uVar10 + (int)pOVar2->paddr_)" identifier = (cast_expression "(uchar *)(uVar10 + (int)pOVar2->paddr_)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar10 + (int)pOVar2->paddr_)" ( (binary_expression "uVar10 + (int)pOVar2->paddr_" identifier + (cast_expression "(int)pOVar2->paddr_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar2->paddr_" identifier -> field_identifier))) )))) ;) (expression_statement "uVar10 = iVar11 + *(int *)((int)&pOVar2->paddr_ + 4) +\n                   (uint)CARRY4(uVar10,(uint)pOVar2->paddr_);" (assignment_expression "uVar10 = iVar11 + *(int *)((int)&pOVar2->paddr_ + 4) +\n                   (uint)CARRY4(uVar10,(uint)pOVar2->paddr_)" identifier = (binary_expression "iVar11 + *(int *)((int)&pOVar2->paddr_ + 4) +\n                   (uint)CARRY4(uVar10,(uint)pOVar2->paddr_)" (binary_expression "iVar11 + *(int *)((int)&pOVar2->paddr_ + 4)" identifier + (pointer_expression "*(int *)((int)&pOVar2->paddr_ + 4)" * (cast_expression "(int *)((int)&pOVar2->paddr_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar2->paddr_ + 4)" ( (binary_expression "(int)&pOVar2->paddr_ + 4" (cast_expression "(int)&pOVar2->paddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar2->paddr_" & (field_expression "pOVar2->paddr_" identifier -> field_identifier))) + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar10,(uint)pOVar2->paddr_)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10,(uint)pOVar2->paddr_)" identifier (argument_list "(uVar10,(uint)pOVar2->paddr_)" ( identifier , (cast_expression "(uint)pOVar2->paddr_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar2->paddr_" identifier -> field_identifier)) )))))) ;) (if_statement "if (local_50 < uVar10 || local_50 - uVar10 < (uint)(local_54 < puVar8))\n          goto code_r0x000abbde;" if (parenthesized_expression "(local_50 < uVar10 || local_50 - uVar10 < (uint)(local_54 < puVar8))" ( (binary_expression "local_50 < uVar10 || local_50 - uVar10 < (uint)(local_54 < puVar8)" (binary_expression "local_50 < uVar10" identifier < identifier) || (binary_expression "local_50 - uVar10 < (uint)(local_54 < puVar8)" (binary_expression "local_50 - uVar10" identifier - identifier) < (call_expression "(uint)(local_54 < puVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < puVar8)" ( (binary_expression "local_54 < puVar8" identifier < identifier) ))))) )) (goto_statement "goto code_r0x000abbde;" goto statement_identifier ;)) })) })) (expression_statement "ppOVar9 = ppOVar9 + 1;" (assignment_expression "ppOVar9 = ppOVar9 + 1" identifier = (binary_expression "ppOVar9 + 1" identifier + number_literal)) ;) (if_statement "if (ppOVar1 == ppOVar9) break;" if (parenthesized_expression "(ppOVar1 == ppOVar9)" ( (binary_expression "ppOVar1 == ppOVar9" identifier == identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (if_statement "if (parameters->options_ == (General_options *)0x0) goto LAB_000abd80;" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000abd80;" goto statement_identifier ;)) (labeled_statement "Output_file::Output_file(&out,(parameters->options_->output_).value);" statement_identifier : (ERROR ":" :) (expression_statement "Output_file(&out,(parameters->options_->output_).value);" (call_expression "Output_file(&out,(parameters->options_->output_).value)" identifier (argument_list "(&out,(parameters->options_->output_).value)" ( (pointer_expression "&out" & identifier) , (field_expression "(parameters->options_->output_).value" (parenthesized_expression "(parameters->options_->output_)" ( (field_expression "parameters->options_->output_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) ))) ;)) (labeled_statement "Output_file::open(&out,(char *)local_54,local_50);" statement_identifier : (ERROR ":" :) (expression_statement "open(&out,(char *)local_54,local_50);" (call_expression "open(&out,(char *)local_54,local_50)" identifier (argument_list "(&out,(char *)local_54,local_50)" ( (pointer_expression "&out" & identifier) , (cast_expression "(char *)local_54" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;)) (expression_statement "ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl._M_start;" (field_expression "ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl._M_start" (field_expression "ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n            _M_impl" (binary_expression "ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold::Output_segment*,_std" (assignment_expression "ppOVar9 = (this->segment_list_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->segment_list_).\n            super__Vector_base<gold" (field_expression "(this->segment_list_).\n            super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppOVar9 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish) {\nLAB_000abc63:\n    do {\n      pOVar2 = *ppOVar9;\n      if ((pOVar2->type_ == 1) &&\n         (uVar10 = (uint)pOVar2->filesz_,\n         -*(int *)((int)&pOVar2->filesz_ + 4) < (int)(uint)(uVar10 != 0))) {\n        iVar11 = *(int *)((int)&pOVar2->offset_ + 4);\n        uVar5 = (uint)pOVar2->offset_;\n        if ((-1 < iVar11) &&\n           (iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5), iVar3 = *(int *)((int)&in->file_size_ + 4)\n           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0)) {\n          iVar11 = *(int *)((int)&pOVar2->paddr_ + 4);\n          uVar4 = (uint)pOVar2->paddr_;\n          local_54 = in->base_ + uVar5;\n          if ((-1 < iVar11) &&\n             (iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0)) {\n            ppOVar9 = ppOVar9 + 1;\n            memcpy(out.base_ + uVar4,local_54,uVar10);\n            if ((this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n      }\n      ppOVar9 = ppOVar9 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar9);\n  }" if (parenthesized_expression "(ppOVar9 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish)" ( (field_expression "ppOVar9 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish" (field_expression "ppOVar9 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl" (binary_expression "ppOVar9 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "ppOVar9 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "ppOVar9 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std" (binary_expression "ppOVar9 !=\n      (this->segment_list_).\n      super__Vector_base<gold" identifier != (binary_expression "(this->segment_list_).\n      super__Vector_base<gold" (field_expression "(this->segment_list_).\n      super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\nLAB_000abc63:\n    do {\n      pOVar2 = *ppOVar9;\n      if ((pOVar2->type_ == 1) &&\n         (uVar10 = (uint)pOVar2->filesz_,\n         -*(int *)((int)&pOVar2->filesz_ + 4) < (int)(uint)(uVar10 != 0))) {\n        iVar11 = *(int *)((int)&pOVar2->offset_ + 4);\n        uVar5 = (uint)pOVar2->offset_;\n        if ((-1 < iVar11) &&\n           (iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5), iVar3 = *(int *)((int)&in->file_size_ + 4)\n           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0)) {\n          iVar11 = *(int *)((int)&pOVar2->paddr_ + 4);\n          uVar4 = (uint)pOVar2->paddr_;\n          local_54 = in->base_ + uVar5;\n          if ((-1 < iVar11) &&\n             (iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0)) {\n            ppOVar9 = ppOVar9 + 1;\n            memcpy(out.base_ + uVar4,local_54,uVar10);\n            if ((this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n      }\n      ppOVar9 = ppOVar9 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar9);\n  }" { (labeled_statement "LAB_000abc63:\n    do {\n      pOVar2 = *ppOVar9;\n      if ((pOVar2->type_ == 1) &&\n         (uVar10 = (uint)pOVar2->filesz_,\n         -*(int *)((int)&pOVar2->filesz_ + 4) < (int)(uint)(uVar10 != 0))) {\n        iVar11 = *(int *)((int)&pOVar2->offset_ + 4);\n        uVar5 = (uint)pOVar2->offset_;\n        if ((-1 < iVar11) &&\n           (iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5), iVar3 = *(int *)((int)&in->file_size_ + 4)\n           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0)) {\n          iVar11 = *(int *)((int)&pOVar2->paddr_ + 4);\n          uVar4 = (uint)pOVar2->paddr_;\n          local_54 = in->base_ + uVar5;\n          if ((-1 < iVar11) &&\n             (iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0)) {\n            ppOVar9 = ppOVar9 + 1;\n            memcpy(out.base_ + uVar4,local_54,uVar10);\n            if ((this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n      }\n      ppOVar9 = ppOVar9 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar9);" statement_identifier : (do_statement "do {\n      pOVar2 = *ppOVar9;\n      if ((pOVar2->type_ == 1) &&\n         (uVar10 = (uint)pOVar2->filesz_,\n         -*(int *)((int)&pOVar2->filesz_ + 4) < (int)(uint)(uVar10 != 0))) {\n        iVar11 = *(int *)((int)&pOVar2->offset_ + 4);\n        uVar5 = (uint)pOVar2->offset_;\n        if ((-1 < iVar11) &&\n           (iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5), iVar3 = *(int *)((int)&in->file_size_ + 4)\n           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0)) {\n          iVar11 = *(int *)((int)&pOVar2->paddr_ + 4);\n          uVar4 = (uint)pOVar2->paddr_;\n          local_54 = in->base_ + uVar5;\n          if ((-1 < iVar11) &&\n             (iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0)) {\n            ppOVar9 = ppOVar9 + 1;\n            memcpy(out.base_ + uVar4,local_54,uVar10);\n            if ((this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n      }\n      ppOVar9 = ppOVar9 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar9);" do (compound_statement "{\n      pOVar2 = *ppOVar9;\n      if ((pOVar2->type_ == 1) &&\n         (uVar10 = (uint)pOVar2->filesz_,\n         -*(int *)((int)&pOVar2->filesz_ + 4) < (int)(uint)(uVar10 != 0))) {\n        iVar11 = *(int *)((int)&pOVar2->offset_ + 4);\n        uVar5 = (uint)pOVar2->offset_;\n        if ((-1 < iVar11) &&\n           (iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5), iVar3 = *(int *)((int)&in->file_size_ + 4)\n           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0)) {\n          iVar11 = *(int *)((int)&pOVar2->paddr_ + 4);\n          uVar4 = (uint)pOVar2->paddr_;\n          local_54 = in->base_ + uVar5;\n          if ((-1 < iVar11) &&\n             (iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0)) {\n            ppOVar9 = ppOVar9 + 1;\n            memcpy(out.base_ + uVar4,local_54,uVar10);\n            if ((this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n      }\n      ppOVar9 = ppOVar9 + 1;\n    }" { (expression_statement "pOVar2 = *ppOVar9;" (assignment_expression "pOVar2 = *ppOVar9" identifier = (pointer_expression "*ppOVar9" * identifier)) ;) (if_statement "if ((pOVar2->type_ == 1) &&\n         (uVar10 = (uint)pOVar2->filesz_,\n         -*(int *)((int)&pOVar2->filesz_ + 4) < (int)(uint)(uVar10 != 0))) {\n        iVar11 = *(int *)((int)&pOVar2->offset_ + 4);\n        uVar5 = (uint)pOVar2->offset_;\n        if ((-1 < iVar11) &&\n           (iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5), iVar3 = *(int *)((int)&in->file_size_ + 4)\n           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0)) {\n          iVar11 = *(int *)((int)&pOVar2->paddr_ + 4);\n          uVar4 = (uint)pOVar2->paddr_;\n          local_54 = in->base_ + uVar5;\n          if ((-1 < iVar11) &&\n             (iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0)) {\n            ppOVar9 = ppOVar9 + 1;\n            memcpy(out.base_ + uVar4,local_54,uVar10);\n            if ((this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n      }" if (parenthesized_expression "((pOVar2->type_ == 1) &&\n         (uVar10 = (uint)pOVar2->filesz_,\n         -*(int *)((int)&pOVar2->filesz_ + 4) < (int)(uint)(uVar10 != 0)))" ( (binary_expression "(pOVar2->type_ == 1) &&\n         (uVar10 = (uint)pOVar2->filesz_,\n         -*(int *)((int)&pOVar2->filesz_ + 4) < (int)(uint)(uVar10 != 0))" (parenthesized_expression "(pOVar2->type_ == 1)" ( (binary_expression "pOVar2->type_ == 1" (field_expression "pOVar2->type_" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(uVar10 = (uint)pOVar2->filesz_,\n         -*(int *)((int)&pOVar2->filesz_ + 4) < (int)(uint)(uVar10 != 0))" ( (comma_expression "uVar10 = (uint)pOVar2->filesz_,\n         -*(int *)((int)&pOVar2->filesz_ + 4) < (int)(uint)(uVar10 != 0)" (assignment_expression "uVar10 = (uint)pOVar2->filesz_" identifier = (cast_expression "(uint)pOVar2->filesz_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar2->filesz_" identifier -> field_identifier))) , (binary_expression "-*(int *)((int)&pOVar2->filesz_ + 4) < (int)(uint)(uVar10 != 0)" (unary_expression "-*(int *)((int)&pOVar2->filesz_ + 4)" - (pointer_expression "*(int *)((int)&pOVar2->filesz_ + 4)" * (cast_expression "(int *)((int)&pOVar2->filesz_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar2->filesz_ + 4)" ( (binary_expression "(int)&pOVar2->filesz_ + 4" (cast_expression "(int)&pOVar2->filesz_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar2->filesz_" & (field_expression "pOVar2->filesz_" identifier -> field_identifier))) + number_literal) ))))) < (cast_expression "(int)(uint)(uVar10 != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(uVar10 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )))))) ))) )) (compound_statement "{\n        iVar11 = *(int *)((int)&pOVar2->offset_ + 4);\n        uVar5 = (uint)pOVar2->offset_;\n        if ((-1 < iVar11) &&\n           (iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5), iVar3 = *(int *)((int)&in->file_size_ + 4)\n           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0)) {\n          iVar11 = *(int *)((int)&pOVar2->paddr_ + 4);\n          uVar4 = (uint)pOVar2->paddr_;\n          local_54 = in->base_ + uVar5;\n          if ((-1 < iVar11) &&\n             (iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0)) {\n            ppOVar9 = ppOVar9 + 1;\n            memcpy(out.base_ + uVar4,local_54,uVar10);\n            if ((this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9) break;\n            goto LAB_000abc63;\n          }\n        }\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n      }" { (expression_statement "iVar11 = *(int *)((int)&pOVar2->offset_ + 4);" (assignment_expression "iVar11 = *(int *)((int)&pOVar2->offset_ + 4)" identifier = (pointer_expression "*(int *)((int)&pOVar2->offset_ + 4)" * (cast_expression "(int *)((int)&pOVar2->offset_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar2->offset_ + 4)" ( (binary_expression "(int)&pOVar2->offset_ + 4" (cast_expression "(int)&pOVar2->offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar2->offset_" & (field_expression "pOVar2->offset_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar5 = (uint)pOVar2->offset_;" (assignment_expression "uVar5 = (uint)pOVar2->offset_" identifier = (cast_expression "(uint)pOVar2->offset_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar2->offset_" identifier -> field_identifier))) ;) (if_statement "if ((-1 < iVar11) &&\n           (iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5), iVar3 = *(int *)((int)&in->file_size_ + 4)\n           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0)) {\n          iVar11 = *(int *)((int)&pOVar2->paddr_ + 4);\n          uVar4 = (uint)pOVar2->paddr_;\n          local_54 = in->base_ + uVar5;\n          if ((-1 < iVar11) &&\n             (iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0)) {\n            ppOVar9 = ppOVar9 + 1;\n            memcpy(out.base_ + uVar4,local_54,uVar10);\n            if ((this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9) break;\n            goto LAB_000abc63;\n          }\n        }" if (parenthesized_expression "((-1 < iVar11) &&\n           (iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5), iVar3 = *(int *)((int)&in->file_size_ + 4)\n           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0))" ( (binary_expression "(-1 < iVar11) &&\n           (iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5), iVar3 = *(int *)((int)&in->file_size_ + 4)\n           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0)" (parenthesized_expression "(-1 < iVar11)" ( (binary_expression "-1 < iVar11" number_literal < identifier) )) && (parenthesized_expression "(iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5), iVar3 = *(int *)((int)&in->file_size_ + 4)\n           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0)" ( (comma_expression "iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5), iVar3 = *(int *)((int)&in->file_size_ + 4)\n           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0" (assignment_expression "iVar11 = iVar11 + (uint)CARRY4(uVar10,uVar5)" identifier = (binary_expression "iVar11 + (uint)CARRY4(uVar10,uVar5)" identifier + (cast_expression "(uint)CARRY4(uVar10,uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10,uVar5)" identifier (argument_list "(uVar10,uVar5)" ( identifier , identifier )))))) , (comma_expression "iVar3 = *(int *)((int)&in->file_size_ + 4)\n           , uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0" (assignment_expression "iVar3 = *(int *)((int)&in->file_size_ + 4)" identifier = (pointer_expression "*(int *)((int)&in->file_size_ + 4)" * (cast_expression "(int *)((int)&in->file_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&in->file_size_ + 4)" ( (binary_expression "(int)&in->file_size_ + 4" (cast_expression "(int)&in->file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&in->file_size_" & (field_expression "in->file_size_" identifier -> field_identifier))) + number_literal) ))))) , (comma_expression "uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5), iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0" (assignment_expression "uVar4 = (uint)((uint)in->file_size_ < uVar10 + uVar5)" identifier = (call_expression "(uint)((uint)in->file_size_ < uVar10 + uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)in->file_size_ < uVar10 + uVar5)" ( (binary_expression "(uint)in->file_size_ < uVar10 + uVar5" (cast_expression "(uint)in->file_size_" ( (type_descriptor "uint" type_identifier) ) (field_expression "in->file_size_" identifier -> field_identifier)) < (binary_expression "uVar10 + uVar5" identifier + identifier)) )))) , (comma_expression "iVar6 = iVar3 - iVar11,\n           (SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0" (assignment_expression "iVar6 = iVar3 - iVar11" identifier = (binary_expression "iVar3 - iVar11" identifier - identifier)) , (binary_expression "(SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)) == (int)(iVar6 - uVar4) < 0" (parenthesized_expression "(SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4))" ( (binary_expression "SBORROW4(iVar3,iVar11) != SBORROW4(iVar6,uVar4)" (call_expression "SBORROW4(iVar3,iVar11)" identifier (argument_list "(iVar3,iVar11)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar6,uVar4)" identifier (argument_list "(iVar6,uVar4)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar6 - uVar4) < 0" (cast_expression "(int)(iVar6 - uVar4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar6 - uVar4)" ( (binary_expression "iVar6 - uVar4" identifier - identifier) ))) < number_literal)))))) ))) )) (compound_statement "{\n          iVar11 = *(int *)((int)&pOVar2->paddr_ + 4);\n          uVar4 = (uint)pOVar2->paddr_;\n          local_54 = in->base_ + uVar5;\n          if ((-1 < iVar11) &&\n             (iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0)) {\n            ppOVar9 = ppOVar9 + 1;\n            memcpy(out.base_ + uVar4,local_54,uVar10);\n            if ((this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9) break;\n            goto LAB_000abc63;\n          }\n        }" { (expression_statement "iVar11 = *(int *)((int)&pOVar2->paddr_ + 4);" (assignment_expression "iVar11 = *(int *)((int)&pOVar2->paddr_ + 4)" identifier = (pointer_expression "*(int *)((int)&pOVar2->paddr_ + 4)" * (cast_expression "(int *)((int)&pOVar2->paddr_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar2->paddr_ + 4)" ( (binary_expression "(int)&pOVar2->paddr_ + 4" (cast_expression "(int)&pOVar2->paddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar2->paddr_" & (field_expression "pOVar2->paddr_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar4 = (uint)pOVar2->paddr_;" (assignment_expression "uVar4 = (uint)pOVar2->paddr_" identifier = (cast_expression "(uint)pOVar2->paddr_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar2->paddr_" identifier -> field_identifier))) ;) (expression_statement "local_54 = in->base_ + uVar5;" (assignment_expression "local_54 = in->base_ + uVar5" identifier = (binary_expression "in->base_ + uVar5" (field_expression "in->base_" identifier -> field_identifier) + identifier)) ;) (if_statement "if ((-1 < iVar11) &&\n             (iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0)) {\n            ppOVar9 = ppOVar9 + 1;\n            memcpy(out.base_ + uVar4,local_54,uVar10);\n            if ((this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9) break;\n            goto LAB_000abc63;\n          }" if (parenthesized_expression "((-1 < iVar11) &&\n             (iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0))" ( (binary_expression "(-1 < iVar11) &&\n             (iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0)" (parenthesized_expression "(-1 < iVar11)" ( (binary_expression "-1 < iVar11" number_literal < identifier) )) && (parenthesized_expression "(iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0)" ( (comma_expression "iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10),\n             uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0" (assignment_expression "iVar11 = iVar11 + (uint)CARRY4(uVar4,uVar10)" identifier = (binary_expression "iVar11 + (uint)CARRY4(uVar4,uVar10)" identifier + (cast_expression "(uint)CARRY4(uVar4,uVar10)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar4,uVar10)" identifier (argument_list "(uVar4,uVar10)" ( identifier , identifier )))))) , (comma_expression "uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10),\n             iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0" (assignment_expression "uVar5 = (uint)((uint)out.file_size_ < uVar4 + uVar10)" identifier = (call_expression "(uint)((uint)out.file_size_ < uVar4 + uVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)out.file_size_ < uVar4 + uVar10)" ( (binary_expression "(uint)out.file_size_ < uVar4 + uVar10" (cast_expression "(uint)out.file_size_" ( (type_descriptor "uint" type_identifier) ) (field_expression "out.file_size_" identifier . field_identifier)) < (binary_expression "uVar4 + uVar10" identifier + identifier)) )))) , (comma_expression "iVar3 = out.file_size_._4_4_ - iVar11,\n             (SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0" (assignment_expression "iVar3 = out.file_size_._4_4_ - iVar11" identifier = (binary_expression "out.file_size_._4_4_ - iVar11" (field_expression "out.file_size_._4_4_" (field_expression "out.file_size_" identifier . field_identifier) . field_identifier) - identifier)) , (binary_expression "(SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)) ==\n             (int)(iVar3 - uVar5) < 0" (parenthesized_expression "(SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5))" ( (binary_expression "SBORROW4(out.file_size_._4_4_,iVar11) != SBORROW4(iVar3,uVar5)" (call_expression "SBORROW4(out.file_size_._4_4_,iVar11)" identifier (argument_list "(out.file_size_._4_4_,iVar11)" ( (field_expression "out.file_size_._4_4_" (field_expression "out.file_size_" identifier . field_identifier) . field_identifier) , identifier ))) != (call_expression "SBORROW4(iVar3,uVar5)" identifier (argument_list "(iVar3,uVar5)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar3 - uVar5) < 0" (cast_expression "(int)(iVar3 - uVar5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar3 - uVar5)" ( (binary_expression "iVar3 - uVar5" identifier - identifier) ))) < number_literal))))) ))) )) (compound_statement "{\n            ppOVar9 = ppOVar9 + 1;\n            memcpy(out.base_ + uVar4,local_54,uVar10);\n            if ((this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9) break;\n            goto LAB_000abc63;\n          }" { (expression_statement "ppOVar9 = ppOVar9 + 1;" (assignment_expression "ppOVar9 = ppOVar9 + 1" identifier = (binary_expression "ppOVar9 + 1" identifier + number_literal)) ;) (expression_statement "memcpy(out.base_ + uVar4,local_54,uVar10);" (call_expression "memcpy(out.base_ + uVar4,local_54,uVar10)" identifier (argument_list "(out.base_ + uVar4,local_54,uVar10)" ( (binary_expression "out.base_ + uVar4" (field_expression "out.base_" identifier . field_identifier) + identifier) , identifier , identifier ))) ;) (if_statement "if ((this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9) break;" if (parenthesized_expression "((this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9)" ( (binary_expression "(this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish == ppOVar9" (field_expression "(this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl._M_finish" (field_expression "(this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                _M_impl" (binary_expression "(this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "(this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "(this->segment_list_).\n                super__Vector_base<gold::Output_segment*,_std" (binary_expression "(this->segment_list_).\n                super__Vector_base<gold" (field_expression "(this->segment_list_).\n                super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000abc63;" goto statement_identifier ;) })) })) comment (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 ") ))) ;) })) (expression_statement "ppOVar9 = ppOVar9 + 1;" (assignment_expression "ppOVar9 = ppOVar9 + 1" identifier = (binary_expression "ppOVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar9)" ( (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar9" (field_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish" (field_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold" (field_expression "(this->segment_list_).\n             super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;)) })) (labeled_statement "Output_file::close(&out,(int)local_54);" statement_identifier : (ERROR ":" :) (expression_statement "close(&out,(int)local_54);" (call_expression "close(&out,(int)local_54)" identifier (argument_list "(&out,(int)local_54)" ( (pointer_expression "&out" & identifier) , (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;)) (return_statement "return;" return ;) (labeled_statement "code_r0x000abbde:\n  ppOVar9 = ppOVar9 + 1;" statement_identifier : (expression_statement "ppOVar9 = ppOVar9 + 1;" (assignment_expression "ppOVar9 = ppOVar9 + 1" identifier = (binary_expression "ppOVar9 + 1" identifier + number_literal)) ;)) (expression_statement "local_54 = puVar8;" (assignment_expression "local_54 = puVar8" identifier = identifier) ;) (expression_statement "local_50 = uVar10;" (assignment_expression "local_50 = uVar10" identifier = identifier) ;) (goto_statement "goto joined_r0x000abb97;" goto statement_identifier ;) })))
(translation_unit "void __regparm2 FUN_000abb30(undefined4 param_1,uint param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  undefined8 uVar9;\n  uint local_54;\n  uint local_50;\n  undefined1 local_34 [8];\n  uint local_2c;\n  int local_28;\n  int local_24;\n  \n  if (*(int *)(DAT_0033f2f0 + 8) == 0) {\nLAB_000abd80:\n                    \n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);\n  }\n  uVar9 = FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8));\n  param_2 = (uint)((ulonglong)uVar9 >> 0x20);\n  if ((int)uVar9 != 1) {\n                    \n    FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);\n  }\n  local_54 = 0;\n  local_50 = 0;\n  piVar6 = *(int **)(param_3 + 0x124);\njoined_r0x000abb97:\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }\n  if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000abd80;\n  FUN_000ebda0(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8));\n  FUN_000ec0c0(local_34,local_54,local_50);\n  piVar6 = *(int **)(param_3 + 0x124);\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\nLAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);\n  }\n  FUN_000ec730(local_34);\n  return;\ncode_r0x000abbde:\n  piVar6 = piVar6 + 1;\n  local_54 = uVar5;\n  local_50 = param_2;\n  goto joined_r0x000abb97;\n}\n\n" (function_definition "void __regparm2 FUN_000abb30(undefined4 param_1,uint param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  undefined8 uVar9;\n  uint local_54;\n  uint local_50;\n  undefined1 local_34 [8];\n  uint local_2c;\n  int local_28;\n  int local_24;\n  \n  if (*(int *)(DAT_0033f2f0 + 8) == 0) {\nLAB_000abd80:\n                    \n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);\n  }\n  uVar9 = FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8));\n  param_2 = (uint)((ulonglong)uVar9 >> 0x20);\n  if ((int)uVar9 != 1) {\n                    \n    FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);\n  }\n  local_54 = 0;\n  local_50 = 0;\n  piVar6 = *(int **)(param_3 + 0x124);\njoined_r0x000abb97:\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }\n  if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000abd80;\n  FUN_000ebda0(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8));\n  FUN_000ec0c0(local_34,local_54,local_50);\n  piVar6 = *(int **)(param_3 + 0x124);\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\nLAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);\n  }\n  FUN_000ec730(local_34);\n  return;\ncode_r0x000abbde:\n  piVar6 = piVar6 + 1;\n  local_54 = uVar5;\n  local_50 = param_2;\n  goto joined_r0x000abb97;\n}" primitive_type (ERROR "__regparm2" identifier) (function_declarator "FUN_000abb30(undefined4 param_1,uint param_2,int param_3,int param_4)" identifier (parameter_list "(undefined4 param_1,uint param_2,int param_3,int param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  undefined8 uVar9;\n  uint local_54;\n  uint local_50;\n  undefined1 local_34 [8];\n  uint local_2c;\n  int local_28;\n  int local_24;\n  \n  if (*(int *)(DAT_0033f2f0 + 8) == 0) {\nLAB_000abd80:\n                    \n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);\n  }\n  uVar9 = FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8));\n  param_2 = (uint)((ulonglong)uVar9 >> 0x20);\n  if ((int)uVar9 != 1) {\n                    \n    FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);\n  }\n  local_54 = 0;\n  local_50 = 0;\n  piVar6 = *(int **)(param_3 + 0x124);\njoined_r0x000abb97:\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }\n  if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000abd80;\n  FUN_000ebda0(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8));\n  FUN_000ec0c0(local_34,local_54,local_50);\n  piVar6 = *(int **)(param_3 + 0x124);\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\nLAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);\n  }\n  FUN_000ec730(local_34);\n  return;\ncode_r0x000abbde:\n  piVar6 = piVar6 + 1;\n  local_54 = uVar5;\n  local_50 = param_2;\n  goto joined_r0x000abb97;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "undefined1 local_34 [8];" type_identifier (array_declarator "local_34 [8]" identifier [ number_literal ]) ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (if_statement "if (*(int *)(DAT_0033f2f0 + 8) == 0) {\nLAB_000abd80:\n                    \n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);\n  }" if (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) == 0)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 8) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000abd80:\n                    \n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);\n  }" { (labeled_statement "LAB_000abd80:\n                    \n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);" statement_identifier : (expression_statement "FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",param_2)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;)) })) (expression_statement "uVar9 = FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8));" (assignment_expression "uVar9 = FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8))" identifier = (call_expression "FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8))" identifier (argument_list "(*(int *)(DAT_0033f2f0 + 8))" ( (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "param_2 = (uint)((ulonglong)uVar9 >> 0x20);" (assignment_expression "param_2 = (uint)((ulonglong)uVar9 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar9 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((int)uVar9 != 1) {\n                    \n    FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);\n  }" if (parenthesized_expression "((int)uVar9 != 1)" ( (binary_expression "(int)uVar9 != 1" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n                    \n    FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);\n  }" { (expression_statement "FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);" (call_expression "FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9)" identifier (argument_list "("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9)" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""write_binary"" " string_content ") , (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "piVar6 = *(int **)(param_3 + 0x124);" (assignment_expression "piVar6 = *(int **)(param_3 + 0x124)" identifier = (pointer_expression "*(int **)(param_3 + 0x124)" * (cast_expression "(int **)(param_3 + 0x124)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x124)" ( (binary_expression "param_3 + 0x124" identifier + number_literal) ))))) ;) (labeled_statement "joined_r0x000abb97:\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (piVar6 != *(int **)(param_3 + 0x128)) {\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }" if (parenthesized_expression "(piVar6 != *(int **)(param_3 + 0x128))" ( (binary_expression "piVar6 != *(int **)(param_3 + 0x128)" identifier != (pointer_expression "*(int **)(param_3 + 0x128)" * (cast_expression "(int **)(param_3 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x128)" ( (binary_expression "param_3 + 0x128" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }" { (do_statement "do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );" do (compound_statement "{\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    }" { (expression_statement "iVar1 = *piVar6;" (assignment_expression "iVar1 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (if_statement "if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar1 + 0x194) == 1)" ( (binary_expression "*(int *)(iVar1 + 0x194) == 1" (pointer_expression "*(int *)(iVar1 + 0x194)" * (cast_expression "(int *)(iVar1 + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x194)" ( (binary_expression "iVar1 + 0x194" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }" { (expression_statement "uVar2 = *(uint *)(iVar1 + 0x18c);" (assignment_expression "uVar2 = *(uint *)(iVar1 + 0x18c)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x18c)" * (cast_expression "(uint *)(iVar1 + 0x18c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18c)" ( (binary_expression "iVar1 + 0x18c" identifier + number_literal) ))))) ;) (expression_statement "param_2 = *(uint *)(iVar1 + 400);" (assignment_expression "param_2 = *(uint *)(iVar1 + 400)" identifier = (pointer_expression "*(uint *)(iVar1 + 400)" * (cast_expression "(uint *)(iVar1 + 400)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 400)" ( (binary_expression "iVar1 + 400" identifier + number_literal) ))))) ;) (if_statement "if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }" if (parenthesized_expression "((int)-param_2 < (int)(uint)(uVar2 != 0))" ( (binary_expression "(int)-param_2 < (int)(uint)(uVar2 != 0)" (cast_expression "(int)-param_2" ( (type_descriptor "int" primitive_type) ) (unary_expression "-param_2" - identifier)) < (cast_expression "(int)(uint)(uVar2 != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(uVar2 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) ))))) )) (compound_statement "{\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }" { (expression_statement "uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);" (assignment_expression "uVar5 = uVar2 + *(uint *)(iVar1 + 0x164)" identifier = (binary_expression "uVar2 + *(uint *)(iVar1 + 0x164)" identifier + (pointer_expression "*(uint *)(iVar1 + 0x164)" * (cast_expression "(uint *)(iVar1 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x164)" ( (binary_expression "iVar1 + 0x164" identifier + number_literal) )))))) ;) (expression_statement "param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;" (assignment_expression "param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))" identifier = (binary_expression "param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))" (binary_expression "param_2 + *(int *)(iVar1 + 0x168)" identifier + (pointer_expression "*(int *)(iVar1 + 0x168)" * (cast_expression "(int *)(iVar1 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x168)" ( (binary_expression "iVar1 + 0x168" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar2,*(uint *)(iVar1 + 0x164))" identifier (argument_list "(uVar2,*(uint *)(iVar1 + 0x164))" ( identifier , (pointer_expression "*(uint *)(iVar1 + 0x164)" * (cast_expression "(uint *)(iVar1 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x164)" ( (binary_expression "iVar1 + 0x164" identifier + number_literal) )))) )))))) ;) (if_statement "if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;" if (parenthesized_expression "(local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))" ( (binary_expression "local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5)" (binary_expression "local_50 < param_2" identifier < identifier) || (binary_expression "local_50 - param_2 < (uint)(local_54 < uVar5)" (binary_expression "local_50 - param_2" identifier - identifier) < (call_expression "(uint)(local_54 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < uVar5)" ( (binary_expression "local_54 < uVar5" identifier < identifier) ))))) )) (goto_statement "goto code_r0x000abbde;" goto statement_identifier ;)) })) })) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (if_statement "if (*(int **)(param_3 + 0x128) == piVar6) break;" if (parenthesized_expression "(*(int **)(param_3 + 0x128) == piVar6)" ( (binary_expression "*(int **)(param_3 + 0x128) == piVar6" (pointer_expression "*(int **)(param_3 + 0x128)" * (cast_expression "(int **)(param_3 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x128)" ( (binary_expression "param_3 + 0x128" identifier + number_literal) )))) == identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (if_statement "if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000abd80;" if (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) == 0)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 8) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000abd80;" goto statement_identifier ;)) (expression_statement "FUN_000ebda0(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8));" (call_expression "FUN_000ebda0(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8))" identifier (argument_list "(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8))" ( identifier , (pointer_expression "*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8)" * (cast_expression "(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) + 0x27a8)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 8) + 0x27a8" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) )))) + number_literal) )))) ))) ;) (expression_statement "FUN_000ec0c0(local_34,local_54,local_50);" (call_expression "FUN_000ec0c0(local_34,local_54,local_50)" identifier (argument_list "(local_34,local_54,local_50)" ( identifier , identifier , identifier ))) ;) (expression_statement "piVar6 = *(int **)(param_3 + 0x124);" (assignment_expression "piVar6 = *(int **)(param_3 + 0x124)" identifier = (pointer_expression "*(int **)(param_3 + 0x124)" * (cast_expression "(int **)(param_3 + 0x124)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x124)" ( (binary_expression "param_3 + 0x124" identifier + number_literal) ))))) ;) (if_statement "if (piVar6 != *(int **)(param_3 + 0x128)) {\nLAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);\n  }" if (parenthesized_expression "(piVar6 != *(int **)(param_3 + 0x128))" ( (binary_expression "piVar6 != *(int **)(param_3 + 0x128)" identifier != (pointer_expression "*(int **)(param_3 + 0x128)" * (cast_expression "(int **)(param_3 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x128)" ( (binary_expression "param_3 + 0x128" identifier + number_literal) ))))) )) (compound_statement "{\nLAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);\n  }" { (labeled_statement "LAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);" statement_identifier : (do_statement "do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);" do (compound_statement "{\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    }" { (expression_statement "iVar1 = *piVar6;" (assignment_expression "iVar1 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (if_statement "if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }" if (parenthesized_expression "((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0)))" ( (binary_expression "(*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))" (parenthesized_expression "(*(int *)(iVar1 + 0x194) == 1)" ( (binary_expression "*(int *)(iVar1 + 0x194) == 1" (pointer_expression "*(int *)(iVar1 + 0x194)" * (cast_expression "(int *)(iVar1 + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x194)" ( (binary_expression "iVar1 + 0x194" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))" ( (comma_expression "uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0)" (assignment_expression "uVar2 = *(uint *)(iVar1 + 0x18c)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x18c)" * (cast_expression "(uint *)(iVar1 + 0x18c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18c)" ( (binary_expression "iVar1 + 0x18c" identifier + number_literal) ))))) , (binary_expression "-*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0)" (unary_expression "-*(int *)(iVar1 + 400)" - (pointer_expression "*(int *)(iVar1 + 400)" * (cast_expression "(int *)(iVar1 + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 400)" ( (binary_expression "iVar1 + 400" identifier + number_literal) ))))) < (cast_expression "(int)(uint)(uVar2 != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(uVar2 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )))))) ))) )) (compound_statement "{\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }" { (expression_statement "uVar5 = *(uint *)(iVar1 + 0x184);" (assignment_expression "uVar5 = *(uint *)(iVar1 + 0x184)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x184)" * (cast_expression "(uint *)(iVar1 + 0x184)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x184)" ( (binary_expression "iVar1 + 0x184" identifier + number_literal) ))))) ;) (if_statement "if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }" if (parenthesized_expression "((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0))" ( (binary_expression "(-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)" (parenthesized_expression "(-1 < *(int *)(iVar1 + 0x188))" ( (binary_expression "-1 < *(int *)(iVar1 + 0x188)" number_literal < (pointer_expression "*(int *)(iVar1 + 0x188)" * (cast_expression "(int *)(iVar1 + 0x188)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x188)" ( (binary_expression "iVar1 + 0x188" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)" ( (comma_expression "iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0" (assignment_expression "iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5)" identifier = (binary_expression "*(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5)" (pointer_expression "*(int *)(iVar1 + 0x188)" * (cast_expression "(int *)(iVar1 + 0x188)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x188)" ( (binary_expression "iVar1 + 0x188" identifier + number_literal) )))) + (cast_expression "(uint)CARRY4(uVar2,uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar2,uVar5)" identifier (argument_list "(uVar2,uVar5)" ( identifier , identifier )))))) , (comma_expression "uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0" (assignment_expression "uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5)" identifier = (call_expression "(uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(param_4 + 8) < uVar2 + uVar5)" ( (binary_expression "*(uint *)(param_4 + 8) < uVar2 + uVar5" (pointer_expression "*(uint *)(param_4 + 8)" * (cast_expression "(uint *)(param_4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) )))) < (binary_expression "uVar2 + uVar5" identifier + identifier)) )))) , (comma_expression "iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0" (assignment_expression "iVar7 = *(int *)(param_4 + 0xc) - iVar8" identifier = (binary_expression "*(int *)(param_4 + 0xc) - iVar8" (pointer_expression "*(int *)(param_4 + 0xc)" * (cast_expression "(int *)(param_4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) )))) - identifier)) , (binary_expression "(SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0" (parenthesized_expression "(SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3))" ( (binary_expression "SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)" (call_expression "SBORROW4(*(int *)(param_4 + 0xc),iVar8)" identifier (argument_list "(*(int *)(param_4 + 0xc),iVar8)" ( (pointer_expression "*(int *)(param_4 + 0xc)" * (cast_expression "(int *)(param_4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) )))) , identifier ))) != (call_expression "SBORROW4(iVar7,uVar3)" identifier (argument_list "(iVar7,uVar3)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar7 - uVar3) < 0" (cast_expression "(int)(iVar7 - uVar3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar7 - uVar3)" ( (binary_expression "iVar7 - uVar3" identifier - identifier) ))) < number_literal))))) ))) )) (compound_statement "{\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }" { (expression_statement "uVar3 = *(uint *)(iVar1 + 0x164);" (assignment_expression "uVar3 = *(uint *)(iVar1 + 0x164)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x164)" * (cast_expression "(uint *)(iVar1 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x164)" ( (binary_expression "iVar1 + 0x164" identifier + number_literal) ))))) ;) (if_statement "if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }" if (parenthesized_expression "((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0))" ( (binary_expression "(-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)" (parenthesized_expression "(-1 < *(int *)(iVar1 + 0x168))" ( (binary_expression "-1 < *(int *)(iVar1 + 0x168)" number_literal < (pointer_expression "*(int *)(iVar1 + 0x168)" * (cast_expression "(int *)(iVar1 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x168)" ( (binary_expression "iVar1 + 0x168" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)" ( (comma_expression "iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0" (assignment_expression "iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2)" identifier = (binary_expression "*(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2)" (pointer_expression "*(int *)(iVar1 + 0x168)" * (cast_expression "(int *)(iVar1 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x168)" ( (binary_expression "iVar1 + 0x168" identifier + number_literal) )))) + (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 "uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0" (assignment_expression "uVar4 = (uint)(local_2c < uVar3 + uVar2)" identifier = (call_expression "(uint)(local_2c < uVar3 + uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_2c < uVar3 + uVar2)" ( (binary_expression "local_2c < uVar3 + uVar2" identifier < (binary_expression "uVar3 + uVar2" identifier + identifier)) )))) , (comma_expression "iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0" (assignment_expression "iVar1 = local_28 - iVar7" identifier = (binary_expression "local_28 - iVar7" identifier - identifier)) , (binary_expression "(SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0" (parenthesized_expression "(SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4))" ( (binary_expression "SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)" (call_expression "SBORROW4(local_28,iVar7)" identifier (argument_list "(local_28,iVar7)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar1,uVar4)" identifier (argument_list "(iVar1,uVar4)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar1 - uVar4) < 0" (cast_expression "(int)(iVar1 - uVar4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar1 - uVar4)" ( (binary_expression "iVar1 - uVar4" identifier - identifier) ))) < number_literal))))) ))) )) (compound_statement "{\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }" { (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);" (call_expression "memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2)" identifier (argument_list "((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2)" ( (cast_expression "(void *)(uVar3 + local_24)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 + local_24)" ( (binary_expression "uVar3 + local_24" identifier + identifier) ))) , (cast_expression "(void *)(*(int *)(param_4 + 0x10) + uVar5)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_4 + 0x10) + uVar5)" ( (binary_expression "*(int *)(param_4 + 0x10) + uVar5" (pointer_expression "*(int *)(param_4 + 0x10)" * (cast_expression "(int *)(param_4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) + identifier) ))) , identifier ))) ;) (if_statement "if (*(int **)(param_3 + 0x128) == piVar6) break;" if (parenthesized_expression "(*(int **)(param_3 + 0x128) == piVar6)" ( (binary_expression "*(int **)(param_3 + 0x128) == piVar6" (pointer_expression "*(int **)(param_3 + 0x128)" * (cast_expression "(int **)(param_3 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x128)" ( (binary_expression "param_3 + 0x128" identifier + number_literal) )))) == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000abc63;" goto statement_identifier ;) })) })) (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 ") ))) ;) })) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_3 + 0x128) != piVar6)" ( (binary_expression "*(int **)(param_3 + 0x128) != piVar6" (pointer_expression "*(int **)(param_3 + 0x128)" * (cast_expression "(int **)(param_3 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x128)" ( (binary_expression "param_3 + 0x128" identifier + number_literal) )))) != identifier) )) ;)) })) (expression_statement "FUN_000ec730(local_34);" (call_expression "FUN_000ec730(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) (return_statement "return;" return ;) (labeled_statement "code_r0x000abbde:\n  piVar6 = piVar6 + 1;" statement_identifier : (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;)) (expression_statement "local_54 = uVar5;" (assignment_expression "local_54 = uVar5" identifier = identifier) ;) (expression_statement "local_50 = param_2;" (assignment_expression "local_50 = param_2" identifier = identifier) ;) (goto_statement "goto joined_r0x000abb97;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (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 = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (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 (cast_expression ( (type_descriptor TYPE) ) (unary_expression - IDENT)) < (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression 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 = (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) )))) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (goto_statement goto statement_identifier ;)) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * 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) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (unary_expression - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))))) ))) )) (compound_statement { (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 LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (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 , 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 = (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 LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (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 , IDENT )))))) , (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (binary_expression IDENT + IDENT)) )))) , (comma_expression (assignment_expression IDENT = (binary_expression IDENT - IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , 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 + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) ))) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (break_statement break ;)) (goto_statement goto 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 + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;)) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "void __regparm2 FUN_000abb30(undefined4 param_1,uint param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  undefined8 uVar9;\n  uint local_54;\n  uint local_50;\n  undefined1 local_34 [8];\n  uint local_2c;\n  int local_28;\n  int local_24;\n  \n  if (*(int *)(DAT_0033f2f0 + 8) == 0) {\nLAB_000abd80:\n                    \n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);\n  }\n  uVar9 = FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8));\n  param_2 = (uint)((ulonglong)uVar9 >> 0x20);\n  if ((int)uVar9 != 1) {\n                    \n    FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);\n  }\n  local_54 = 0;\n  local_50 = 0;\n  piVar6 = *(int **)(param_3 + 0x124);\njoined_r0x000abb97:\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }\n  if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000abd80;\n  FUN_000ebda0(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8));\n  FUN_000ec0c0(local_34,local_54,local_50);\n  piVar6 = *(int **)(param_3 + 0x124);\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\nLAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);\n  }\n  FUN_000ec730(local_34);\n  return;\ncode_r0x000abbde:\n  piVar6 = piVar6 + 1;\n  local_54 = uVar5;\n  local_50 = param_2;\n  goto joined_r0x000abb97;\n}" (primitive_type "void") (ERROR "__regparm2" (identifier "__regparm2")) (function_declarator "FUN_000abb30(undefined4 param_1,uint param_2,int param_3,int param_4)" (identifier "FUN_000abb30") (parameter_list "(undefined4 param_1,uint param_2,int param_3,int param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  undefined8 uVar9;\n  uint local_54;\n  uint local_50;\n  undefined1 local_34 [8];\n  uint local_2c;\n  int local_28;\n  int local_24;\n  \n  if (*(int *)(DAT_0033f2f0 + 8) == 0) {\nLAB_000abd80:\n                    \n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);\n  }\n  uVar9 = FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8));\n  param_2 = (uint)((ulonglong)uVar9 >> 0x20);\n  if ((int)uVar9 != 1) {\n                    \n    FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);\n  }\n  local_54 = 0;\n  local_50 = 0;\n  piVar6 = *(int **)(param_3 + 0x124);\njoined_r0x000abb97:\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }\n  if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000abd80;\n  FUN_000ebda0(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8));\n  FUN_000ec0c0(local_34,local_54,local_50);\n  piVar6 = *(int **)(param_3 + 0x124);\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\nLAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);\n  }\n  FUN_000ec730(local_34);\n  return;\ncode_r0x000abbde:\n  piVar6 = piVar6 + 1;\n  local_54 = uVar5;\n  local_50 = param_2;\n  goto joined_r0x000abb97;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined8 uVar9;" (type_identifier "undefined8") (identifier "uVar9") (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "undefined1 local_34 [8];" (type_identifier "undefined1") (array_declarator "local_34 [8]" (identifier "local_34") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "uint local_2c;" (type_identifier "uint") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (if_statement "if (*(int *)(DAT_0033f2f0 + 8) == 0) {\nLAB_000abd80:\n                    \n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);\n  }" (if "if") (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_0033f2f0 + 8) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000abd80:\n                    \n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);\n  }" ({ "{") (labeled_statement "LAB_000abd80:\n                    \n    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);" (statement_identifier "LAB_000abd80") (: ":") (expression_statement "FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2)" (identifier "FUN_0008b620") (argument_list "("../../gold/parameters.h",0x5c,"options",param_2)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";"))) (} "}"))) (expression_statement "uVar9 = FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8));" (assignment_expression "uVar9 = FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8))" (identifier "uVar9") (= "=") (call_expression "FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8))" (identifier "FUN_000d81d0") (argument_list "(*(int *)(DAT_0033f2f0 + 8))" (( "(") (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "param_2 = (uint)((ulonglong)uVar9 >> 0x20);" (assignment_expression "param_2 = (uint)((ulonglong)uVar9 >> 0x20)" (identifier "param_2") (= "=") (call_expression "(uint)((ulonglong)uVar9 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar9 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar9")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if ((int)uVar9 != 1) {\n                    \n    FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);\n  }" (if "if") (parenthesized_expression "((int)uVar9 != 1)" (( "(") (binary_expression "(int)uVar9 != 1" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                    \n    FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);\n  }" ({ "{") (expression_statement "FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);" (call_expression "FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9)" (identifier "FUN_0008b620") (argument_list "("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9)" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0x1714") (, ",") (string_literal ""write_binary"" (" """) (string_content "write_binary") (" """)) (, ",") (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) () ")"))) (; ";")) (} "}"))) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6 = *(int **)(param_3 + 0x124);" (assignment_expression "piVar6 = *(int **)(param_3 + 0x124)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(param_3 + 0x124)" (* "*") (cast_expression "(int **)(param_3 + 0x124)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x124)" (( "(") (binary_expression "param_3 + 0x124" (identifier "param_3") (+ "+") (number_literal "0x124")) () ")"))))) (; ";")) (labeled_statement "joined_r0x000abb97:\n  if (piVar6 != *(int **)(param_3 + 0x128)) {\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }" (statement_identifier "joined_r0x000abb97") (: ":") (if_statement "if (piVar6 != *(int **)(param_3 + 0x128)) {\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(piVar6 != *(int **)(param_3 + 0x128))" (( "(") (binary_expression "piVar6 != *(int **)(param_3 + 0x128)" (identifier "piVar6") (!= "!=") (pointer_expression "*(int **)(param_3 + 0x128)" (* "*") (cast_expression "(int **)(param_3 + 0x128)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x128)" (( "(") (binary_expression "param_3 + 0x128" (identifier "param_3") (+ "+") (number_literal "0x128")) () ")"))))) () ")")) (compound_statement "{\n    do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );\n  }" ({ "{") (do_statement "do {\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    } while( true );" (do "do") (compound_statement "{\n      iVar1 = *piVar6;\n      if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }\n      piVar6 = piVar6 + 1;\n      if (*(int **)(param_3 + 0x128) == piVar6) break;\n    }" ({ "{") (expression_statement "iVar1 = *piVar6;" (assignment_expression "iVar1 = *piVar6" (identifier "iVar1") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (if_statement "if (*(int *)(iVar1 + 0x194) == 1) {\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x194) == 1)" (( "(") (binary_expression "*(int *)(iVar1 + 0x194) == 1" (pointer_expression "*(int *)(iVar1 + 0x194)" (* "*") (cast_expression "(int *)(iVar1 + 0x194)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x194)" (( "(") (binary_expression "iVar1 + 0x194" (identifier "iVar1") (+ "+") (number_literal "0x194")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        uVar2 = *(uint *)(iVar1 + 0x18c);\n        param_2 = *(uint *)(iVar1 + 400);\n        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }\n      }" ({ "{") (expression_statement "uVar2 = *(uint *)(iVar1 + 0x18c);" (assignment_expression "uVar2 = *(uint *)(iVar1 + 0x18c)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(iVar1 + 0x18c)" (* "*") (cast_expression "(uint *)(iVar1 + 0x18c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x18c)" (( "(") (binary_expression "iVar1 + 0x18c" (identifier "iVar1") (+ "+") (number_literal "0x18c")) () ")"))))) (; ";")) (expression_statement "param_2 = *(uint *)(iVar1 + 400);" (assignment_expression "param_2 = *(uint *)(iVar1 + 400)" (identifier "param_2") (= "=") (pointer_expression "*(uint *)(iVar1 + 400)" (* "*") (cast_expression "(uint *)(iVar1 + 400)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 400)" (( "(") (binary_expression "iVar1 + 400" (identifier "iVar1") (+ "+") (number_literal "400")) () ")"))))) (; ";")) (if_statement "if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }" (if "if") (parenthesized_expression "((int)-param_2 < (int)(uint)(uVar2 != 0))" (( "(") (binary_expression "(int)-param_2 < (int)(uint)(uVar2 != 0)" (cast_expression "(int)-param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (unary_expression "-param_2" (- "-") (identifier "param_2"))) (< "<") (cast_expression "(int)(uint)(uVar2 != 0)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "(uint)(uVar2 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")"))))) () ")")) (compound_statement "{\n          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);\n          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;\n          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;\n        }" ({ "{") (expression_statement "uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);" (assignment_expression "uVar5 = uVar2 + *(uint *)(iVar1 + 0x164)" (identifier "uVar5") (= "=") (binary_expression "uVar2 + *(uint *)(iVar1 + 0x164)" (identifier "uVar2") (+ "+") (pointer_expression "*(uint *)(iVar1 + 0x164)" (* "*") (cast_expression "(uint *)(iVar1 + 0x164)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x164)" (( "(") (binary_expression "iVar1 + 0x164" (identifier "iVar1") (+ "+") (number_literal "0x164")) () ")")))))) (; ";")) (expression_statement "param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))\n          ;" (assignment_expression "param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))" (identifier "param_2") (= "=") (binary_expression "param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))" (binary_expression "param_2 + *(int *)(iVar1 + 0x168)" (identifier "param_2") (+ "+") (pointer_expression "*(int *)(iVar1 + 0x168)" (* "*") (cast_expression "(int *)(iVar1 + 0x168)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x168)" (( "(") (binary_expression "iVar1 + 0x168" (identifier "iVar1") (+ "+") (number_literal "0x168")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar2,*(uint *)(iVar1 + 0x164))" (identifier "CARRY4") (argument_list "(uVar2,*(uint *)(iVar1 + 0x164))" (( "(") (identifier "uVar2") (, ",") (pointer_expression "*(uint *)(iVar1 + 0x164)" (* "*") (cast_expression "(uint *)(iVar1 + 0x164)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x164)" (( "(") (binary_expression "iVar1 + 0x164" (identifier "iVar1") (+ "+") (number_literal "0x164")) () ")")))) () ")")))))) (; ";")) (if_statement "if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))\n          goto code_r0x000abbde;" (if "if") (parenthesized_expression "(local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))" (( "(") (binary_expression "local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5)" (binary_expression "local_50 < param_2" (identifier "local_50") (< "<") (identifier "param_2")) (|| "||") (binary_expression "local_50 - param_2 < (uint)(local_54 < uVar5)" (binary_expression "local_50 - param_2" (identifier "local_50") (- "-") (identifier "param_2")) (< "<") (call_expression "(uint)(local_54 < uVar5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_54 < uVar5)" (( "(") (binary_expression "local_54 < uVar5" (identifier "local_54") (< "<") (identifier "uVar5")) () ")"))))) () ")")) (goto_statement "goto code_r0x000abbde;" (goto "goto") (statement_identifier "code_r0x000abbde") (; ";"))) (} "}"))) (} "}"))) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" (identifier "piVar6") (= "=") (binary_expression "piVar6 + 1" (identifier "piVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(int **)(param_3 + 0x128) == piVar6) break;" (if "if") (parenthesized_expression "(*(int **)(param_3 + 0x128) == piVar6)" (( "(") (binary_expression "*(int **)(param_3 + 0x128) == piVar6" (pointer_expression "*(int **)(param_3 + 0x128)" (* "*") (cast_expression "(int **)(param_3 + 0x128)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x128)" (( "(") (binary_expression "param_3 + 0x128" (identifier "param_3") (+ "+") (number_literal "0x128")) () ")")))) (== "==") (identifier "piVar6")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (if_statement "if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000abd80;" (if "if") (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_0033f2f0 + 8) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000abd80;" (goto "goto") (statement_identifier "LAB_000abd80") (; ";"))) (expression_statement "FUN_000ebda0(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8));" (call_expression "FUN_000ebda0(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8))" (identifier "FUN_000ebda0") (argument_list "(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8))" (( "(") (identifier "local_34") (, ",") (pointer_expression "*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) + 0x27a8)" (( "(") (binary_expression "*(int *)(DAT_0033f2f0 + 8) + 0x27a8" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x27a8")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_000ec0c0(local_34,local_54,local_50);" (call_expression "FUN_000ec0c0(local_34,local_54,local_50)" (identifier "FUN_000ec0c0") (argument_list "(local_34,local_54,local_50)" (( "(") (identifier "local_34") (, ",") (identifier "local_54") (, ",") (identifier "local_50") () ")"))) (; ";")) (expression_statement "piVar6 = *(int **)(param_3 + 0x124);" (assignment_expression "piVar6 = *(int **)(param_3 + 0x124)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(param_3 + 0x124)" (* "*") (cast_expression "(int **)(param_3 + 0x124)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x124)" (( "(") (binary_expression "param_3 + 0x124" (identifier "param_3") (+ "+") (number_literal "0x124")) () ")"))))) (; ";")) (if_statement "if (piVar6 != *(int **)(param_3 + 0x128)) {\nLAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);\n  }" (if "if") (parenthesized_expression "(piVar6 != *(int **)(param_3 + 0x128))" (( "(") (binary_expression "piVar6 != *(int **)(param_3 + 0x128)" (identifier "piVar6") (!= "!=") (pointer_expression "*(int **)(param_3 + 0x128)" (* "*") (cast_expression "(int **)(param_3 + 0x128)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x128)" (( "(") (binary_expression "param_3 + 0x128" (identifier "param_3") (+ "+") (number_literal "0x128")) () ")"))))) () ")")) (compound_statement "{\nLAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);\n  }" ({ "{") (labeled_statement "LAB_000abc63:\n    do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);" (statement_identifier "LAB_000abc63") (: ":") (do_statement "do {\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    } while (*(int **)(param_3 + 0x128) != piVar6);" (do "do") (compound_statement "{\n      iVar1 = *piVar6;\n      if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }\n      piVar6 = piVar6 + 1;\n    }" ({ "{") (expression_statement "iVar1 = *piVar6;" (assignment_expression "iVar1 = *piVar6" (identifier "iVar1") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (if_statement "if ((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }" (if "if") (parenthesized_expression "((*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0)))" (( "(") (binary_expression "(*(int *)(iVar1 + 0x194) == 1) &&\n         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))" (parenthesized_expression "(*(int *)(iVar1 + 0x194) == 1)" (( "(") (binary_expression "*(int *)(iVar1 + 0x194) == 1" (pointer_expression "*(int *)(iVar1 + 0x194)" (* "*") (cast_expression "(int *)(iVar1 + 0x194)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x194)" (( "(") (binary_expression "iVar1 + 0x194" (identifier "iVar1") (+ "+") (number_literal "0x194")) () ")")))) (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))" (( "(") (comma_expression "uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0)" (assignment_expression "uVar2 = *(uint *)(iVar1 + 0x18c)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(iVar1 + 0x18c)" (* "*") (cast_expression "(uint *)(iVar1 + 0x18c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x18c)" (( "(") (binary_expression "iVar1 + 0x18c" (identifier "iVar1") (+ "+") (number_literal "0x18c")) () ")"))))) (, ",") (binary_expression "-*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0)" (unary_expression "-*(int *)(iVar1 + 400)" (- "-") (pointer_expression "*(int *)(iVar1 + 400)" (* "*") (cast_expression "(int *)(iVar1 + 400)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 400)" (( "(") (binary_expression "iVar1 + 400" (identifier "iVar1") (+ "+") (number_literal "400")) () ")"))))) (< "<") (cast_expression "(int)(uint)(uVar2 != 0)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "(uint)(uVar2 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n        uVar5 = *(uint *)(iVar1 + 0x184);\n        if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }\n                    \n        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");\n      }" ({ "{") (expression_statement "uVar5 = *(uint *)(iVar1 + 0x184);" (assignment_expression "uVar5 = *(uint *)(iVar1 + 0x184)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(iVar1 + 0x184)" (* "*") (cast_expression "(uint *)(iVar1 + 0x184)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x184)" (( "(") (binary_expression "iVar1 + 0x184" (identifier "iVar1") (+ "+") (number_literal "0x184")) () ")"))))) (; ";")) (if_statement "if ((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)) {\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }" (if "if") (parenthesized_expression "((-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0))" (( "(") (binary_expression "(-1 < *(int *)(iVar1 + 0x188)) &&\n           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)" (parenthesized_expression "(-1 < *(int *)(iVar1 + 0x188))" (( "(") (binary_expression "-1 < *(int *)(iVar1 + 0x188)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(iVar1 + 0x188)" (* "*") (cast_expression "(int *)(iVar1 + 0x188)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x188)" (( "(") (binary_expression "iVar1 + 0x188" (identifier "iVar1") (+ "+") (number_literal "0x188")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0)" (( "(") (comma_expression "iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),\n           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0" (assignment_expression "iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5)" (identifier "iVar8") (= "=") (binary_expression "*(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5)" (pointer_expression "*(int *)(iVar1 + 0x188)" (* "*") (cast_expression "(int *)(iVar1 + 0x188)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x188)" (( "(") (binary_expression "iVar1 + 0x188" (identifier "iVar1") (+ "+") (number_literal "0x188")) () ")")))) (+ "+") (cast_expression "(uint)CARRY4(uVar2,uVar5)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar2,uVar5)" (identifier "CARRY4") (argument_list "(uVar2,uVar5)" (( "(") (identifier "uVar2") (, ",") (identifier "uVar5") () ")")))))) (, ",") (comma_expression "uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),\n           iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0" (assignment_expression "uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5)" (identifier "uVar3") (= "=") (call_expression "(uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(param_4 + 8) < uVar2 + uVar5)" (( "(") (binary_expression "*(uint *)(param_4 + 8) < uVar2 + uVar5" (pointer_expression "*(uint *)(param_4 + 8)" (* "*") (cast_expression "(uint *)(param_4 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 8)" (( "(") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) () ")")))) (< "<") (binary_expression "uVar2 + uVar5" (identifier "uVar2") (+ "+") (identifier "uVar5"))) () ")")))) (, ",") (comma_expression "iVar7 = *(int *)(param_4 + 0xc) - iVar8,\n           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0" (assignment_expression "iVar7 = *(int *)(param_4 + 0xc) - iVar8" (identifier "iVar7") (= "=") (binary_expression "*(int *)(param_4 + 0xc) - iVar8" (pointer_expression "*(int *)(param_4 + 0xc)" (* "*") (cast_expression "(int *)(param_4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xc)" (( "(") (binary_expression "param_4 + 0xc" (identifier "param_4") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (identifier "iVar8"))) (, ",") (binary_expression "(SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==\n           (int)(iVar7 - uVar3) < 0" (parenthesized_expression "(SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3))" (( "(") (binary_expression "SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)" (call_expression "SBORROW4(*(int *)(param_4 + 0xc),iVar8)" (identifier "SBORROW4") (argument_list "(*(int *)(param_4 + 0xc),iVar8)" (( "(") (pointer_expression "*(int *)(param_4 + 0xc)" (* "*") (cast_expression "(int *)(param_4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xc)" (( "(") (binary_expression "param_4 + 0xc" (identifier "param_4") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (identifier "iVar8") () ")"))) (!= "!=") (call_expression "SBORROW4(iVar7,uVar3)" (identifier "SBORROW4") (argument_list "(iVar7,uVar3)" (( "(") (identifier "iVar7") (, ",") (identifier "uVar3") () ")")))) () ")")) (== "==") (binary_expression "(int)(iVar7 - uVar3) < 0" (cast_expression "(int)(iVar7 - uVar3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar7 - uVar3)" (( "(") (binary_expression "iVar7 - uVar3" (identifier "iVar7") (- "-") (identifier "uVar3")) () ")"))) (< "<") (number_literal "0")))))) () ")"))) () ")")) (compound_statement "{\n          uVar3 = *(uint *)(iVar1 + 0x164);\n          if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }\n        }" ({ "{") (expression_statement "uVar3 = *(uint *)(iVar1 + 0x164);" (assignment_expression "uVar3 = *(uint *)(iVar1 + 0x164)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(iVar1 + 0x164)" (* "*") (cast_expression "(uint *)(iVar1 + 0x164)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x164)" (( "(") (binary_expression "iVar1 + 0x164" (identifier "iVar1") (+ "+") (number_literal "0x164")) () ")"))))) (; ";")) (if_statement "if ((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }" (if "if") (parenthesized_expression "((-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0))" (( "(") (binary_expression "(-1 < *(int *)(iVar1 + 0x168)) &&\n             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)" (parenthesized_expression "(-1 < *(int *)(iVar1 + 0x168))" (( "(") (binary_expression "-1 < *(int *)(iVar1 + 0x168)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(iVar1 + 0x168)" (* "*") (cast_expression "(int *)(iVar1 + 0x168)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x168)" (( "(") (binary_expression "iVar1 + 0x168" (identifier "iVar1") (+ "+") (number_literal "0x168")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)" (( "(") (comma_expression "iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),\n             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0" (assignment_expression "iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2)" (identifier "iVar7") (= "=") (binary_expression "*(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2)" (pointer_expression "*(int *)(iVar1 + 0x168)" (* "*") (cast_expression "(int *)(iVar1 + 0x168)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x168)" (( "(") (binary_expression "iVar1 + 0x168" (identifier "iVar1") (+ "+") (number_literal "0x168")) () ")")))) (+ "+") (cast_expression "(uint)CARRY4(uVar3,uVar2)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar3,uVar2)" (identifier "CARRY4") (argument_list "(uVar3,uVar2)" (( "(") (identifier "uVar3") (, ",") (identifier "uVar2") () ")")))))) (, ",") (comma_expression "uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0" (assignment_expression "uVar4 = (uint)(local_2c < uVar3 + uVar2)" (identifier "uVar4") (= "=") (call_expression "(uint)(local_2c < uVar3 + uVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_2c < uVar3 + uVar2)" (( "(") (binary_expression "local_2c < uVar3 + uVar2" (identifier "local_2c") (< "<") (binary_expression "uVar3 + uVar2" (identifier "uVar3") (+ "+") (identifier "uVar2"))) () ")")))) (, ",") (comma_expression "iVar1 = local_28 - iVar7,\n             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0" (assignment_expression "iVar1 = local_28 - iVar7" (identifier "iVar1") (= "=") (binary_expression "local_28 - iVar7" (identifier "local_28") (- "-") (identifier "iVar7"))) (, ",") (binary_expression "(SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0" (parenthesized_expression "(SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4))" (( "(") (binary_expression "SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)" (call_expression "SBORROW4(local_28,iVar7)" (identifier "SBORROW4") (argument_list "(local_28,iVar7)" (( "(") (identifier "local_28") (, ",") (identifier "iVar7") () ")"))) (!= "!=") (call_expression "SBORROW4(iVar1,uVar4)" (identifier "SBORROW4") (argument_list "(iVar1,uVar4)" (( "(") (identifier "iVar1") (, ",") (identifier "uVar4") () ")")))) () ")")) (== "==") (binary_expression "(int)(iVar1 - uVar4) < 0" (cast_expression "(int)(iVar1 - uVar4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar1 - uVar4)" (( "(") (binary_expression "iVar1 - uVar4" (identifier "iVar1") (- "-") (identifier "uVar4")) () ")"))) (< "<") (number_literal "0")))))) () ")"))) () ")")) (compound_statement "{\n            piVar6 = piVar6 + 1;\n            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);\n            if (*(int **)(param_3 + 0x128) == piVar6) break;\n            goto LAB_000abc63;\n          }" ({ "{") (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" (identifier "piVar6") (= "=") (binary_expression "piVar6 + 1" (identifier "piVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);" (call_expression "memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2)" (identifier "memcpy") (argument_list "((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2)" (( "(") (cast_expression "(void *)(uVar3 + local_24)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar3 + local_24)" (( "(") (binary_expression "uVar3 + local_24" (identifier "uVar3") (+ "+") (identifier "local_24")) () ")"))) (, ",") (cast_expression "(void *)(*(int *)(param_4 + 0x10) + uVar5)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_4 + 0x10) + uVar5)" (( "(") (binary_expression "*(int *)(param_4 + 0x10) + uVar5" (pointer_expression "*(int *)(param_4 + 0x10)" (* "*") (cast_expression "(int *)(param_4 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x10)" (( "(") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (identifier "uVar5")) () ")"))) (, ",") (identifier "uVar2") () ")"))) (; ";")) (if_statement "if (*(int **)(param_3 + 0x128) == piVar6) break;" (if "if") (parenthesized_expression "(*(int **)(param_3 + 0x128) == piVar6)" (( "(") (binary_expression "*(int **)(param_3 + 0x128) == piVar6" (pointer_expression "*(int **)(param_3 + 0x128)" (* "*") (cast_expression "(int **)(param_3 + 0x128)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x128)" (( "(") (binary_expression "param_3 + 0x128" (identifier "param_3") (+ "+") (number_literal "0x128")) () ")")))) (== "==") (identifier "piVar6")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_000abc63;" (goto "goto") (statement_identifier "LAB_000abc63") (; ";")) (} "}"))) (} "}"))) (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") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" (identifier "piVar6") (= "=") (binary_expression "piVar6 + 1" (identifier "piVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int **)(param_3 + 0x128) != piVar6)" (( "(") (binary_expression "*(int **)(param_3 + 0x128) != piVar6" (pointer_expression "*(int **)(param_3 + 0x128)" (* "*") (cast_expression "(int **)(param_3 + 0x128)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x128)" (( "(") (binary_expression "param_3 + 0x128" (identifier "param_3") (+ "+") (number_literal "0x128")) () ")")))) (!= "!=") (identifier "piVar6")) () ")")) (; ";"))) (} "}"))) (expression_statement "FUN_000ec730(local_34);" (call_expression "FUN_000ec730(local_34)" (identifier "FUN_000ec730") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (labeled_statement "code_r0x000abbde:\n  piVar6 = piVar6 + 1;" (statement_identifier "code_r0x000abbde") (: ":") (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" (identifier "piVar6") (= "=") (binary_expression "piVar6 + 1" (identifier "piVar6") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "local_54 = uVar5;" (assignment_expression "local_54 = uVar5" (identifier "local_54") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "local_50 = param_2;" (assignment_expression "local_50 = param_2" (identifier "local_50") (= "=") (identifier "param_2")) (; ";")) (goto_statement "goto joined_r0x000abb97;" (goto "goto") (statement_identifier "joined_r0x000abb97") (; ";")) (} "}")))

/* 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 write_binary(Layout * this, Output_file * in) */

void __thiscall var_5::type_1::function_1(type_1 *this,type_2 *in)

{
  type_3 var_9;
  type_4 *pOVar2;
  int var_18;
  type_5 var_21;
  type_5 var_17;
  int var_20;
  type_6 var_3;
  type_7 *var_15;
  type_3 var_8;
  type_5 var_10;
  int var_11;
  type_7 *var_14;
  type_5 var_13;
  type_2 out;
  
  if (parameters->options_ == (type_8 *)0x0) {
LAB_000abd80:
                    /* WARNING: Subroutine does not return */
    var_1("../../gold/parameters.h",0x5c,"options");
  }
  var_3 = type_8::var_2(parameters->options_);
  if (var_3 != var_4) {
                    /* WARNING: Subroutine does not return */
    var_1("../../gold/layout.cc",0x1714,"write_binary");
  }
  var_14 = (type_7 *)0x0;
  var_13 = 0;
  var_8 = (this->segment_list_).
            super__Vector_base<var_5::type_4*,var_6::allocator<var_5::type_4*>var_7>.
            _M_impl._M_start;
  var_9 = (this->segment_list_).
            super__Vector_base<var_5::type_4*,var_6::allocator<var_5::type_4*>var_7>.
            _M_impl._M_finish;
joined_r0x000abb97:
  if (var_8 != var_9) {
    do {
      pOVar2 = *var_8;
      if (pOVar2->type_ == 1) {
        var_10 = (type_5)pOVar2->filesz_;
        var_11 = *(int *)((int)&pOVar2->filesz_ + 4);
        if (-var_11 < (int)(type_5)(var_10 != 0)) {
          var_15 = (type_7 *)(var_10 + (int)pOVar2->paddr_);
          var_10 = var_11 + *(int *)((int)&pOVar2->paddr_ + 4) +
                   (type_5)var_12(var_10,(type_5)pOVar2->paddr_);
          if (var_13 < var_10 || var_13 - var_10 < (type_5)(var_14 < var_15))
          goto code_r0x000abbde;
        }
      }
      var_8 = var_8 + 1;
      if (var_9 == var_8) break;
    } while( true );
  }
  if (parameters->options_ == (type_8 *)0x0) goto LAB_000abd80;
  Output_file::type_2(&out,(parameters->options_->output_).value);
  Output_file::var_16(&out,(char *)var_14,var_13);
  var_8 = (this->segment_list_).
            super__Vector_base<var_5::type_4*,var_6::allocator<var_5::type_4*>var_7>.
            _M_impl._M_start;
  if (var_8 !=
      (this->segment_list_).
      super__Vector_base<var_5::type_4*,var_6::allocator<var_5::type_4*>var_7>._M_impl.
      _M_finish) {
LAB_000abc63:
    do {
      pOVar2 = *var_8;
      if ((pOVar2->type_ == 1) &&
         (var_10 = (type_5)pOVar2->filesz_,
         -*(int *)((int)&pOVar2->filesz_ + 4) < (int)(type_5)(var_10 != 0))) {
        var_11 = *(int *)((int)&pOVar2->offset_ + 4);
        var_17 = (type_5)pOVar2->offset_;
        if ((-1 < var_11) &&
           (var_11 = var_11 + (type_5)var_12(var_10,var_17), var_18 = *(int *)((int)&in->file_size_ + 4)
           , var_21 = (type_5)((type_5)in->file_size_ < var_10 + var_17), var_20 = var_18 - var_11,
           (var_19(var_18,var_11) != var_19(var_20,var_21)) == (int)(var_20 - var_21) < 0)) {
          var_11 = *(int *)((int)&pOVar2->paddr_ + 4);
          var_21 = (type_5)pOVar2->paddr_;
          var_14 = in->base_ + var_17;
          if ((-1 < var_11) &&
             (var_11 = var_11 + (type_5)var_12(var_21,var_10),
             var_17 = (type_5)((type_5)out.file_size_ < var_21 + var_10),
             var_18 = out.file_size_._4_4_ - var_11,
             (var_19(out.file_size_._4_4_,var_11) != var_19(var_18,var_17)) ==
             (int)(var_18 - var_17) < 0)) {
            var_8 = var_8 + 1;
            var_22(out.base_ + var_21,var_14,var_10);
            if ((this->segment_list_).
                super__Vector_base<var_5::type_4*,var_6::allocator<var_5::type_4*>var_7>.
                _M_impl._M_finish == var_8) break;
            goto LAB_000abc63;
          }
        }
                    /* WARNING: Subroutine does not return */
        var_1("../../gold/output.h",0x6f,"get_output_view");
      }
      var_8 = var_8 + 1;
    } while ((this->segment_list_).
             super__Vector_base<var_5::type_4*,var_6::allocator<var_5::type_4*>var_7>.
             _M_impl._M_finish != var_8);
  }
  Output_file::var_23(&out,(int)var_14);
  return;
code_r0x000abbde:
  var_8 = var_8 + 1;
  var_14 = var_15;
  var_13 = var_10;
  goto joined_r0x000abb97;
}


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

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

void __regparm2 MASKED(undefined4 param_1,uint param_2,int param_3,int param_4)

{
  int iVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  int *piVar6;
  int iVar7;
  int iVar8;
  undefined8 uVar9;
  uint local_54;
  uint local_50;
  undefined1 local_34 [8];
  uint local_2c;
  int local_28;
  int local_24;
  
  if (*(int *)(DAT_0033f2f0 + 8) == 0) {
LAB_000abd80:
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/parameters.h",0x5c,"options",param_2);
  }
  uVar9 = FUN_000d81d0(*(int *)(DAT_0033f2f0 + 8));
  param_2 = (uint)((ulonglong)uVar9 >> 0x20);
  if ((int)uVar9 != 1) {
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/layout.cc",0x1714,"write_binary",(int)uVar9);
  }
  local_54 = 0;
  local_50 = 0;
  piVar6 = *(int **)(param_3 + 0x124);
joined_r0x000abb97:
  if (piVar6 != *(int **)(param_3 + 0x128)) {
    do {
      iVar1 = *piVar6;
      if (*(int *)(iVar1 + 0x194) == 1) {
        uVar2 = *(uint *)(iVar1 + 0x18c);
        param_2 = *(uint *)(iVar1 + 400);
        if ((int)-param_2 < (int)(uint)(uVar2 != 0)) {
          uVar5 = uVar2 + *(uint *)(iVar1 + 0x164);
          param_2 = param_2 + *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar2,*(uint *)(iVar1 + 0x164))
          ;
          if (local_50 < param_2 || local_50 - param_2 < (uint)(local_54 < uVar5))
          goto code_r0x000abbde;
        }
      }
      piVar6 = piVar6 + 1;
      if (*(int **)(param_3 + 0x128) == piVar6) break;
    } while( true );
  }
  if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000abd80;
  FUN_000ebda0(local_34,*(undefined4 *)(*(int *)(DAT_0033f2f0 + 8) + 0x27a8));
  FUN_000ec0c0(local_34,local_54,local_50);
  piVar6 = *(int **)(param_3 + 0x124);
  if (piVar6 != *(int **)(param_3 + 0x128)) {
LAB_000abc63:
    do {
      iVar1 = *piVar6;
      if ((*(int *)(iVar1 + 0x194) == 1) &&
         (uVar2 = *(uint *)(iVar1 + 0x18c), -*(int *)(iVar1 + 400) < (int)(uint)(uVar2 != 0))) {
        uVar5 = *(uint *)(iVar1 + 0x184);
        if ((-1 < *(int *)(iVar1 + 0x188)) &&
           (iVar8 = *(int *)(iVar1 + 0x188) + (uint)CARRY4(uVar2,uVar5),
           uVar3 = (uint)(*(uint *)(param_4 + 8) < uVar2 + uVar5),
           iVar7 = *(int *)(param_4 + 0xc) - iVar8,
           (SBORROW4(*(int *)(param_4 + 0xc),iVar8) != SBORROW4(iVar7,uVar3)) ==
           (int)(iVar7 - uVar3) < 0)) {
          uVar3 = *(uint *)(iVar1 + 0x164);
          if ((-1 < *(int *)(iVar1 + 0x168)) &&
             (iVar7 = *(int *)(iVar1 + 0x168) + (uint)CARRY4(uVar3,uVar2),
             uVar4 = (uint)(local_2c < uVar3 + uVar2), iVar1 = local_28 - iVar7,
             (SBORROW4(local_28,iVar7) != SBORROW4(iVar1,uVar4)) == (int)(iVar1 - uVar4) < 0)) {
            piVar6 = piVar6 + 1;
            memcpy((void *)(uVar3 + local_24),(void *)(*(int *)(param_4 + 0x10) + uVar5),uVar2);
            if (*(int **)(param_3 + 0x128) == piVar6) break;
            goto LAB_000abc63;
          }
        }
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/output.h",0x6f,"get_output_view");
      }
      piVar6 = piVar6 + 1;
    } while (*(int **)(param_3 + 0x128) != piVar6);
  }
  FUN_000ec730(local_34);
  return;
code_r0x000abbde:
  piVar6 = piVar6 + 1;
  local_54 = uVar5;
  local_50 = param_2;
  goto joined_r0x000abb97;
}

