
/* WARNING: Type propagation algorithm not settling */
/* DWARF original prototype: void do_write(Output_section_incremental_inputs<32,_true> * this,
   Output_file * of) */

void __thiscall
gold::Output_section_incremental_inputs<32,_true>::do_write
          (Output_section_incremental_inputs<32,_true> *this,Output_file *of)

{
  byte bVar1;
  uint uVar2;
  Incremental_inputs *pIVar3;
  long lVar4;
  long lVar5;
  uchar *puVar6;
  Output_section_incremental_inputs<32,_true> *pOVar7;
  undefined8 uVar8;
  pointer ppIVar9;
  pointer ppIVar10;
  Output_data_space *pOVar11;
  uint uVar12;
  Output_section_incremental_inputs<32,_true> *this_00;
  ulong uVar13;
  uchar *puVar14;
  Stringpool *pSVar15;
  Stringpool *in_RCX;
  Output_data_space *in_RDX;
  uchar *oview;
  Output_file *start;
  bool bVar16;
  
  pIVar3 = this->inputs_;
  bVar1 = (this->super_Output_section_data).super_Output_data.field_0x20;
  pSVar15 = pIVar3->strtab_;
  if ((bVar1 & 4) != 0) {
    lVar4 = (this->super_Output_section_data).super_Output_data.offset_;
    if ((bVar1 & 2) == 0) {
LAB_001a2b06:
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/output.h",0xcf,"data_size");
    }
    lVar5 = (this->super_Output_section_data).super_Output_data.data_size_;
    start = of;
    this_00 = this;
    if ((-1 < lVar4) && (in_RCX = (Stringpool *)of->file_size_, lVar5 + lVar4 <= (long)in_RCX)) {
      in_RDX = pIVar3->symtab_section_;
      puVar6 = of->base_;
      bVar1 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.
              field_0x20;
      oview = puVar6 + lVar4;
      if ((bVar1 & 4) == 0) goto LAB_001a2b1e;
      start = (Output_file *)(ulong)(bVar1 & 2);
      lVar4 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.
              offset_;
      if ((bVar1 & 2) == 0) goto LAB_001a2b06;
      pOVar7 = (Output_section_incremental_inputs<32,_true> *)
               (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data
               .data_size_;
      this_00 = pOVar7;
      if ((-1 < lVar4) &&
         (in_RDX = (Output_data_space *)
                   ((long)&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data +
                   lVar4), (long)in_RDX <= (long)in_RCX)) {
        uVar2 = this->symtab_->output_count_;
        uVar13 = (ulong)uVar2 * 4;
        this_00 = (Output_section_incremental_inputs<32,_true> *)operator_new__(uVar13);
        memset(this_00,0,uVar13);
        if ((pSVar15->key_to_offset_).size_ < pIVar3->command_line_key_) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");
        }
        uVar13 = pIVar3->command_line_key_ - 1;
        uVar8 = *(undefined8 *)
                 ((long)(pSVar15->key_to_offset_).chunks_.
                        super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>
                        ._M_impl._M_start[uVar13 >> 0xd].
                        super__Vector_base<long_int,_std::allocator<long_int>_>._M_impl._M_start +
                 (ulong)((uint)uVar13 & 0x1fff) * 8);
        ppIVar9 = (pIVar3->inputs_).
                  super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>
                  ._M_impl._M_finish;
        ppIVar10 = (pIVar3->inputs_).
                   super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>
                   ._M_impl._M_start;
        oview[0] = '\0';
        oview[1] = '\0';
        oview[2] = '\0';
        oview[3] = '\x02';
        oview[0xc] = '\0';
        oview[0xd] = '\0';
        oview[0xe] = '\0';
        oview[0xf] = '\0';
        uVar12 = (uint)((long)ppIVar9 - (long)ppIVar10 >> 3);
        *(uint *)(oview + 4) =
             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;
        uVar12 = (uint)uVar8;
        *(uint *)(oview + 8) =
             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;
        puVar14 = write_input_files(this,oview,oview + 0x10,pSVar15);
        puVar14 = write_info_blocks(this,oview,puVar14,pSVar15,(uint *)this_00,uVar2);
        if ((long)puVar14 - (long)oview != lVar5) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/incremental.cc",0x59c,"do_write");
        }
        if ((Output_section_incremental_inputs<32,_true> *)((ulong)uVar2 << 2) != pOVar7) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/incremental.cc",0x59f,"do_write");
        }
        in_RCX = pSVar15;
        if (uVar2 != 0) {
          in_RCX = (Stringpool *)(ulong)(uVar2 - 1);
          pSVar15 = (Stringpool *)0x0;
          do {
            uVar2 = *(uint *)((long)&(this_00->super_Output_section_data).super_Output_data.
                                     _vptr_Output_data + (long)pSVar15 * 4);
            *(uint *)(puVar6 + (long)pSVar15 * 4 + lVar4) =
                 uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;
            bVar16 = in_RCX != pSVar15;
            pSVar15 = (Stringpool *)((long)&(pSVar15->string_set_)._M_h._M_buckets + 1);
          } while (bVar16);
        }
        operator_delete__(this_00);
        pOVar11 = pIVar3->got_plt_section_;
        bVar1 = (pOVar11->super_Output_section_data_build).super_Output_section_data.
                super_Output_data.field_0x20;
        if ((bVar1 & 4) == 0) goto LAB_001a2b1e;
        start = (Output_file *)
                (pOVar11->super_Output_section_data_build).super_Output_section_data.
                super_Output_data.offset_;
        if ((bVar1 & 2) == 0) goto LAB_001a2b06;
        in_RDX = (Output_data_space *)
                 (pOVar11->super_Output_section_data_build).super_Output_section_data.
                 super_Output_data.data_size_;
        if ((-1 < (long)start) &&
           ((long)&start->name_ + (long)&in_RDX->super_Output_section_data_build <= of->file_size_))
        {
          write_got_plt(this,of->base_ + (long)&start->name_,(off_t)in_RDX);
          return;
        }
      }
    }
                    /* WARNING: Subroutine does not return */
    Output_file::get_output_view
              ((Output_file *)this_00,(off_t)start,(size_t)in_RDX,(Output_file *)in_RCX);
  }
LAB_001a2b1e:
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/output.h",0xe3,"offset");
}



void FUN_001a2900(long param_1,long param_2)

{
  size_t __n;
  uint uVar1;
  long *plVar2;
  long lVar3;
  long lVar4;
  long lVar5;
  long lVar6;
  long lVar7;
  long lVar8;
  uint uVar9;
  void *__s;
  ulong uVar10;
  undefined8 uVar11;
  long lVar12;
  undefined4 *puVar13;
  bool bVar14;
  
  plVar2 = *(long **)(param_1 + 0x38);
  lVar12 = plVar2[8];
  if ((*(byte *)(param_1 + 0x20) & 4) != 0) {
    lVar3 = *(long *)(param_1 + 0x18);
    if ((*(byte *)(param_1 + 0x20) & 2) == 0) {
LAB_001a2b06:
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/output.h",0xcf,"data_size");
    }
    lVar4 = *(long *)(param_1 + 0x10);
    if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {
      lVar5 = plVar2[0xc];
      lVar6 = *(long *)(param_2 + 0x18);
      puVar13 = (undefined4 *)(lVar3 + lVar6);
      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;
      lVar3 = *(long *)(lVar5 + 0x18);
      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;
      lVar5 = *(long *)(lVar5 + 0x10);
      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {
        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);
        __n = (ulong)uVar1 * 4;
        __s = (void *)thunk_FUN_002d94a0(__n);
        memset(__s,0,__n);
        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");
        }
        uVar10 = plVar2[7] - 1;
        uVar11 = *(undefined8 *)
                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +
                  (ulong)((uint)uVar10 & 0x1fff) * 8);
        lVar7 = plVar2[1];
        lVar8 = *plVar2;
        *puVar13 = 0x2000000;
        puVar13[3] = 0;
        uVar9 = (uint)(lVar7 - lVar8 >> 3);
        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18
        ;
        uVar9 = (uint)uVar11;
        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18
        ;
        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);
        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);
        if (lVar12 - (long)puVar13 != lVar4) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");
        }
        if ((ulong)uVar1 << 2 != lVar5) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");
        }
        if (uVar1 != 0) {
          uVar10 = 0;
          do {
            uVar9 = *(uint *)((long)__s + uVar10 * 4);
            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =
                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
            bVar14 = uVar1 - 1 != uVar10;
            uVar10 = uVar10 + 1;
          } while (bVar14);
        }
        thunk_FUN_002dac70(__s);
        lVar12 = plVar2[0xe];
        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;
        lVar3 = *(long *)(lVar12 + 0x18);
        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;
        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {
          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));
          return;
        }
      }
    }
                    /* WARNING: Subroutine does not return */
    FUN_00182e30();
  }
LAB_001a2b1e:
                    /* WARNING: Subroutine does not return */
  FUN_0017c650("../../gold/output.h",0xe3,"offset");
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x38
MOV R15,qword ptr [RDI + 0x38]
MOVZX EAX,byte ptr [RDI + 0x20]
MOV R11,qword ptr [R15 + 0x40]
TEST AL,0x4
JZ 0x001a2b1e
MOV R13,RDI
MOV RBX,qword ptr [RDI + 0x18]
TEST AL,0x2
JZ 0x001a2b06
MOV RAX,qword ptr [RDI + 0x10]
MOV qword ptr [RSP + 0x8],RAX
TEST RBX,RBX
JS 0x001a2b01
MOV RAX,qword ptr [RSP + 0x8]
MOV RCX,qword ptr [RSI + 0x10]
MOV R14,RSI
MOV qword ptr [RSP + 0x28],R11
ADD RAX,RBX
CMP RAX,RCX
JG 0x001a2b01
MOV RDX,qword ptr [R15 + 0x60]
MOV R12,qword ptr [RSI + 0x18]
MOVZX ESI,byte ptr [RDX + 0x20]
ADD RBX,R12
TEST SIL,0x4
JZ 0x001a2b1e
AND ESI,0x2
MOV RAX,qword ptr [RDX + 0x18]
JZ 0x001a2b06
MOV RDI,qword ptr [RDX + 0x10]
MOV qword ptr [RSP + 0x10],RDI
TEST RAX,RAX
JS 0x001a2b01
LEA RDX,[RDI + RAX*0x1]
CMP RDX,RCX
JG 0x001a2b01
ADD R12,RAX
MOV RAX,qword ptr [R13 + 0x40]
MOV EAX,dword ptr [RAX + 0x18]
LEA RDX,[RAX*0x4]
MOV dword ptr [RSP + 0x4],EAX
MOV RDI,RDX
MOV qword ptr [RSP + 0x20],RDX
MOV qword ptr [RSP + 0x18],RAX
CALL 0x002d9440
MOV RDX,qword ptr [RSP + 0x20]
XOR ESI,ESI
MOV RDI,RAX
MOV RBP,RAX
CALL 0x00147100
MOV R11,qword ptr [RSP + 0x28]
MOV RAX,qword ptr [R15 + 0x38]
CMP RAX,qword ptr [R11 + 0x50]
JA 0x001a2b66
SUB RAX,0x1
MOV RCX,qword ptr [R11 + 0x38]
MOV RSI,RBX
MOV RDI,R13
MOV RDX,RAX
AND EAX,0x1fff
MOV qword ptr [RSP + 0x20],R11
SHR RDX,0xd
LEA RDX,[RDX + RDX*0x2]
LEA RDX,[RCX + RDX*0x8]
MOV RCX,R11
MOV RDX,qword ptr [RDX]
MOV RDX,qword ptr [RDX + RAX*0x8]
MOV RAX,qword ptr [R15 + 0x8]
SUB RAX,qword ptr [R15]
MOV dword ptr [RBX],0x2000000
SAR RAX,0x3
MOV dword ptr [RBX + 0xc],0x0
BSWAP EAX
MOV dword ptr [RBX + 0x4],EAX
MOV EAX,EDX
LEA RDX,[RBX + 0x10]
BSWAP EAX
MOV dword ptr [RBX + 0x8],EAX
CALL 0x001a18e0
MOV R11,qword ptr [RSP + 0x20]
MOV R8,RBP
MOV RSI,RBX
MOV R9D,dword ptr [RSP + 0x4]
MOV RDX,RAX
MOV RDI,R13
MOV RCX,R11
CALL 0x001a1a30
SUB RAX,RBX
CMP RAX,qword ptr [RSP + 0x8]
JNZ 0x001a2b4e
MOV RAX,qword ptr [RSP + 0x18]
SHL RAX,0x2
CMP RAX,qword ptr [RSP + 0x10]
JNZ 0x001a2b36
MOV EAX,dword ptr [RSP + 0x4]
TEST EAX,EAX
JZ 0x001a2ab6
LEA ECX,[RAX + -0x1]
XOR EAX,EAX
JMP 0x001a2aa3
MOV RAX,RDX
MOV EDX,dword ptr [RBP + RAX*0x4]
BSWAP EDX
MOV dword ptr [R12 + RAX*0x4],EDX
LEA RDX,[RAX + 0x1]
CMP RCX,RAX
JNZ 0x001a2aa0
MOV RDI,RBP
CALL 0x002dac40
MOV RAX,qword ptr [R15 + 0x70]
MOVZX EDX,byte ptr [RAX + 0x20]
TEST DL,0x4
JZ 0x001a2b1e
AND EDX,0x2
MOV RSI,qword ptr [RAX + 0x18]
JZ 0x001a2b06
MOV RDX,qword ptr [RAX + 0x10]
TEST RSI,RSI
JS 0x001a2b01
LEA RAX,[RDX + RSI*0x1]
CMP RAX,qword ptr [R14 + 0x10]
JG 0x001a2b01
ADD RSI,qword ptr [R14 + 0x18]
ADD RSP,0x38
MOV RDI,R13
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP 0x001a25e0
CALL 0x00182e30
LEA RDX,[0x375338]
MOV ESI,0xcf
LEA RDI,[0x373454]
CALL 0x0017c650
LEA RDX,[0x375342]
MOV ESI,0xe3
LEA RDI,[0x373454]
CALL 0x0017c650
LEA RDX,[0x3752a8]
MOV ESI,0x59f
LEA RDI,[0x373468]
CALL 0x0017c650
LEA RDX,[0x3752a8]
MOV ESI,0x59c
LEA RDI,[0x373468]
CALL 0x0017c650
LEA RDX,[0x3754e0]
MOV ESI,0x108
LEA RDI,[0x36b55a]
CALL 0x0017c650
(translation_unit "void FUN_001a2900(long param_1,long param_2)\n\n{\n  size_t __n;\n  uint uVar1;\n  long *plVar2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  uint uVar9;\n  void *__s;\n  ulong uVar10;\n  undefined8 uVar11;\n  long lVar12;\n  undefined4 *puVar13;\n  bool bVar14;\n  \n  plVar2 = *(long **)(param_1 + 0x38);\n  lVar12 = plVar2[8];\n  if ((*(byte *)(param_1 + 0x20) & 4) != 0) {\n    lVar3 = *(long *)(param_1 + 0x18);\n    if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar4 = *(long *)(param_1 + 0x10);\n    if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_00182e30();\n  }\nLAB_001a2b1e:\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/output.h",0xe3,"offset");\n}\n\n" (function_definition "void FUN_001a2900(long param_1,long param_2)\n\n{\n  size_t __n;\n  uint uVar1;\n  long *plVar2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  uint uVar9;\n  void *__s;\n  ulong uVar10;\n  undefined8 uVar11;\n  long lVar12;\n  undefined4 *puVar13;\n  bool bVar14;\n  \n  plVar2 = *(long **)(param_1 + 0x38);\n  lVar12 = plVar2[8];\n  if ((*(byte *)(param_1 + 0x20) & 4) != 0) {\n    lVar3 = *(long *)(param_1 + 0x18);\n    if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar4 = *(long *)(param_1 + 0x10);\n    if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_00182e30();\n  }\nLAB_001a2b1e:\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/output.h",0xe3,"offset");\n}" primitive_type (function_declarator "FUN_001a2900(long param_1,long param_2)" identifier (parameter_list "(long param_1,long param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  size_t __n;\n  uint uVar1;\n  long *plVar2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  uint uVar9;\n  void *__s;\n  ulong uVar10;\n  undefined8 uVar11;\n  long lVar12;\n  undefined4 *puVar13;\n  bool bVar14;\n  \n  plVar2 = *(long **)(param_1 + 0x38);\n  lVar12 = plVar2[8];\n  if ((*(byte *)(param_1 + 0x20) & 4) != 0) {\n    lVar3 = *(long *)(param_1 + 0x18);\n    if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar4 = *(long *)(param_1 + 0x10);\n    if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_00182e30();\n  }\nLAB_001a2b1e:\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/output.h",0xe3,"offset");\n}" { (declaration "size_t __n;" primitive_type identifier ;) (declaration "uint uVar1;" type_identifier identifier ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "bool bVar14;" primitive_type identifier ;) (expression_statement "plVar2 = *(long **)(param_1 + 0x38);" (assignment_expression "plVar2 = *(long **)(param_1 + 0x38)" identifier = (pointer_expression "*(long **)(param_1 + 0x38)" * (cast_expression "(long **)(param_1 + 0x38)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "lVar12 = plVar2[8];" (assignment_expression "lVar12 = plVar2[8]" identifier = (subscript_expression "plVar2[8]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(param_1 + 0x20) & 4) != 0) {\n    lVar3 = *(long *)(param_1 + 0x18);\n    if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar4 = *(long *)(param_1 + 0x10);\n    if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_00182e30();\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 0x20) & 4) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0x20) & 4) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x20) & 4)" ( (binary_expression "*(byte *)(param_1 + 0x20) & 4" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    lVar3 = *(long *)(param_1 + 0x18);\n    if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar4 = *(long *)(param_1 + 0x10);\n    if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_00182e30();\n  }" { (expression_statement "lVar3 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x20) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x20) & 2" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001a2b06:\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }" { (labeled_statement "LAB_001a2b06:\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");" statement_identifier : comment (expression_statement "FUN_0017c650("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0017c650("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;)) })) (expression_statement "lVar4 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar4 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }" if (parenthesized_expression "((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10)))" ( (binary_expression "(-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))" (parenthesized_expression "(-1 < lVar3)" ( (binary_expression "-1 < lVar3" number_literal < identifier) )) && (parenthesized_expression "(lVar4 + lVar3 <= *(long *)(param_2 + 0x10))" ( (binary_expression "lVar4 + lVar3 <= *(long *)(param_2 + 0x10)" (binary_expression "lVar4 + lVar3" identifier + identifier) <= (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }" { (expression_statement "lVar5 = plVar2[0xc];" (assignment_expression "lVar5 = plVar2[0xc]" identifier = (subscript_expression "plVar2[0xc]" identifier [ number_literal ])) ;) (expression_statement "lVar6 = *(long *)(param_2 + 0x18);" (assignment_expression "lVar6 = *(long *)(param_2 + 0x18)" identifier = (pointer_expression "*(long *)(param_2 + 0x18)" * (cast_expression "(long *)(param_2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "puVar13 = (undefined4 *)(lVar3 + lVar6);" (assignment_expression "puVar13 = (undefined4 *)(lVar3 + lVar6)" identifier = (cast_expression "(undefined4 *)(lVar3 + lVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + lVar6)" ( (binary_expression "lVar3 + lVar6" identifier + identifier) )))) ;) (if_statement "if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;" if (parenthesized_expression "((*(byte *)(lVar5 + 0x20) & 4) == 0)" ( (binary_expression "(*(byte *)(lVar5 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x20) & 4)" ( (binary_expression "*(byte *)(lVar5 + 0x20) & 4" (pointer_expression "*(byte *)(lVar5 + 0x20)" * (cast_expression "(byte *)(lVar5 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a2b1e;" goto statement_identifier ;)) (expression_statement "lVar3 = *(long *)(lVar5 + 0x18);" (assignment_expression "lVar3 = *(long *)(lVar5 + 0x18)" identifier = (pointer_expression "*(long *)(lVar5 + 0x18)" * (cast_expression "(long *)(lVar5 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x18)" ( (binary_expression "lVar5 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;" if (parenthesized_expression "((*(byte *)(lVar5 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar5 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar5 + 0x20) & 2" (pointer_expression "*(byte *)(lVar5 + 0x20)" * (cast_expression "(byte *)(lVar5 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a2b06;" goto statement_identifier ;)) (expression_statement "lVar5 = *(long *)(lVar5 + 0x10);" (assignment_expression "lVar5 = *(long *)(lVar5 + 0x10)" identifier = (pointer_expression "*(long *)(lVar5 + 0x10)" * (cast_expression "(long *)(lVar5 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }" if (parenthesized_expression "((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10)))" ( (binary_expression "(-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))" (parenthesized_expression "(-1 < lVar3)" ( (binary_expression "-1 < lVar3" number_literal < identifier) )) && (parenthesized_expression "(lVar5 + lVar3 <= *(long *)(param_2 + 0x10))" ( (binary_expression "lVar5 + lVar3 <= *(long *)(param_2 + 0x10)" (binary_expression "lVar5 + lVar3" identifier + identifier) <= (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ))) )) (compound_statement "{\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }" { (expression_statement "uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);" (assignment_expression "uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18)" identifier = (pointer_expression "*(uint *)(*(long *)(param_1 + 0x40) + 0x18)" * (cast_expression "(uint *)(*(long *)(param_1 + 0x40) + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x40) + 0x18)" ( (binary_expression "*(long *)(param_1 + 0x40) + 0x18" (pointer_expression "*(long *)(param_1 + 0x40)" * (cast_expression "(long *)(param_1 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "__n = (ulong)uVar1 * 4;" (assignment_expression "__n = (ulong)uVar1 * 4" identifier = (binary_expression "(ulong)uVar1 * 4" (cast_expression "(ulong)uVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ;) (expression_statement "__s = (void *)thunk_FUN_002d94a0(__n);" (assignment_expression "__s = (void *)thunk_FUN_002d94a0(__n)" identifier = (cast_expression "(void *)thunk_FUN_002d94a0(__n)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "thunk_FUN_002d94a0(__n)" identifier (argument_list "(__n)" ( identifier ))))) ;) (expression_statement "memset(__s,0,__n);" (call_expression "memset(__s,0,__n)" identifier (argument_list "(__s,0,__n)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }" if (parenthesized_expression "(*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7])" ( (binary_expression "*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]" (pointer_expression "*(ulong *)(lVar12 + 0x50)" * (cast_expression "(ulong *)(lVar12 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x50)" ( (binary_expression "lVar12 + 0x50" identifier + number_literal) )))) < (cast_expression "(ulong)plVar2[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "plVar2[7]" identifier [ number_literal ]))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }" { comment (expression_statement "FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");" (call_expression "FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key")" identifier (argument_list "("../../gold/stringpool.h",0x108,"get_offset_from_key")" ( (string_literal ""../../gold/stringpool.h"" " string_content ") , number_literal , (string_literal ""get_offset_from_key"" " string_content ") ))) ;) })) (expression_statement "uVar10 = plVar2[7] - 1;" (assignment_expression "uVar10 = plVar2[7] - 1" identifier = (binary_expression "plVar2[7] - 1" (subscript_expression "plVar2[7]" identifier [ number_literal ]) - number_literal)) ;) (expression_statement "uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);" (assignment_expression "uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8)" identifier = (pointer_expression "*(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8)" * (cast_expression "(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8)" ( (binary_expression "*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8" (pointer_expression "*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18)" * (cast_expression "(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18)" ( (binary_expression "*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18" (pointer_expression "*(long *)(lVar12 + 0x38)" * (cast_expression "(long *)(lVar12 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x38)" ( (binary_expression "lVar12 + 0x38" identifier + number_literal) )))) + (binary_expression "(uVar10 >> 0xd) * 0x18" (parenthesized_expression "(uVar10 >> 0xd)" ( (binary_expression "uVar10 >> 0xd" identifier >> number_literal) )) * number_literal)) )))) + (binary_expression "(ulong)((uint)uVar10 & 0x1fff) * 8" (call_expression "(ulong)((uint)uVar10 & 0x1fff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)uVar10 & 0x1fff)" ( (binary_expression "(uint)uVar10 & 0x1fff" (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "lVar7 = plVar2[1];" (assignment_expression "lVar7 = plVar2[1]" identifier = (subscript_expression "plVar2[1]" identifier [ number_literal ])) ;) (expression_statement "lVar8 = *plVar2;" (assignment_expression "lVar8 = *plVar2" identifier = (pointer_expression "*plVar2" * identifier)) ;) (expression_statement "*puVar13 = 0x2000000;" (assignment_expression "*puVar13 = 0x2000000" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13[3] = 0;" (assignment_expression "puVar13[3] = 0" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = (uint)(lVar7 - lVar8 >> 3);" (assignment_expression "uVar9 = (uint)(lVar7 - lVar8 >> 3)" identifier = (call_expression "(uint)(lVar7 - lVar8 >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(lVar7 - lVar8 >> 3)" ( (binary_expression "lVar7 - lVar8 >> 3" (binary_expression "lVar7 - lVar8" identifier - identifier) >> number_literal) )))) ;) (expression_statement "puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;" (assignment_expression "puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar9 = (uint)uVar11;" (assignment_expression "uVar9 = (uint)uVar11" identifier = (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;" (assignment_expression "puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);" (assignment_expression "uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12)" identifier = (call_expression "FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12)" identifier (argument_list "(param_1,puVar13,puVar13 + 4,lVar12)" ( identifier , identifier , (binary_expression "puVar13 + 4" identifier + number_literal) , identifier )))) ;) (expression_statement "lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);" (assignment_expression "lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1)" identifier = (call_expression "FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1)" identifier (argument_list "(param_1,puVar13,uVar11,lVar12,__s,uVar1)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar12 - (long)puVar13 != lVar4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }" if (parenthesized_expression "(lVar12 - (long)puVar13 != lVar4)" ( (binary_expression "lVar12 - (long)puVar13 != lVar4" (binary_expression "lVar12 - (long)puVar13" identifier - (cast_expression "(long)puVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }" { comment (expression_statement "FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");" (call_expression "FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write")" identifier (argument_list "("../../gold/incremental.cc",0x59c,"do_write")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;) })) (if_statement "if ((ulong)uVar1 << 2 != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }" if (parenthesized_expression "((ulong)uVar1 << 2 != lVar5)" ( (binary_expression "(ulong)uVar1 << 2 != lVar5" (binary_expression "(ulong)uVar1 << 2" (cast_expression "(ulong)uVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) << number_literal) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }" { comment (expression_statement "FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");" (call_expression "FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write")" identifier (argument_list "("../../gold/incremental.cc",0x59f,"do_write")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;) })) (if_statement "if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);" do (compound_statement "{\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          }" { (expression_statement "uVar9 = *(uint *)((long)__s + uVar10 * 4);" (assignment_expression "uVar9 = *(uint *)((long)__s + uVar10 * 4)" identifier = (pointer_expression "*(uint *)((long)__s + uVar10 * 4)" * (cast_expression "(uint *)((long)__s + uVar10 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + uVar10 * 4)" ( (binary_expression "(long)__s + uVar10 * 4" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar10 * 4" identifier * number_literal)) ))))) ;) (expression_statement "*(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "*(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (pointer_expression "*(uint *)(lVar6 + lVar3 + uVar10 * 4)" * (cast_expression "(uint *)(lVar6 + lVar3 + uVar10 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + lVar3 + uVar10 * 4)" ( (binary_expression "lVar6 + lVar3 + uVar10 * 4" (binary_expression "lVar6 + lVar3" identifier + identifier) + (binary_expression "uVar10 * 4" identifier * number_literal)) )))) = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "bVar14 = uVar1 - 1 != uVar10;" (assignment_expression "bVar14 = uVar1 - 1 != uVar10" identifier = (binary_expression "uVar1 - 1 != uVar10" (binary_expression "uVar1 - 1" identifier - number_literal) != identifier)) ;) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) })) (expression_statement "thunk_FUN_002dac70(__s);" (call_expression "thunk_FUN_002dac70(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "lVar12 = plVar2[0xe];" (assignment_expression "lVar12 = plVar2[0xe]" identifier = (subscript_expression "plVar2[0xe]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;" if (parenthesized_expression "((*(byte *)(lVar12 + 0x20) & 4) == 0)" ( (binary_expression "(*(byte *)(lVar12 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar12 + 0x20) & 4)" ( (binary_expression "*(byte *)(lVar12 + 0x20) & 4" (pointer_expression "*(byte *)(lVar12 + 0x20)" * (cast_expression "(byte *)(lVar12 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x20)" ( (binary_expression "lVar12 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a2b1e;" goto statement_identifier ;)) (expression_statement "lVar3 = *(long *)(lVar12 + 0x18);" (assignment_expression "lVar3 = *(long *)(lVar12 + 0x18)" identifier = (pointer_expression "*(long *)(lVar12 + 0x18)" * (cast_expression "(long *)(lVar12 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x18)" ( (binary_expression "lVar12 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;" if (parenthesized_expression "((*(byte *)(lVar12 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar12 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar12 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar12 + 0x20) & 2" (pointer_expression "*(byte *)(lVar12 + 0x20)" * (cast_expression "(byte *)(lVar12 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x20)" ( (binary_expression "lVar12 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a2b06;" goto statement_identifier ;)) (if_statement "if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }" if (parenthesized_expression "((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10)))" ( (binary_expression "(-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))" (parenthesized_expression "(-1 < lVar3)" ( (binary_expression "-1 < lVar3" number_literal < identifier) )) && (parenthesized_expression "(*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))" ( (binary_expression "*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10)" (binary_expression "*(long *)(lVar12 + 0x10) + lVar3" (pointer_expression "*(long *)(lVar12 + 0x10)" * (cast_expression "(long *)(lVar12 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x10)" ( (binary_expression "lVar12 + 0x10" identifier + number_literal) )))) + identifier) <= (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ))) )) (compound_statement "{\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }" { (expression_statement "FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));" (call_expression "FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18))" identifier (argument_list "(param_1,lVar3 + *(long *)(param_2 + 0x18))" ( identifier , (binary_expression "lVar3 + *(long *)(param_2 + 0x18)" identifier + (pointer_expression "*(long *)(param_2 + 0x18)" * (cast_expression "(long *)(param_2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ))) ;) (return_statement "return;" return ;) })) })) })) comment (expression_statement "FUN_00182e30();" (call_expression "FUN_00182e30()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_001a2b1e:\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/output.h",0xe3,"offset");" statement_identifier : comment (expression_statement "FUN_0017c650("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_0017c650("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;)) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* DWARF original prototype: void do_write(Output_section_incremental_inputs<32,_true> * this,\n   Output_file * of) */\n\nvoid __thiscall\ngold::Output_section_incremental_inputs<32,_true>::do_write\n          (Output_section_incremental_inputs<32,_true> *this,Output_file *of)\n\n{\n  byte bVar1;\n  uint uVar2;\n  Incremental_inputs *pIVar3;\n  long lVar4;\n  long lVar5;\n  uchar *puVar6;\n  Output_section_incremental_inputs<32,_true> *pOVar7;\n  undefined8 uVar8;\n  pointer ppIVar9;\n  pointer ppIVar10;\n  Output_data_space *pOVar11;\n  uint uVar12;\n  Output_section_incremental_inputs<32,_true> *this_00;\n  ulong uVar13;\n  uchar *puVar14;\n  Stringpool *pSVar15;\n  Stringpool *in_RCX;\n  Output_data_space *in_RDX;\n  uchar *oview;\n  Output_file *start;\n  bool bVar16;\n  \n  pIVar3 = this->inputs_;\n  bVar1 = (this->super_Output_section_data).super_Output_data.field_0x20;\n  pSVar15 = pIVar3->strtab_;\n  if ((bVar1 & 4) != 0) {\n    lVar4 = (this->super_Output_section_data).super_Output_data.offset_;\n    if ((bVar1 & 2) == 0) {\nLAB_001a2b06:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar5 = (this->super_Output_section_data).super_Output_data.data_size_;\n    start = of;\n    this_00 = this;\n    if ((-1 < lVar4) && (in_RCX = (Stringpool *)of->file_size_, lVar5 + lVar4 <= (long)in_RCX)) {\n      in_RDX = pIVar3->symtab_section_;\n      puVar6 = of->base_;\n      bVar1 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n              field_0x20;\n      oview = puVar6 + lVar4;\n      if ((bVar1 & 4) == 0) goto LAB_001a2b1e;\n      start = (Output_file *)(ulong)(bVar1 & 2);\n      lVar4 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n              offset_;\n      if ((bVar1 & 2) == 0) goto LAB_001a2b06;\n      pOVar7 = (Output_section_incremental_inputs<32,_true> *)\n               (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data\n               .data_size_;\n      this_00 = pOVar7;\n      if ((-1 < lVar4) &&\n         (in_RDX = (Output_data_space *)\n                   ((long)&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data +\n                   lVar4), (long)in_RDX <= (long)in_RCX)) {\n        uVar2 = this->symtab_->output_count_;\n        uVar13 = (ulong)uVar2 * 4;\n        this_00 = (Output_section_incremental_inputs<32,_true> *)operator_new__(uVar13);\n        memset(this_00,0,uVar13);\n        if ((pSVar15->key_to_offset_).size_ < pIVar3->command_line_key_) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar13 = pIVar3->command_line_key_ - 1;\n        uVar8 = *(undefined8 *)\n                 ((long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd].\n                        super__Vector_base<long_int,_std::allocator<long_int>_>._M_impl._M_start +\n                 (ulong)((uint)uVar13 & 0x1fff) * 8);\n        ppIVar9 = (pIVar3->inputs_).\n                  super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                  ._M_impl._M_finish;\n        ppIVar10 = (pIVar3->inputs_).\n                   super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                   ._M_impl._M_start;\n        oview[0] = '\0';\n        oview[1] = '\0';\n        oview[2] = '\0';\n        oview[3] = '\x02';\n        oview[0xc] = '\0';\n        oview[0xd] = '\0';\n        oview[0xe] = '\0';\n        oview[0xf] = '\0';\n        uVar12 = (uint)((long)ppIVar9 - (long)ppIVar10 >> 3);\n        *(uint *)(oview + 4) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n        uVar12 = (uint)uVar8;\n        *(uint *)(oview + 8) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n        puVar14 = write_input_files(this,oview,oview + 0x10,pSVar15);\n        puVar14 = write_info_blocks(this,oview,puVar14,pSVar15,(uint *)this_00,uVar2);\n        if ((long)puVar14 - (long)oview != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((Output_section_incremental_inputs<32,_true> *)((ulong)uVar2 << 2) != pOVar7) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        in_RCX = pSVar15;\n        if (uVar2 != 0) {\n          in_RCX = (Stringpool *)(ulong)(uVar2 - 1);\n          pSVar15 = (Stringpool *)0x0;\n          do {\n            uVar2 = *(uint *)((long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4);\n            *(uint *)(puVar6 + (long)pSVar15 * 4 + lVar4) =\n                 uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n            bVar16 = in_RCX != pSVar15;\n            pSVar15 = (Stringpool *)((long)&(pSVar15->string_set_)._M_h._M_buckets + 1);\n          } while (bVar16);\n        }\n        operator_delete__(this_00);\n        pOVar11 = pIVar3->got_plt_section_;\n        bVar1 = (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n        if ((bVar1 & 4) == 0) goto LAB_001a2b1e;\n        start = (Output_file *)\n                (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_;\n        if ((bVar1 & 2) == 0) goto LAB_001a2b06;\n        in_RDX = (Output_data_space *)\n                 (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.data_size_;\n        if ((-1 < (long)start) &&\n           ((long)&start->name_ + (long)&in_RDX->super_Output_section_data_build <= of->file_size_))\n        {\n          write_got_plt(this,of->base_ + (long)&start->name_,(off_t)in_RDX);\n          return;\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    Output_file::get_output_view\n              ((Output_file *)this_00,(off_t)start,(size_t)in_RDX,(Output_file *)in_RCX);\n  }\nLAB_001a2b1e:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n}\n\n" comment comment (declaration "void __thiscall\ngold::Output_section_incremental_inputs<32,_true>::do_write\n          (Output_section_incremental_inputs<32,_true> *this,Output_file *of)\n\n{\n  byte bVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_true>::do_write\n          (Output_section_incremental_inputs<32,_true> *this,Output_file *of)\n\n{\n  byte" identifier > : : (function_declarator "do_write\n          (Output_section_incremental_inputs<32,_true> *this,Output_file *of)" identifier (parameter_list "(Output_section_incremental_inputs<32,_true> *this,Output_file *of)" ( (parameter_declaration "Output_section_incremental_inputs" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_file *of" type_identifier (pointer_declarator "*of" * identifier)) ))) { identifier) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "Incremental_inputs *pIVar3;" type_identifier (pointer_declarator "*pIVar3" * identifier) ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "uchar *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (expression_statement "Output_section_incremental_inputs<32,_true> *pOVar7;" (update_expression "Output_section_incremental_inputs<32,_true> *pOVar7" (binary_expression "Output_section_incremental_inputs<32,_true> *pOVar7" (binary_expression "Output_section_incremental_inputs<32" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*pOVar7" * identifier)) --) ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "pointer ppIVar9;" type_identifier identifier ;) (declaration "pointer ppIVar10;" type_identifier identifier ;) (declaration "Output_data_space *pOVar11;" type_identifier (pointer_declarator "*pOVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (expression_statement "Output_section_incremental_inputs<32,_true> *this_00;" (update_expression "Output_section_incremental_inputs<32,_true> *this_00" (binary_expression "Output_section_incremental_inputs<32,_true> *this_00" (binary_expression "Output_section_incremental_inputs<32" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*this_00" * identifier)) --) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "uchar *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "Stringpool *pSVar15;" type_identifier (pointer_declarator "*pSVar15" * identifier) ;) (declaration "Stringpool *in_RCX;" type_identifier (pointer_declarator "*in_RCX" * identifier) ;) (declaration "Output_data_space *in_RDX;" type_identifier (pointer_declarator "*in_RDX" * identifier) ;) (declaration "uchar *oview;" type_identifier (pointer_declarator "*oview" * identifier) ;) (declaration "Output_file *start;" type_identifier (pointer_declarator "*start" * identifier) ;) (declaration "bool bVar16;" primitive_type identifier ;) (expression_statement "pIVar3 = this->inputs_;" (assignment_expression "pIVar3 = this->inputs_" identifier = (field_expression "this->inputs_" identifier -> field_identifier)) ;) (expression_statement "bVar1 = (this->super_Output_section_data).super_Output_data.field_0x20;" (assignment_expression "bVar1 = (this->super_Output_section_data).super_Output_data.field_0x20" identifier = (field_expression "(this->super_Output_section_data).super_Output_data.field_0x20" (field_expression "(this->super_Output_section_data).super_Output_data" (parenthesized_expression "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pSVar15 = pIVar3->strtab_;" (assignment_expression "pSVar15 = pIVar3->strtab_" identifier = (field_expression "pIVar3->strtab_" identifier -> field_identifier)) ;) (if_statement "if ((bVar1 & 4) != 0) {\n    lVar4 = (this->super_Output_section_data).super_Output_data.offset_;\n    if ((bVar1 & 2) == 0) {\nLAB_001a2b06:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar5 = (this->super_Output_section_data).super_Output_data.data_size_;\n    start = of;\n    this_00 = this;\n    if ((-1 < lVar4) && (in_RCX = (Stringpool *)of->file_size_, lVar5 + lVar4 <= (long)in_RCX)) {\n      in_RDX = pIVar3->symtab_section_;\n      puVar6 = of->base_;\n      bVar1 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n              field_0x20;\n      oview = puVar6 + lVar4;\n      if ((bVar1 & 4) == 0) goto LAB_001a2b1e;\n      start = (Output_file *)(ulong)(bVar1 & 2);\n      lVar4 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n              offset_;\n      if ((bVar1 & 2) == 0) goto LAB_001a2b06;\n      pOVar7 = (Output_section_incremental_inputs<32,_true> *)\n               (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data\n               .data_size_;\n      this_00 = pOVar7;\n      if ((-1 < lVar4) &&\n         (in_RDX = (Output_data_space *)\n                   ((long)&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data +\n                   lVar4), (long)in_RDX <= (long)in_RCX)) {\n        uVar2 = this->symtab_->output_count_;\n        uVar13 = (ulong)uVar2 * 4;\n        this_00 = (Output_section_incremental_inputs<32,_true> *)operator_new__(uVar13);\n        memset(this_00,0,uVar13);\n        if ((pSVar15->key_to_offset_).size_ < pIVar3->command_line_key_) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar13 = pIVar3->command_line_key_ - 1;\n        uVar8 = *(undefined8 *)\n                 ((long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd].\n                        super__Vector_base<long_int,_std::allocator<long_int>_>._M_impl._M_start +\n                 (ulong)((uint)uVar13 & 0x1fff) * 8);\n        ppIVar9 = (pIVar3->inputs_).\n                  super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                  ._M_impl._M_finish;\n        ppIVar10 = (pIVar3->inputs_).\n                   super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                   ._M_impl._M_start;\n        oview[0] = '\0';\n        oview[1] = '\0';\n        oview[2] = '\0';\n        oview[3] = '\x02';\n        oview[0xc] = '\0';\n        oview[0xd] = '\0';\n        oview[0xe] = '\0';\n        oview[0xf] = '\0';\n        uVar12 = (uint)((long)ppIVar9 - (long)ppIVar10 >> 3);\n        *(uint *)(oview + 4) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n        uVar12 = (uint)uVar8;\n        *(uint *)(oview + 8) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n        puVar14 = write_input_files(this,oview,oview + 0x10,pSVar15);\n        puVar14 = write_info_blocks(this,oview,puVar14,pSVar15,(uint *)this_00,uVar2);\n        if ((long)puVar14 - (long)oview != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((Output_section_incremental_inputs<32,_true> *)((ulong)uVar2 << 2) != pOVar7) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        in_RCX = pSVar15;\n        if (uVar2 != 0) {\n          in_RCX = (Stringpool *)(ulong)(uVar2 - 1);\n          pSVar15 = (Stringpool *)0x0;\n          do {\n            uVar2 = *(uint *)((long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4);\n            *(uint *)(puVar6 + (long)pSVar15 * 4 + lVar4) =\n                 uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n            bVar16 = in_RCX != pSVar15;\n            pSVar15 = (Stringpool *)((long)&(pSVar15->string_set_)._M_h._M_buckets + 1);\n          } while (bVar16);\n        }\n        operator_delete__(this_00);\n        pOVar11 = pIVar3->got_plt_section_;\n        bVar1 = (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n        if ((bVar1 & 4) == 0) goto LAB_001a2b1e;\n        start = (Output_file *)\n                (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_;\n        if ((bVar1 & 2) == 0) goto LAB_001a2b06;\n        in_RDX = (Output_data_space *)\n                 (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.data_size_;\n        if ((-1 < (long)start) &&\n           ((long)&start->name_ + (long)&in_RDX->super_Output_section_data_build <= of->file_size_))\n        {\n          write_got_plt(this,of->base_ + (long)&start->name_,(off_t)in_RDX);\n          return;\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    Output_file::get_output_view\n              ((Output_file *)this_00,(off_t)start,(size_t)in_RDX,(Output_file *)in_RCX);\n  }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    lVar4 = (this->super_Output_section_data).super_Output_data.offset_;\n    if ((bVar1 & 2) == 0) {\nLAB_001a2b06:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar5 = (this->super_Output_section_data).super_Output_data.data_size_;\n    start = of;\n    this_00 = this;\n    if ((-1 < lVar4) && (in_RCX = (Stringpool *)of->file_size_, lVar5 + lVar4 <= (long)in_RCX)) {\n      in_RDX = pIVar3->symtab_section_;\n      puVar6 = of->base_;\n      bVar1 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n              field_0x20;\n      oview = puVar6 + lVar4;\n      if ((bVar1 & 4) == 0) goto LAB_001a2b1e;\n      start = (Output_file *)(ulong)(bVar1 & 2);\n      lVar4 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n              offset_;\n      if ((bVar1 & 2) == 0) goto LAB_001a2b06;\n      pOVar7 = (Output_section_incremental_inputs<32,_true> *)\n               (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data\n               .data_size_;\n      this_00 = pOVar7;\n      if ((-1 < lVar4) &&\n         (in_RDX = (Output_data_space *)\n                   ((long)&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data +\n                   lVar4), (long)in_RDX <= (long)in_RCX)) {\n        uVar2 = this->symtab_->output_count_;\n        uVar13 = (ulong)uVar2 * 4;\n        this_00 = (Output_section_incremental_inputs<32,_true> *)operator_new__(uVar13);\n        memset(this_00,0,uVar13);\n        if ((pSVar15->key_to_offset_).size_ < pIVar3->command_line_key_) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar13 = pIVar3->command_line_key_ - 1;\n        uVar8 = *(undefined8 *)\n                 ((long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd].\n                        super__Vector_base<long_int,_std::allocator<long_int>_>._M_impl._M_start +\n                 (ulong)((uint)uVar13 & 0x1fff) * 8);\n        ppIVar9 = (pIVar3->inputs_).\n                  super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                  ._M_impl._M_finish;\n        ppIVar10 = (pIVar3->inputs_).\n                   super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                   ._M_impl._M_start;\n        oview[0] = '\0';\n        oview[1] = '\0';\n        oview[2] = '\0';\n        oview[3] = '\x02';\n        oview[0xc] = '\0';\n        oview[0xd] = '\0';\n        oview[0xe] = '\0';\n        oview[0xf] = '\0';\n        uVar12 = (uint)((long)ppIVar9 - (long)ppIVar10 >> 3);\n        *(uint *)(oview + 4) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n        uVar12 = (uint)uVar8;\n        *(uint *)(oview + 8) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n        puVar14 = write_input_files(this,oview,oview + 0x10,pSVar15);\n        puVar14 = write_info_blocks(this,oview,puVar14,pSVar15,(uint *)this_00,uVar2);\n        if ((long)puVar14 - (long)oview != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((Output_section_incremental_inputs<32,_true> *)((ulong)uVar2 << 2) != pOVar7) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        in_RCX = pSVar15;\n        if (uVar2 != 0) {\n          in_RCX = (Stringpool *)(ulong)(uVar2 - 1);\n          pSVar15 = (Stringpool *)0x0;\n          do {\n            uVar2 = *(uint *)((long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4);\n            *(uint *)(puVar6 + (long)pSVar15 * 4 + lVar4) =\n                 uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n            bVar16 = in_RCX != pSVar15;\n            pSVar15 = (Stringpool *)((long)&(pSVar15->string_set_)._M_h._M_buckets + 1);\n          } while (bVar16);\n        }\n        operator_delete__(this_00);\n        pOVar11 = pIVar3->got_plt_section_;\n        bVar1 = (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n        if ((bVar1 & 4) == 0) goto LAB_001a2b1e;\n        start = (Output_file *)\n                (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_;\n        if ((bVar1 & 2) == 0) goto LAB_001a2b06;\n        in_RDX = (Output_data_space *)\n                 (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.data_size_;\n        if ((-1 < (long)start) &&\n           ((long)&start->name_ + (long)&in_RDX->super_Output_section_data_build <= of->file_size_))\n        {\n          write_got_plt(this,of->base_ + (long)&start->name_,(off_t)in_RDX);\n          return;\n        }\n      }\n    }\n                    /* WARNING: Subroutine does not return */\n    Output_file::get_output_view\n              ((Output_file *)this_00,(off_t)start,(size_t)in_RDX,(Output_file *)in_RCX);\n  }" { (expression_statement "lVar4 = (this->super_Output_section_data).super_Output_data.offset_;" (assignment_expression "lVar4 = (this->super_Output_section_data).super_Output_data.offset_" identifier = (field_expression "(this->super_Output_section_data).super_Output_data.offset_" (field_expression "(this->super_Output_section_data).super_Output_data" (parenthesized_expression "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((bVar1 & 2) == 0) {\nLAB_001a2b06:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n    }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001a2b06:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n    }" { (labeled_statement "LAB_001a2b06:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xcf,"data_size");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xcf,"data_size");" (call_expression "do_gold_unreachable("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;)) })) (expression_statement "lVar5 = (this->super_Output_section_data).super_Output_data.data_size_;" (assignment_expression "lVar5 = (this->super_Output_section_data).super_Output_data.data_size_" identifier = (field_expression "(this->super_Output_section_data).super_Output_data.data_size_" (field_expression "(this->super_Output_section_data).super_Output_data" (parenthesized_expression "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "start = of;" (assignment_expression "start = of" identifier = identifier) ;) (expression_statement "this_00 = this;" (assignment_expression "this_00 = this" identifier = identifier) ;) (if_statement "if ((-1 < lVar4) && (in_RCX = (Stringpool *)of->file_size_, lVar5 + lVar4 <= (long)in_RCX)) {\n      in_RDX = pIVar3->symtab_section_;\n      puVar6 = of->base_;\n      bVar1 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n              field_0x20;\n      oview = puVar6 + lVar4;\n      if ((bVar1 & 4) == 0) goto LAB_001a2b1e;\n      start = (Output_file *)(ulong)(bVar1 & 2);\n      lVar4 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n              offset_;\n      if ((bVar1 & 2) == 0) goto LAB_001a2b06;\n      pOVar7 = (Output_section_incremental_inputs<32,_true> *)\n               (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data\n               .data_size_;\n      this_00 = pOVar7;\n      if ((-1 < lVar4) &&\n         (in_RDX = (Output_data_space *)\n                   ((long)&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data +\n                   lVar4), (long)in_RDX <= (long)in_RCX)) {\n        uVar2 = this->symtab_->output_count_;\n        uVar13 = (ulong)uVar2 * 4;\n        this_00 = (Output_section_incremental_inputs<32,_true> *)operator_new__(uVar13);\n        memset(this_00,0,uVar13);\n        if ((pSVar15->key_to_offset_).size_ < pIVar3->command_line_key_) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar13 = pIVar3->command_line_key_ - 1;\n        uVar8 = *(undefined8 *)\n                 ((long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd].\n                        super__Vector_base<long_int,_std::allocator<long_int>_>._M_impl._M_start +\n                 (ulong)((uint)uVar13 & 0x1fff) * 8);\n        ppIVar9 = (pIVar3->inputs_).\n                  super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                  ._M_impl._M_finish;\n        ppIVar10 = (pIVar3->inputs_).\n                   super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                   ._M_impl._M_start;\n        oview[0] = '\0';\n        oview[1] = '\0';\n        oview[2] = '\0';\n        oview[3] = '\x02';\n        oview[0xc] = '\0';\n        oview[0xd] = '\0';\n        oview[0xe] = '\0';\n        oview[0xf] = '\0';\n        uVar12 = (uint)((long)ppIVar9 - (long)ppIVar10 >> 3);\n        *(uint *)(oview + 4) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n        uVar12 = (uint)uVar8;\n        *(uint *)(oview + 8) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n        puVar14 = write_input_files(this,oview,oview + 0x10,pSVar15);\n        puVar14 = write_info_blocks(this,oview,puVar14,pSVar15,(uint *)this_00,uVar2);\n        if ((long)puVar14 - (long)oview != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((Output_section_incremental_inputs<32,_true> *)((ulong)uVar2 << 2) != pOVar7) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        in_RCX = pSVar15;\n        if (uVar2 != 0) {\n          in_RCX = (Stringpool *)(ulong)(uVar2 - 1);\n          pSVar15 = (Stringpool *)0x0;\n          do {\n            uVar2 = *(uint *)((long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4);\n            *(uint *)(puVar6 + (long)pSVar15 * 4 + lVar4) =\n                 uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n            bVar16 = in_RCX != pSVar15;\n            pSVar15 = (Stringpool *)((long)&(pSVar15->string_set_)._M_h._M_buckets + 1);\n          } while (bVar16);\n        }\n        operator_delete__(this_00);\n        pOVar11 = pIVar3->got_plt_section_;\n        bVar1 = (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n        if ((bVar1 & 4) == 0) goto LAB_001a2b1e;\n        start = (Output_file *)\n                (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_;\n        if ((bVar1 & 2) == 0) goto LAB_001a2b06;\n        in_RDX = (Output_data_space *)\n                 (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.data_size_;\n        if ((-1 < (long)start) &&\n           ((long)&start->name_ + (long)&in_RDX->super_Output_section_data_build <= of->file_size_))\n        {\n          write_got_plt(this,of->base_ + (long)&start->name_,(off_t)in_RDX);\n          return;\n        }\n      }\n    }" if (parenthesized_expression "((-1 < lVar4) && (in_RCX = (Stringpool *)of->file_size_, lVar5 + lVar4 <= (long)in_RCX))" ( (binary_expression "(-1 < lVar4) && (in_RCX = (Stringpool *)of->file_size_, lVar5 + lVar4 <= (long)in_RCX)" (parenthesized_expression "(-1 < lVar4)" ( (binary_expression "-1 < lVar4" number_literal < identifier) )) && (parenthesized_expression "(in_RCX = (Stringpool *)of->file_size_, lVar5 + lVar4 <= (long)in_RCX)" ( (comma_expression "in_RCX = (Stringpool *)of->file_size_, lVar5 + lVar4 <= (long)in_RCX" (assignment_expression "in_RCX = (Stringpool *)of->file_size_" identifier = (cast_expression "(Stringpool *)of->file_size_" ( (type_descriptor "Stringpool *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "of->file_size_" identifier -> field_identifier))) , (binary_expression "lVar5 + lVar4 <= (long)in_RCX" (binary_expression "lVar5 + lVar4" identifier + identifier) <= (cast_expression "(long)in_RCX" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ))) )) (compound_statement "{\n      in_RDX = pIVar3->symtab_section_;\n      puVar6 = of->base_;\n      bVar1 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n              field_0x20;\n      oview = puVar6 + lVar4;\n      if ((bVar1 & 4) == 0) goto LAB_001a2b1e;\n      start = (Output_file *)(ulong)(bVar1 & 2);\n      lVar4 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n              offset_;\n      if ((bVar1 & 2) == 0) goto LAB_001a2b06;\n      pOVar7 = (Output_section_incremental_inputs<32,_true> *)\n               (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data\n               .data_size_;\n      this_00 = pOVar7;\n      if ((-1 < lVar4) &&\n         (in_RDX = (Output_data_space *)\n                   ((long)&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data +\n                   lVar4), (long)in_RDX <= (long)in_RCX)) {\n        uVar2 = this->symtab_->output_count_;\n        uVar13 = (ulong)uVar2 * 4;\n        this_00 = (Output_section_incremental_inputs<32,_true> *)operator_new__(uVar13);\n        memset(this_00,0,uVar13);\n        if ((pSVar15->key_to_offset_).size_ < pIVar3->command_line_key_) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar13 = pIVar3->command_line_key_ - 1;\n        uVar8 = *(undefined8 *)\n                 ((long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd].\n                        super__Vector_base<long_int,_std::allocator<long_int>_>._M_impl._M_start +\n                 (ulong)((uint)uVar13 & 0x1fff) * 8);\n        ppIVar9 = (pIVar3->inputs_).\n                  super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                  ._M_impl._M_finish;\n        ppIVar10 = (pIVar3->inputs_).\n                   super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                   ._M_impl._M_start;\n        oview[0] = '\0';\n        oview[1] = '\0';\n        oview[2] = '\0';\n        oview[3] = '\x02';\n        oview[0xc] = '\0';\n        oview[0xd] = '\0';\n        oview[0xe] = '\0';\n        oview[0xf] = '\0';\n        uVar12 = (uint)((long)ppIVar9 - (long)ppIVar10 >> 3);\n        *(uint *)(oview + 4) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n        uVar12 = (uint)uVar8;\n        *(uint *)(oview + 8) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n        puVar14 = write_input_files(this,oview,oview + 0x10,pSVar15);\n        puVar14 = write_info_blocks(this,oview,puVar14,pSVar15,(uint *)this_00,uVar2);\n        if ((long)puVar14 - (long)oview != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((Output_section_incremental_inputs<32,_true> *)((ulong)uVar2 << 2) != pOVar7) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        in_RCX = pSVar15;\n        if (uVar2 != 0) {\n          in_RCX = (Stringpool *)(ulong)(uVar2 - 1);\n          pSVar15 = (Stringpool *)0x0;\n          do {\n            uVar2 = *(uint *)((long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4);\n            *(uint *)(puVar6 + (long)pSVar15 * 4 + lVar4) =\n                 uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n            bVar16 = in_RCX != pSVar15;\n            pSVar15 = (Stringpool *)((long)&(pSVar15->string_set_)._M_h._M_buckets + 1);\n          } while (bVar16);\n        }\n        operator_delete__(this_00);\n        pOVar11 = pIVar3->got_plt_section_;\n        bVar1 = (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n        if ((bVar1 & 4) == 0) goto LAB_001a2b1e;\n        start = (Output_file *)\n                (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_;\n        if ((bVar1 & 2) == 0) goto LAB_001a2b06;\n        in_RDX = (Output_data_space *)\n                 (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.data_size_;\n        if ((-1 < (long)start) &&\n           ((long)&start->name_ + (long)&in_RDX->super_Output_section_data_build <= of->file_size_))\n        {\n          write_got_plt(this,of->base_ + (long)&start->name_,(off_t)in_RDX);\n          return;\n        }\n      }\n    }" { (expression_statement "in_RDX = pIVar3->symtab_section_;" (assignment_expression "in_RDX = pIVar3->symtab_section_" identifier = (field_expression "pIVar3->symtab_section_" identifier -> field_identifier)) ;) (expression_statement "puVar6 = of->base_;" (assignment_expression "puVar6 = of->base_" identifier = (field_expression "of->base_" identifier -> field_identifier)) ;) (expression_statement "bVar1 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n              field_0x20;" (assignment_expression "bVar1 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n              field_0x20" identifier = (field_expression "(in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n              field_0x20" (field_expression "(in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(in_RDX->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(in_RDX->super_Output_section_data_build)" ( (field_expression "in_RDX->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "oview = puVar6 + lVar4;" (assignment_expression "oview = puVar6 + lVar4" identifier = (binary_expression "puVar6 + lVar4" identifier + identifier)) ;) (if_statement "if ((bVar1 & 4) == 0) goto LAB_001a2b1e;" if (parenthesized_expression "((bVar1 & 4) == 0)" ( (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a2b1e;" goto statement_identifier ;)) (expression_statement "start = (Output_file *)(ulong)(bVar1 & 2);" (assignment_expression "start = (Output_file *)(ulong)(bVar1 & 2)" identifier = (cast_expression "(Output_file *)(ulong)(bVar1 & 2)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(bVar1 & 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) ))))) ;) (expression_statement "lVar4 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n              offset_;" (assignment_expression "lVar4 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n              offset_" identifier = (field_expression "(in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n              offset_" (field_expression "(in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(in_RDX->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(in_RDX->super_Output_section_data_build)" ( (field_expression "in_RDX->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if ((bVar1 & 2) == 0) goto LAB_001a2b06;" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a2b06;" goto statement_identifier ;)) (expression_statement "pOVar7 = (Output_section_incremental_inputs<32,_true> *)\n               (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data\n               .data_size_;" (assignment_expression "pOVar7 = (Output_section_incremental_inputs<32,_true> *)\n               (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data\n               .data_size_" identifier = (field_expression "(Output_section_incremental_inputs<32,_true> *)\n               (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data\n               .data_size_" (field_expression "(Output_section_incremental_inputs<32,_true> *)\n               (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(Output_section_incremental_inputs<32,_true> *)\n               (in_RDX->super_Output_section_data_build).super_Output_section_data" (call_expression "(Output_section_incremental_inputs<32,_true> *)\n               (in_RDX->super_Output_section_data_build)" (parenthesized_expression "(Output_section_incremental_inputs<32,_true> *)" ( (comma_expression "Output_section_incremental_inputs<32,_true> *" (binary_expression "Output_section_incremental_inputs<32" identifier < number_literal) , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(in_RDX->super_Output_section_data_build)" ( (field_expression "in_RDX->super_Output_section_data_build" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "this_00 = pOVar7;" (assignment_expression "this_00 = pOVar7" identifier = identifier) ;) (if_statement "if ((-1 < lVar4) &&\n         (in_RDX = (Output_data_space *)\n                   ((long)&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data +\n                   lVar4), (long)in_RDX <= (long)in_RCX)) {\n        uVar2 = this->symtab_->output_count_;\n        uVar13 = (ulong)uVar2 * 4;\n        this_00 = (Output_section_incremental_inputs<32,_true> *)operator_new__(uVar13);\n        memset(this_00,0,uVar13);\n        if ((pSVar15->key_to_offset_).size_ < pIVar3->command_line_key_) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar13 = pIVar3->command_line_key_ - 1;\n        uVar8 = *(undefined8 *)\n                 ((long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd].\n                        super__Vector_base<long_int,_std::allocator<long_int>_>._M_impl._M_start +\n                 (ulong)((uint)uVar13 & 0x1fff) * 8);\n        ppIVar9 = (pIVar3->inputs_).\n                  super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                  ._M_impl._M_finish;\n        ppIVar10 = (pIVar3->inputs_).\n                   super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                   ._M_impl._M_start;\n        oview[0] = '\0';\n        oview[1] = '\0';\n        oview[2] = '\0';\n        oview[3] = '\x02';\n        oview[0xc] = '\0';\n        oview[0xd] = '\0';\n        oview[0xe] = '\0';\n        oview[0xf] = '\0';\n        uVar12 = (uint)((long)ppIVar9 - (long)ppIVar10 >> 3);\n        *(uint *)(oview + 4) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n        uVar12 = (uint)uVar8;\n        *(uint *)(oview + 8) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n        puVar14 = write_input_files(this,oview,oview + 0x10,pSVar15);\n        puVar14 = write_info_blocks(this,oview,puVar14,pSVar15,(uint *)this_00,uVar2);\n        if ((long)puVar14 - (long)oview != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((Output_section_incremental_inputs<32,_true> *)((ulong)uVar2 << 2) != pOVar7) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        in_RCX = pSVar15;\n        if (uVar2 != 0) {\n          in_RCX = (Stringpool *)(ulong)(uVar2 - 1);\n          pSVar15 = (Stringpool *)0x0;\n          do {\n            uVar2 = *(uint *)((long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4);\n            *(uint *)(puVar6 + (long)pSVar15 * 4 + lVar4) =\n                 uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n            bVar16 = in_RCX != pSVar15;\n            pSVar15 = (Stringpool *)((long)&(pSVar15->string_set_)._M_h._M_buckets + 1);\n          } while (bVar16);\n        }\n        operator_delete__(this_00);\n        pOVar11 = pIVar3->got_plt_section_;\n        bVar1 = (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n        if ((bVar1 & 4) == 0) goto LAB_001a2b1e;\n        start = (Output_file *)\n                (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_;\n        if ((bVar1 & 2) == 0) goto LAB_001a2b06;\n        in_RDX = (Output_data_space *)\n                 (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.data_size_;\n        if ((-1 < (long)start) &&\n           ((long)&start->name_ + (long)&in_RDX->super_Output_section_data_build <= of->file_size_))\n        {\n          write_got_plt(this,of->base_ + (long)&start->name_,(off_t)in_RDX);\n          return;\n        }\n      }" if (parenthesized_expression "((-1 < lVar4) &&\n         (in_RDX = (Output_data_space *)\n                   ((long)&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data +\n                   lVar4), (long)in_RDX <= (long)in_RCX))" ( (binary_expression "(-1 < lVar4) &&\n         (in_RDX = (Output_data_space *)\n                   ((long)&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data +\n                   lVar4), (long)in_RDX <= (long)in_RCX)" (parenthesized_expression "(-1 < lVar4)" ( (binary_expression "-1 < lVar4" number_literal < identifier) )) && (parenthesized_expression "(in_RDX = (Output_data_space *)\n                   ((long)&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data +\n                   lVar4), (long)in_RDX <= (long)in_RCX)" ( (comma_expression "in_RDX = (Output_data_space *)\n                   ((long)&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data +\n                   lVar4), (long)in_RDX <= (long)in_RCX" (assignment_expression "in_RDX = (Output_data_space *)\n                   ((long)&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data +\n                   lVar4)" identifier = (cast_expression "(Output_data_space *)\n                   ((long)&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data +\n                   lVar4)" ( (type_descriptor "Output_data_space *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data +\n                   lVar4)" ( (binary_expression "(long)&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data +\n                   lVar4" (cast_expression "(long)&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data" & (field_expression "(pOVar7->super_Output_section_data).super_Output_data._vptr_Output_data" (field_expression "(pOVar7->super_Output_section_data).super_Output_data" (parenthesized_expression "(pOVar7->super_Output_section_data)" ( (field_expression "pOVar7->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + identifier) )))) , (binary_expression "(long)in_RDX <= (long)in_RCX" (cast_expression "(long)in_RDX" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) <= (cast_expression "(long)in_RCX" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ))) )) (compound_statement "{\n        uVar2 = this->symtab_->output_count_;\n        uVar13 = (ulong)uVar2 * 4;\n        this_00 = (Output_section_incremental_inputs<32,_true> *)operator_new__(uVar13);\n        memset(this_00,0,uVar13);\n        if ((pSVar15->key_to_offset_).size_ < pIVar3->command_line_key_) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar13 = pIVar3->command_line_key_ - 1;\n        uVar8 = *(undefined8 *)\n                 ((long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd].\n                        super__Vector_base<long_int,_std::allocator<long_int>_>._M_impl._M_start +\n                 (ulong)((uint)uVar13 & 0x1fff) * 8);\n        ppIVar9 = (pIVar3->inputs_).\n                  super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                  ._M_impl._M_finish;\n        ppIVar10 = (pIVar3->inputs_).\n                   super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                   ._M_impl._M_start;\n        oview[0] = '\0';\n        oview[1] = '\0';\n        oview[2] = '\0';\n        oview[3] = '\x02';\n        oview[0xc] = '\0';\n        oview[0xd] = '\0';\n        oview[0xe] = '\0';\n        oview[0xf] = '\0';\n        uVar12 = (uint)((long)ppIVar9 - (long)ppIVar10 >> 3);\n        *(uint *)(oview + 4) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n        uVar12 = (uint)uVar8;\n        *(uint *)(oview + 8) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n        puVar14 = write_input_files(this,oview,oview + 0x10,pSVar15);\n        puVar14 = write_info_blocks(this,oview,puVar14,pSVar15,(uint *)this_00,uVar2);\n        if ((long)puVar14 - (long)oview != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((Output_section_incremental_inputs<32,_true> *)((ulong)uVar2 << 2) != pOVar7) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        in_RCX = pSVar15;\n        if (uVar2 != 0) {\n          in_RCX = (Stringpool *)(ulong)(uVar2 - 1);\n          pSVar15 = (Stringpool *)0x0;\n          do {\n            uVar2 = *(uint *)((long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4);\n            *(uint *)(puVar6 + (long)pSVar15 * 4 + lVar4) =\n                 uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n            bVar16 = in_RCX != pSVar15;\n            pSVar15 = (Stringpool *)((long)&(pSVar15->string_set_)._M_h._M_buckets + 1);\n          } while (bVar16);\n        }\n        operator_delete__(this_00);\n        pOVar11 = pIVar3->got_plt_section_;\n        bVar1 = (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n        if ((bVar1 & 4) == 0) goto LAB_001a2b1e;\n        start = (Output_file *)\n                (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_;\n        if ((bVar1 & 2) == 0) goto LAB_001a2b06;\n        in_RDX = (Output_data_space *)\n                 (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.data_size_;\n        if ((-1 < (long)start) &&\n           ((long)&start->name_ + (long)&in_RDX->super_Output_section_data_build <= of->file_size_))\n        {\n          write_got_plt(this,of->base_ + (long)&start->name_,(off_t)in_RDX);\n          return;\n        }\n      }" { (expression_statement "uVar2 = this->symtab_->output_count_;" (assignment_expression "uVar2 = this->symtab_->output_count_" identifier = (field_expression "this->symtab_->output_count_" (field_expression "this->symtab_" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "uVar13 = (ulong)uVar2 * 4;" (assignment_expression "uVar13 = (ulong)uVar2 * 4" identifier = (binary_expression "(ulong)uVar2 * 4" (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ;) (expression_statement "this_00 = (Output_section_incremental_inputs<32,_true> *)operator_new__(uVar13);" (assignment_expression "this_00 = (Output_section_incremental_inputs<32,_true> *)operator_new__(uVar13)" identifier = (parenthesized_expression "(Output_section_incremental_inputs<32,_true> *)operator_new__(uVar13)" ( (comma_expression "Output_section_incremental_inputs<32,_true> *)operator_new__(uVar13)" (binary_expression "Output_section_incremental_inputs<32" identifier < number_literal) , (binary_expression "_true> *)operator_new__(uVar13)" identifier > (pointer_expression "*)operator_new__(uVar13)" * (ERROR ")" )) (call_expression "operator_new__(uVar13)" identifier (argument_list "(uVar13)" ( identifier )))))) ))) ;) (expression_statement "memset(this_00,0,uVar13);" (call_expression "memset(this_00,0,uVar13)" identifier (argument_list "(this_00,0,uVar13)" ( identifier , number_literal , identifier ))) ;) (if_statement "if ((pSVar15->key_to_offset_).size_ < pIVar3->command_line_key_) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }" if (parenthesized_expression "((pSVar15->key_to_offset_).size_ < pIVar3->command_line_key_)" ( (binary_expression "(pSVar15->key_to_offset_).size_ < pIVar3->command_line_key_" (field_expression "(pSVar15->key_to_offset_).size_" (parenthesized_expression "(pSVar15->key_to_offset_)" ( (field_expression "pSVar15->key_to_offset_" identifier -> field_identifier) )) . field_identifier) < (field_expression "pIVar3->command_line_key_" identifier -> field_identifier)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");" (call_expression "do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key")" identifier (argument_list "("../../gold/stringpool.h",0x108,"get_offset_from_key")" ( (string_literal ""../../gold/stringpool.h"" " string_content ") , number_literal , (string_literal ""get_offset_from_key"" " string_content ") ))) ;) })) (expression_statement "uVar13 = pIVar3->command_line_key_ - 1;" (assignment_expression "uVar13 = pIVar3->command_line_key_ - 1" identifier = (binary_expression "pIVar3->command_line_key_ - 1" (field_expression "pIVar3->command_line_key_" identifier -> field_identifier) - number_literal)) ;) (expression_statement "uVar8 = *(undefined8 *)\n                 ((long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd].\n                        super__Vector_base<long_int,_std::allocator<long_int>_>._M_impl._M_start +\n                 (ulong)((uint)uVar13 & 0x1fff) * 8);" (assignment_expression "uVar8 = *(undefined8 *)\n                 ((long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd].\n                        super__Vector_base<long_int,_std::allocator<long_int>_>._M_impl._M_start +\n                 (ulong)((uint)uVar13 & 0x1fff) * 8)" identifier = (pointer_expression "*(undefined8 *)\n                 ((long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd].\n                        super__Vector_base<long_int,_std::allocator<long_int>_>._M_impl._M_start +\n                 (ulong)((uint)uVar13 & 0x1fff) * 8)" * (cast_expression "(undefined8 *)\n                 ((long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd].\n                        super__Vector_base<long_int,_std::allocator<long_int>_>._M_impl._M_start +\n                 (ulong)((uint)uVar13 & 0x1fff) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd].\n                        super__Vector_base<long_int,_std::allocator<long_int>_>._M_impl._M_start +\n                 (ulong)((uint)uVar13 & 0x1fff) * 8)" ( (ERROR "(long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd].\n                        super__Vector_base<long_int,_std::" (comma_expression "(long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base<std::vector<long_int,_std" (binary_expression "(long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base<std::vector<long_int" (binary_expression "(long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base<std" (cast_expression "(long)(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(pSVar15->key_to_offset_).chunks_.\n                        super__Vector_base" (field_expression "(pSVar15->key_to_offset_).chunks_" (parenthesized_expression "(pSVar15->key_to_offset_)" ( (field_expression "pSVar15->key_to_offset_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) < identifier) (ERROR "::vector" : : identifier) < identifier) , identifier) : : (binary_expression "allocator<long_int>_>,_std" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "vector<long_int,_std" (binary_expression "vector<long_int" identifier < identifier) , identifier) : : (comma_expression "allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd].\n                        super__Vector_base<long_int,_std" (binary_expression "allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd].\n                        super__Vector_base<long_int" (field_expression "allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd].\n                        super__Vector_base" (subscript_expression "allocator<long_int>_>_>_>\n                        ._M_impl._M_start[uVar13 >> 0xd]" (field_expression "allocator<long_int>_>_>_>\n                        ._M_impl._M_start" (field_expression "allocator<long_int>_>_>_>\n                        ._M_impl" (binary_expression "allocator<long_int>_>_>_" (binary_expression "allocator<long_int>_>_" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ (binary_expression "uVar13 >> 0xd" identifier >> number_literal) ]) . field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>._M_impl._M_start +\n                 (ulong)((uint)uVar13 & 0x1fff) * 8" (field_expression "allocator<long_int>_>._M_impl._M_start" (field_expression "allocator<long_int>_>._M_impl" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) + (binary_expression "(ulong)((uint)uVar13 & 0x1fff) * 8" (call_expression "(ulong)((uint)uVar13 & 0x1fff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)uVar13 & 0x1fff)" ( (binary_expression "(uint)uVar13 & 0x1fff" (cast_expression "(uint)uVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "ppIVar9 = (pIVar3->inputs_).\n                  super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                  ._M_impl._M_finish;" (field_expression "ppIVar9 = (pIVar3->inputs_).\n                  super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                  ._M_impl._M_finish" (field_expression "ppIVar9 = (pIVar3->inputs_).\n                  super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                  ._M_impl" (binary_expression "ppIVar9 = (pIVar3->inputs_).\n                  super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_" (binary_expression "ppIVar9 = (pIVar3->inputs_).\n                  super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold" (binary_expression "ppIVar9 = (pIVar3->inputs_).\n                  super__Vector_base<gold::Incremental_input_entry*,_std" (assignment_expression "ppIVar9 = (pIVar3->inputs_).\n                  super__Vector_base<gold" identifier = (binary_expression "(pIVar3->inputs_).\n                  super__Vector_base<gold" (field_expression "(pIVar3->inputs_).\n                  super__Vector_base" (parenthesized_expression "(pIVar3->inputs_)" ( (field_expression "pIVar3->inputs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Incremental_input_entry" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Incremental_input_entry" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "ppIVar10 = (pIVar3->inputs_).\n                   super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                   ._M_impl._M_start;" (field_expression "ppIVar10 = (pIVar3->inputs_).\n                   super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                   ._M_impl._M_start" (field_expression "ppIVar10 = (pIVar3->inputs_).\n                   super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n                   ._M_impl" (binary_expression "ppIVar10 = (pIVar3->inputs_).\n                   super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_" (binary_expression "ppIVar10 = (pIVar3->inputs_).\n                   super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold" (binary_expression "ppIVar10 = (pIVar3->inputs_).\n                   super__Vector_base<gold::Incremental_input_entry*,_std" (assignment_expression "ppIVar10 = (pIVar3->inputs_).\n                   super__Vector_base<gold" identifier = (binary_expression "(pIVar3->inputs_).\n                   super__Vector_base<gold" (field_expression "(pIVar3->inputs_).\n                   super__Vector_base" (parenthesized_expression "(pIVar3->inputs_)" ( (field_expression "pIVar3->inputs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Incremental_input_entry" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Incremental_input_entry" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "oview[0] = '\0';" (assignment_expression "oview[0] = '\0'" (subscript_expression "oview[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "oview[1] = '\0';" (assignment_expression "oview[1] = '\0'" (subscript_expression "oview[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "oview[2] = '\0';" (assignment_expression "oview[2] = '\0'" (subscript_expression "oview[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "oview[3] = '\x02';" (assignment_expression "oview[3] = '\x02'" (subscript_expression "oview[3]" identifier [ number_literal ]) = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "oview[0xc] = '\0';" (assignment_expression "oview[0xc] = '\0'" (subscript_expression "oview[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "oview[0xd] = '\0';" (assignment_expression "oview[0xd] = '\0'" (subscript_expression "oview[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "oview[0xe] = '\0';" (assignment_expression "oview[0xe] = '\0'" (subscript_expression "oview[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "oview[0xf] = '\0';" (assignment_expression "oview[0xf] = '\0'" (subscript_expression "oview[0xf]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar12 = (uint)((long)ppIVar9 - (long)ppIVar10 >> 3);" (assignment_expression "uVar12 = (uint)((long)ppIVar9 - (long)ppIVar10 >> 3)" identifier = (call_expression "(uint)((long)ppIVar9 - (long)ppIVar10 >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((long)ppIVar9 - (long)ppIVar10 >> 3)" ( (binary_expression "(long)ppIVar9 - (long)ppIVar10 >> 3" (binary_expression "(long)ppIVar9 - (long)ppIVar10" (cast_expression "(long)ppIVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)ppIVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) )))) ;) (expression_statement "*(uint *)(oview + 4) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;" (assignment_expression "*(uint *)(oview + 4) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (pointer_expression "*(uint *)(oview + 4)" * (cast_expression "(uint *)(oview + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(oview + 4)" ( (binary_expression "oview + 4" identifier + number_literal) )))) = (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar12 = (uint)uVar8;" (assignment_expression "uVar12 = (uint)uVar8" identifier = (cast_expression "(uint)uVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)(oview + 8) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;" (assignment_expression "*(uint *)(oview + 8) =\n             uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (pointer_expression "*(uint *)(oview + 8)" * (cast_expression "(uint *)(oview + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(oview + 8)" ( (binary_expression "oview + 8" identifier + number_literal) )))) = (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar14 = write_input_files(this,oview,oview + 0x10,pSVar15);" (assignment_expression "puVar14 = write_input_files(this,oview,oview + 0x10,pSVar15)" identifier = (call_expression "write_input_files(this,oview,oview + 0x10,pSVar15)" identifier (argument_list "(this,oview,oview + 0x10,pSVar15)" ( identifier , identifier , (binary_expression "oview + 0x10" identifier + number_literal) , identifier )))) ;) (expression_statement "puVar14 = write_info_blocks(this,oview,puVar14,pSVar15,(uint *)this_00,uVar2);" (assignment_expression "puVar14 = write_info_blocks(this,oview,puVar14,pSVar15,(uint *)this_00,uVar2)" identifier = (call_expression "write_info_blocks(this,oview,puVar14,pSVar15,(uint *)this_00,uVar2)" identifier (argument_list "(this,oview,puVar14,pSVar15,(uint *)this_00,uVar2)" ( identifier , identifier , identifier , identifier , (cast_expression "(uint *)this_00" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if ((long)puVar14 - (long)oview != lVar5) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59c,"do_write");\n        }" if (parenthesized_expression "((long)puVar14 - (long)oview != lVar5)" ( (binary_expression "(long)puVar14 - (long)oview != lVar5" (binary_expression "(long)puVar14 - (long)oview" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)oview" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59c,"do_write");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",0x59c,"do_write");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",0x59c,"do_write")" identifier (argument_list "("../../gold/incremental.cc",0x59c,"do_write")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;) })) (if_statement "if ((Output_section_incremental_inputs<32,_true> *)((ulong)uVar2 << 2) != pOVar7) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59f,"do_write");\n        }" if (parenthesized_expression "((Output_section_incremental_inputs<32,_true> *)((ulong)uVar2 << 2) != pOVar7)" ( (binary_expression "(Output_section_incremental_inputs<32,_true> *)((ulong)uVar2 << 2) != pOVar7" (call_expression "(Output_section_incremental_inputs<32,_true> *)((ulong)uVar2 << 2)" (parenthesized_expression "(Output_section_incremental_inputs<32,_true> *)" ( (comma_expression "Output_section_incremental_inputs<32,_true> *" (binary_expression "Output_section_incremental_inputs<32" identifier < number_literal) , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "((ulong)uVar2 << 2)" ( (binary_expression "(ulong)uVar2 << 2" (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) << number_literal) ))) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x59f,"do_write");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",0x59f,"do_write");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",0x59f,"do_write")" identifier (argument_list "("../../gold/incremental.cc",0x59f,"do_write")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;) })) (expression_statement "in_RCX = pSVar15;" (assignment_expression "in_RCX = pSVar15" identifier = identifier) ;) (if_statement "if (uVar2 != 0) {\n          in_RCX = (Stringpool *)(ulong)(uVar2 - 1);\n          pSVar15 = (Stringpool *)0x0;\n          do {\n            uVar2 = *(uint *)((long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4);\n            *(uint *)(puVar6 + (long)pSVar15 * 4 + lVar4) =\n                 uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n            bVar16 = in_RCX != pSVar15;\n            pSVar15 = (Stringpool *)((long)&(pSVar15->string_set_)._M_h._M_buckets + 1);\n          } while (bVar16);\n        }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          in_RCX = (Stringpool *)(ulong)(uVar2 - 1);\n          pSVar15 = (Stringpool *)0x0;\n          do {\n            uVar2 = *(uint *)((long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4);\n            *(uint *)(puVar6 + (long)pSVar15 * 4 + lVar4) =\n                 uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n            bVar16 = in_RCX != pSVar15;\n            pSVar15 = (Stringpool *)((long)&(pSVar15->string_set_)._M_h._M_buckets + 1);\n          } while (bVar16);\n        }" { (expression_statement "in_RCX = (Stringpool *)(ulong)(uVar2 - 1);" (assignment_expression "in_RCX = (Stringpool *)(ulong)(uVar2 - 1)" identifier = (cast_expression "(Stringpool *)(ulong)(uVar2 - 1)" ( (type_descriptor "Stringpool *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(uVar2 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar2 - 1)" ( (binary_expression "uVar2 - 1" identifier - number_literal) ))))) ;) (expression_statement "pSVar15 = (Stringpool *)0x0;" (assignment_expression "pSVar15 = (Stringpool *)0x0" identifier = (cast_expression "(Stringpool *)0x0" ( (type_descriptor "Stringpool *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            uVar2 = *(uint *)((long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4);\n            *(uint *)(puVar6 + (long)pSVar15 * 4 + lVar4) =\n                 uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n            bVar16 = in_RCX != pSVar15;\n            pSVar15 = (Stringpool *)((long)&(pSVar15->string_set_)._M_h._M_buckets + 1);\n          } while (bVar16);" do (compound_statement "{\n            uVar2 = *(uint *)((long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4);\n            *(uint *)(puVar6 + (long)pSVar15 * 4 + lVar4) =\n                 uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n            bVar16 = in_RCX != pSVar15;\n            pSVar15 = (Stringpool *)((long)&(pSVar15->string_set_)._M_h._M_buckets + 1);\n          }" { (expression_statement "uVar2 = *(uint *)((long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4);" (assignment_expression "uVar2 = *(uint *)((long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4)" identifier = (pointer_expression "*(uint *)((long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4)" * (cast_expression "(uint *)((long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4)" ( (binary_expression "(long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data + (long)pSVar15 * 4" (cast_expression "(long)&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data" & (field_expression "(this_00->super_Output_section_data).super_Output_data.\n                                     _vptr_Output_data" (field_expression "(this_00->super_Output_section_data).super_Output_data" (parenthesized_expression "(this_00->super_Output_section_data)" ( (field_expression "this_00->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + (binary_expression "(long)pSVar15 * 4" (cast_expression "(long)pSVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) ))))) ;) (expression_statement "*(uint *)(puVar6 + (long)pSVar15 * 4 + lVar4) =\n                 uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "*(uint *)(puVar6 + (long)pSVar15 * 4 + lVar4) =\n                 uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (pointer_expression "*(uint *)(puVar6 + (long)pSVar15 * 4 + lVar4)" * (cast_expression "(uint *)(puVar6 + (long)pSVar15 * 4 + lVar4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + (long)pSVar15 * 4 + lVar4)" ( (binary_expression "puVar6 + (long)pSVar15 * 4 + lVar4" (binary_expression "puVar6 + (long)pSVar15 * 4" identifier + (binary_expression "(long)pSVar15 * 4" (cast_expression "(long)pSVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + identifier) )))) = (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x18" identifier << number_literal))) ;) (expression_statement "bVar16 = in_RCX != pSVar15;" (assignment_expression "bVar16 = in_RCX != pSVar15" identifier = (binary_expression "in_RCX != pSVar15" identifier != identifier)) ;) (expression_statement "pSVar15 = (Stringpool *)((long)&(pSVar15->string_set_)._M_h._M_buckets + 1);" (assignment_expression "pSVar15 = (Stringpool *)((long)&(pSVar15->string_set_)._M_h._M_buckets + 1)" identifier = (cast_expression "(Stringpool *)((long)&(pSVar15->string_set_)._M_h._M_buckets + 1)" ( (type_descriptor "Stringpool *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(pSVar15->string_set_)._M_h._M_buckets + 1)" ( (binary_expression "(long)&(pSVar15->string_set_)._M_h._M_buckets + 1" (cast_expression "(long)&(pSVar15->string_set_)._M_h._M_buckets" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(pSVar15->string_set_)._M_h._M_buckets" & (field_expression "(pSVar15->string_set_)._M_h._M_buckets" (field_expression "(pSVar15->string_set_)._M_h" (parenthesized_expression "(pSVar15->string_set_)" ( (field_expression "pSVar15->string_set_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) })) (expression_statement "operator_delete__(this_00);" (call_expression "operator_delete__(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;) (expression_statement "pOVar11 = pIVar3->got_plt_section_;" (assignment_expression "pOVar11 = pIVar3->got_plt_section_" identifier = (field_expression "pIVar3->got_plt_section_" identifier -> field_identifier)) ;) (expression_statement "bVar1 = (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;" (assignment_expression "bVar1 = (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20" identifier = (field_expression "(pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20" (field_expression "(pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data" (field_expression "(pOVar11->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar11->super_Output_section_data_build)" ( (field_expression "pOVar11->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if ((bVar1 & 4) == 0) goto LAB_001a2b1e;" if (parenthesized_expression "((bVar1 & 4) == 0)" ( (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a2b1e;" goto statement_identifier ;)) (expression_statement "start = (Output_file *)\n                (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_;" (assignment_expression "start = (Output_file *)\n                (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_" identifier = (cast_expression "(Output_file *)\n                (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.offset_" (field_expression "(pOVar11->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data" (field_expression "(pOVar11->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar11->super_Output_section_data_build)" ( (field_expression "pOVar11->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (if_statement "if ((bVar1 & 2) == 0) goto LAB_001a2b06;" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a2b06;" goto statement_identifier ;)) (expression_statement "in_RDX = (Output_data_space *)\n                 (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.data_size_;" (assignment_expression "in_RDX = (Output_data_space *)\n                 (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.data_size_" identifier = (cast_expression "(Output_data_space *)\n                 (pOVar11->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.data_size_" ( (type_descriptor "Output_data_space *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pOVar11->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data.data_size_" (field_expression "(pOVar11->super_Output_section_data_build).super_Output_section_data.\n                 super_Output_data" (field_expression "(pOVar11->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar11->super_Output_section_data_build)" ( (field_expression "pOVar11->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (if_statement "if ((-1 < (long)start) &&\n           ((long)&start->name_ + (long)&in_RDX->super_Output_section_data_build <= of->file_size_))\n        {\n          write_got_plt(this,of->base_ + (long)&start->name_,(off_t)in_RDX);\n          return;\n        }" if (parenthesized_expression "((-1 < (long)start) &&\n           ((long)&start->name_ + (long)&in_RDX->super_Output_section_data_build <= of->file_size_))" ( (binary_expression "(-1 < (long)start) &&\n           ((long)&start->name_ + (long)&in_RDX->super_Output_section_data_build <= of->file_size_)" (parenthesized_expression "(-1 < (long)start)" ( (binary_expression "-1 < (long)start" number_literal < (cast_expression "(long)start" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) && (parenthesized_expression "((long)&start->name_ + (long)&in_RDX->super_Output_section_data_build <= of->file_size_)" ( (binary_expression "(long)&start->name_ + (long)&in_RDX->super_Output_section_data_build <= of->file_size_" (binary_expression "(long)&start->name_ + (long)&in_RDX->super_Output_section_data_build" (cast_expression "(long)&start->name_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&start->name_" & (field_expression "start->name_" identifier -> field_identifier))) + (cast_expression "(long)&in_RDX->super_Output_section_data_build" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&in_RDX->super_Output_section_data_build" & (field_expression "in_RDX->super_Output_section_data_build" identifier -> field_identifier)))) <= (field_expression "of->file_size_" identifier -> field_identifier)) ))) )) (compound_statement "{\n          write_got_plt(this,of->base_ + (long)&start->name_,(off_t)in_RDX);\n          return;\n        }" { (expression_statement "write_got_plt(this,of->base_ + (long)&start->name_,(off_t)in_RDX);" (call_expression "write_got_plt(this,of->base_ + (long)&start->name_,(off_t)in_RDX)" identifier (argument_list "(this,of->base_ + (long)&start->name_,(off_t)in_RDX)" ( identifier , (binary_expression "of->base_ + (long)&start->name_" (field_expression "of->base_" identifier -> field_identifier) + (cast_expression "(long)&start->name_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&start->name_" & (field_expression "start->name_" identifier -> field_identifier)))) , (cast_expression "(off_t)in_RDX" ( (type_descriptor "off_t" type_identifier) ) identifier) ))) ;) (return_statement "return;" return ;) })) })) })) comment (labeled_statement "Output_file::get_output_view\n              ((Output_file *)this_00,(off_t)start,(size_t)in_RDX,(Output_file *)in_RCX);" statement_identifier : (ERROR ":" :) (expression_statement "get_output_view\n              ((Output_file *)this_00,(off_t)start,(size_t)in_RDX,(Output_file *)in_RCX);" (call_expression "get_output_view\n              ((Output_file *)this_00,(off_t)start,(size_t)in_RDX,(Output_file *)in_RCX)" identifier (argument_list "((Output_file *)this_00,(off_t)start,(size_t)in_RDX,(Output_file *)in_RCX)" ( (cast_expression "(Output_file *)this_00" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(off_t)start" ( (type_descriptor "off_t" type_identifier) ) identifier) , (cast_expression "(size_t)in_RDX" ( (type_descriptor "size_t" primitive_type) ) identifier) , (cast_expression "(Output_file *)in_RCX" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) })) (labeled_statement "LAB_001a2b1e:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/output.h",0xe3,"offset");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xe3,"offset");" (call_expression "do_gold_unreachable("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;)) (ERROR "}" }))
(translation_unit "void FUN_001a2900(long param_1,long param_2)\n\n{\n  size_t __n;\n  uint uVar1;\n  long *plVar2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  uint uVar9;\n  void *__s;\n  ulong uVar10;\n  undefined8 uVar11;\n  long lVar12;\n  undefined4 *puVar13;\n  bool bVar14;\n  \n  plVar2 = *(long **)(param_1 + 0x38);\n  lVar12 = plVar2[8];\n  if ((*(byte *)(param_1 + 0x20) & 4) != 0) {\n    lVar3 = *(long *)(param_1 + 0x18);\n    if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    \n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar4 = *(long *)(param_1 + 0x10);\n    if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }\n                    \n    FUN_00182e30();\n  }\nLAB_001a2b1e:\n                    \n  FUN_0017c650("../../gold/output.h",0xe3,"offset");\n}\n\n" (function_definition "void FUN_001a2900(long param_1,long param_2)\n\n{\n  size_t __n;\n  uint uVar1;\n  long *plVar2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  uint uVar9;\n  void *__s;\n  ulong uVar10;\n  undefined8 uVar11;\n  long lVar12;\n  undefined4 *puVar13;\n  bool bVar14;\n  \n  plVar2 = *(long **)(param_1 + 0x38);\n  lVar12 = plVar2[8];\n  if ((*(byte *)(param_1 + 0x20) & 4) != 0) {\n    lVar3 = *(long *)(param_1 + 0x18);\n    if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    \n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar4 = *(long *)(param_1 + 0x10);\n    if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }\n                    \n    FUN_00182e30();\n  }\nLAB_001a2b1e:\n                    \n  FUN_0017c650("../../gold/output.h",0xe3,"offset");\n}" primitive_type (function_declarator "FUN_001a2900(long param_1,long param_2)" identifier (parameter_list "(long param_1,long param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  size_t __n;\n  uint uVar1;\n  long *plVar2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  uint uVar9;\n  void *__s;\n  ulong uVar10;\n  undefined8 uVar11;\n  long lVar12;\n  undefined4 *puVar13;\n  bool bVar14;\n  \n  plVar2 = *(long **)(param_1 + 0x38);\n  lVar12 = plVar2[8];\n  if ((*(byte *)(param_1 + 0x20) & 4) != 0) {\n    lVar3 = *(long *)(param_1 + 0x18);\n    if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    \n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar4 = *(long *)(param_1 + 0x10);\n    if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }\n                    \n    FUN_00182e30();\n  }\nLAB_001a2b1e:\n                    \n  FUN_0017c650("../../gold/output.h",0xe3,"offset");\n}" { (declaration "size_t __n;" primitive_type identifier ;) (declaration "uint uVar1;" type_identifier identifier ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "bool bVar14;" primitive_type identifier ;) (expression_statement "plVar2 = *(long **)(param_1 + 0x38);" (assignment_expression "plVar2 = *(long **)(param_1 + 0x38)" identifier = (pointer_expression "*(long **)(param_1 + 0x38)" * (cast_expression "(long **)(param_1 + 0x38)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "lVar12 = plVar2[8];" (assignment_expression "lVar12 = plVar2[8]" identifier = (subscript_expression "plVar2[8]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(param_1 + 0x20) & 4) != 0) {\n    lVar3 = *(long *)(param_1 + 0x18);\n    if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    \n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar4 = *(long *)(param_1 + 0x10);\n    if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }\n                    \n    FUN_00182e30();\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 0x20) & 4) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0x20) & 4) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x20) & 4)" ( (binary_expression "*(byte *)(param_1 + 0x20) & 4" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    lVar3 = *(long *)(param_1 + 0x18);\n    if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    \n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar4 = *(long *)(param_1 + 0x10);\n    if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }\n                    \n    FUN_00182e30();\n  }" { (expression_statement "lVar3 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    \n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x20) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x20) & 2" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001a2b06:\n                    \n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }" { (labeled_statement "LAB_001a2b06:\n                    \n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");" statement_identifier : (expression_statement "FUN_0017c650("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0017c650("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;)) })) (expression_statement "lVar4 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar4 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }" if (parenthesized_expression "((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10)))" ( (binary_expression "(-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))" (parenthesized_expression "(-1 < lVar3)" ( (binary_expression "-1 < lVar3" number_literal < identifier) )) && (parenthesized_expression "(lVar4 + lVar3 <= *(long *)(param_2 + 0x10))" ( (binary_expression "lVar4 + lVar3 <= *(long *)(param_2 + 0x10)" (binary_expression "lVar4 + lVar3" identifier + identifier) <= (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ))) )) (compound_statement "{\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }" { (expression_statement "lVar5 = plVar2[0xc];" (assignment_expression "lVar5 = plVar2[0xc]" identifier = (subscript_expression "plVar2[0xc]" identifier [ number_literal ])) ;) (expression_statement "lVar6 = *(long *)(param_2 + 0x18);" (assignment_expression "lVar6 = *(long *)(param_2 + 0x18)" identifier = (pointer_expression "*(long *)(param_2 + 0x18)" * (cast_expression "(long *)(param_2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "puVar13 = (undefined4 *)(lVar3 + lVar6);" (assignment_expression "puVar13 = (undefined4 *)(lVar3 + lVar6)" identifier = (cast_expression "(undefined4 *)(lVar3 + lVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + lVar6)" ( (binary_expression "lVar3 + lVar6" identifier + identifier) )))) ;) (if_statement "if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;" if (parenthesized_expression "((*(byte *)(lVar5 + 0x20) & 4) == 0)" ( (binary_expression "(*(byte *)(lVar5 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x20) & 4)" ( (binary_expression "*(byte *)(lVar5 + 0x20) & 4" (pointer_expression "*(byte *)(lVar5 + 0x20)" * (cast_expression "(byte *)(lVar5 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a2b1e;" goto statement_identifier ;)) (expression_statement "lVar3 = *(long *)(lVar5 + 0x18);" (assignment_expression "lVar3 = *(long *)(lVar5 + 0x18)" identifier = (pointer_expression "*(long *)(lVar5 + 0x18)" * (cast_expression "(long *)(lVar5 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x18)" ( (binary_expression "lVar5 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;" if (parenthesized_expression "((*(byte *)(lVar5 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar5 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar5 + 0x20) & 2" (pointer_expression "*(byte *)(lVar5 + 0x20)" * (cast_expression "(byte *)(lVar5 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a2b06;" goto statement_identifier ;)) (expression_statement "lVar5 = *(long *)(lVar5 + 0x10);" (assignment_expression "lVar5 = *(long *)(lVar5 + 0x10)" identifier = (pointer_expression "*(long *)(lVar5 + 0x10)" * (cast_expression "(long *)(lVar5 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }" if (parenthesized_expression "((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10)))" ( (binary_expression "(-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))" (parenthesized_expression "(-1 < lVar3)" ( (binary_expression "-1 < lVar3" number_literal < identifier) )) && (parenthesized_expression "(lVar5 + lVar3 <= *(long *)(param_2 + 0x10))" ( (binary_expression "lVar5 + lVar3 <= *(long *)(param_2 + 0x10)" (binary_expression "lVar5 + lVar3" identifier + identifier) <= (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ))) )) (compound_statement "{\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }" { (expression_statement "uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);" (assignment_expression "uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18)" identifier = (pointer_expression "*(uint *)(*(long *)(param_1 + 0x40) + 0x18)" * (cast_expression "(uint *)(*(long *)(param_1 + 0x40) + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x40) + 0x18)" ( (binary_expression "*(long *)(param_1 + 0x40) + 0x18" (pointer_expression "*(long *)(param_1 + 0x40)" * (cast_expression "(long *)(param_1 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "__n = (ulong)uVar1 * 4;" (assignment_expression "__n = (ulong)uVar1 * 4" identifier = (binary_expression "(ulong)uVar1 * 4" (cast_expression "(ulong)uVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ;) (expression_statement "__s = (void *)thunk_FUN_002d94a0(__n);" (assignment_expression "__s = (void *)thunk_FUN_002d94a0(__n)" identifier = (cast_expression "(void *)thunk_FUN_002d94a0(__n)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "thunk_FUN_002d94a0(__n)" identifier (argument_list "(__n)" ( identifier ))))) ;) (expression_statement "memset(__s,0,__n);" (call_expression "memset(__s,0,__n)" identifier (argument_list "(__s,0,__n)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }" if (parenthesized_expression "(*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7])" ( (binary_expression "*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]" (pointer_expression "*(ulong *)(lVar12 + 0x50)" * (cast_expression "(ulong *)(lVar12 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x50)" ( (binary_expression "lVar12 + 0x50" identifier + number_literal) )))) < (cast_expression "(ulong)plVar2[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "plVar2[7]" identifier [ number_literal ]))) )) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }" { (expression_statement "FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");" (call_expression "FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key")" identifier (argument_list "("../../gold/stringpool.h",0x108,"get_offset_from_key")" ( (string_literal ""../../gold/stringpool.h"" " string_content ") , number_literal , (string_literal ""get_offset_from_key"" " string_content ") ))) ;) })) (expression_statement "uVar10 = plVar2[7] - 1;" (assignment_expression "uVar10 = plVar2[7] - 1" identifier = (binary_expression "plVar2[7] - 1" (subscript_expression "plVar2[7]" identifier [ number_literal ]) - number_literal)) ;) (expression_statement "uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);" (assignment_expression "uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8)" identifier = (pointer_expression "*(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8)" * (cast_expression "(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8)" ( (binary_expression "*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8" (pointer_expression "*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18)" * (cast_expression "(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18)" ( (binary_expression "*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18" (pointer_expression "*(long *)(lVar12 + 0x38)" * (cast_expression "(long *)(lVar12 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x38)" ( (binary_expression "lVar12 + 0x38" identifier + number_literal) )))) + (binary_expression "(uVar10 >> 0xd) * 0x18" (parenthesized_expression "(uVar10 >> 0xd)" ( (binary_expression "uVar10 >> 0xd" identifier >> number_literal) )) * number_literal)) )))) + (binary_expression "(ulong)((uint)uVar10 & 0x1fff) * 8" (call_expression "(ulong)((uint)uVar10 & 0x1fff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)uVar10 & 0x1fff)" ( (binary_expression "(uint)uVar10 & 0x1fff" (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "lVar7 = plVar2[1];" (assignment_expression "lVar7 = plVar2[1]" identifier = (subscript_expression "plVar2[1]" identifier [ number_literal ])) ;) (expression_statement "lVar8 = *plVar2;" (assignment_expression "lVar8 = *plVar2" identifier = (pointer_expression "*plVar2" * identifier)) ;) (expression_statement "*puVar13 = 0x2000000;" (assignment_expression "*puVar13 = 0x2000000" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13[3] = 0;" (assignment_expression "puVar13[3] = 0" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = (uint)(lVar7 - lVar8 >> 3);" (assignment_expression "uVar9 = (uint)(lVar7 - lVar8 >> 3)" identifier = (call_expression "(uint)(lVar7 - lVar8 >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(lVar7 - lVar8 >> 3)" ( (binary_expression "lVar7 - lVar8 >> 3" (binary_expression "lVar7 - lVar8" identifier - identifier) >> number_literal) )))) ;) (expression_statement "puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;" (assignment_expression "puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar9 = (uint)uVar11;" (assignment_expression "uVar9 = (uint)uVar11" identifier = (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;" (assignment_expression "puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);" (assignment_expression "uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12)" identifier = (call_expression "FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12)" identifier (argument_list "(param_1,puVar13,puVar13 + 4,lVar12)" ( identifier , identifier , (binary_expression "puVar13 + 4" identifier + number_literal) , identifier )))) ;) (expression_statement "lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);" (assignment_expression "lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1)" identifier = (call_expression "FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1)" identifier (argument_list "(param_1,puVar13,uVar11,lVar12,__s,uVar1)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }" if (parenthesized_expression "(lVar12 - (long)puVar13 != lVar4)" ( (binary_expression "lVar12 - (long)puVar13 != lVar4" (binary_expression "lVar12 - (long)puVar13" identifier - (cast_expression "(long)puVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) != identifier) )) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }" { (expression_statement "FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");" (call_expression "FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write")" identifier (argument_list "("../../gold/incremental.cc",0x59c,"do_write")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;) })) (if_statement "if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }" if (parenthesized_expression "((ulong)uVar1 << 2 != lVar5)" ( (binary_expression "(ulong)uVar1 << 2 != lVar5" (binary_expression "(ulong)uVar1 << 2" (cast_expression "(ulong)uVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) << number_literal) != identifier) )) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }" { (expression_statement "FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");" (call_expression "FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write")" identifier (argument_list "("../../gold/incremental.cc",0x59f,"do_write")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;) })) (if_statement "if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);" do (compound_statement "{\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          }" { (expression_statement "uVar9 = *(uint *)((long)__s + uVar10 * 4);" (assignment_expression "uVar9 = *(uint *)((long)__s + uVar10 * 4)" identifier = (pointer_expression "*(uint *)((long)__s + uVar10 * 4)" * (cast_expression "(uint *)((long)__s + uVar10 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + uVar10 * 4)" ( (binary_expression "(long)__s + uVar10 * 4" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar10 * 4" identifier * number_literal)) ))))) ;) (expression_statement "*(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "*(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (pointer_expression "*(uint *)(lVar6 + lVar3 + uVar10 * 4)" * (cast_expression "(uint *)(lVar6 + lVar3 + uVar10 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + lVar3 + uVar10 * 4)" ( (binary_expression "lVar6 + lVar3 + uVar10 * 4" (binary_expression "lVar6 + lVar3" identifier + identifier) + (binary_expression "uVar10 * 4" identifier * number_literal)) )))) = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "bVar14 = uVar1 - 1 != uVar10;" (assignment_expression "bVar14 = uVar1 - 1 != uVar10" identifier = (binary_expression "uVar1 - 1 != uVar10" (binary_expression "uVar1 - 1" identifier - number_literal) != identifier)) ;) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) })) (expression_statement "thunk_FUN_002dac70(__s);" (call_expression "thunk_FUN_002dac70(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "lVar12 = plVar2[0xe];" (assignment_expression "lVar12 = plVar2[0xe]" identifier = (subscript_expression "plVar2[0xe]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;" if (parenthesized_expression "((*(byte *)(lVar12 + 0x20) & 4) == 0)" ( (binary_expression "(*(byte *)(lVar12 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar12 + 0x20) & 4)" ( (binary_expression "*(byte *)(lVar12 + 0x20) & 4" (pointer_expression "*(byte *)(lVar12 + 0x20)" * (cast_expression "(byte *)(lVar12 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x20)" ( (binary_expression "lVar12 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a2b1e;" goto statement_identifier ;)) (expression_statement "lVar3 = *(long *)(lVar12 + 0x18);" (assignment_expression "lVar3 = *(long *)(lVar12 + 0x18)" identifier = (pointer_expression "*(long *)(lVar12 + 0x18)" * (cast_expression "(long *)(lVar12 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x18)" ( (binary_expression "lVar12 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;" if (parenthesized_expression "((*(byte *)(lVar12 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar12 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar12 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar12 + 0x20) & 2" (pointer_expression "*(byte *)(lVar12 + 0x20)" * (cast_expression "(byte *)(lVar12 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x20)" ( (binary_expression "lVar12 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a2b06;" goto statement_identifier ;)) (if_statement "if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }" if (parenthesized_expression "((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10)))" ( (binary_expression "(-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))" (parenthesized_expression "(-1 < lVar3)" ( (binary_expression "-1 < lVar3" number_literal < identifier) )) && (parenthesized_expression "(*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))" ( (binary_expression "*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10)" (binary_expression "*(long *)(lVar12 + 0x10) + lVar3" (pointer_expression "*(long *)(lVar12 + 0x10)" * (cast_expression "(long *)(lVar12 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x10)" ( (binary_expression "lVar12 + 0x10" identifier + number_literal) )))) + identifier) <= (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ))) )) (compound_statement "{\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }" { (expression_statement "FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));" (call_expression "FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18))" identifier (argument_list "(param_1,lVar3 + *(long *)(param_2 + 0x18))" ( identifier , (binary_expression "lVar3 + *(long *)(param_2 + 0x18)" identifier + (pointer_expression "*(long *)(param_2 + 0x18)" * (cast_expression "(long *)(param_2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ))) ;) (return_statement "return;" return ;) })) })) })) (expression_statement "FUN_00182e30();" (call_expression "FUN_00182e30()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_001a2b1e:\n                    \n  FUN_0017c650("../../gold/output.h",0xe3,"offset");" statement_identifier : (expression_statement "FUN_0017c650("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_0017c650("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) <= (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) <= (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT)) )))) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + (binary_expression IDENT * LIT)) )))) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) != IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) <= (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) (return_statement return ;) })) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })))
(function_definition "void FUN_001a2900(long param_1,long param_2)\n\n{\n  size_t __n;\n  uint uVar1;\n  long *plVar2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  uint uVar9;\n  void *__s;\n  ulong uVar10;\n  undefined8 uVar11;\n  long lVar12;\n  undefined4 *puVar13;\n  bool bVar14;\n  \n  plVar2 = *(long **)(param_1 + 0x38);\n  lVar12 = plVar2[8];\n  if ((*(byte *)(param_1 + 0x20) & 4) != 0) {\n    lVar3 = *(long *)(param_1 + 0x18);\n    if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    \n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar4 = *(long *)(param_1 + 0x10);\n    if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }\n                    \n    FUN_00182e30();\n  }\nLAB_001a2b1e:\n                    \n  FUN_0017c650("../../gold/output.h",0xe3,"offset");\n}" (primitive_type "void") (function_declarator "FUN_001a2900(long param_1,long param_2)" (identifier "FUN_001a2900") (parameter_list "(long param_1,long param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) () ")"))) (compound_statement "{\n  size_t __n;\n  uint uVar1;\n  long *plVar2;\n  long lVar3;\n  long lVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  uint uVar9;\n  void *__s;\n  ulong uVar10;\n  undefined8 uVar11;\n  long lVar12;\n  undefined4 *puVar13;\n  bool bVar14;\n  \n  plVar2 = *(long **)(param_1 + 0x38);\n  lVar12 = plVar2[8];\n  if ((*(byte *)(param_1 + 0x20) & 4) != 0) {\n    lVar3 = *(long *)(param_1 + 0x18);\n    if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    \n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar4 = *(long *)(param_1 + 0x10);\n    if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }\n                    \n    FUN_00182e30();\n  }\nLAB_001a2b1e:\n                    \n  FUN_0017c650("../../gold/output.h",0xe3,"offset");\n}" ({ "{") (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "long *plVar2;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar2" (* "*") (identifier "plVar2")) (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "void *__s;" (primitive_type "void") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "ulong uVar10;" (type_identifier "ulong") (identifier "uVar10") (; ";")) (declaration "undefined8 uVar11;" (type_identifier "undefined8") (identifier "uVar11") (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "bool bVar14;" (primitive_type "bool") (identifier "bVar14") (; ";")) (expression_statement "plVar2 = *(long **)(param_1 + 0x38);" (assignment_expression "plVar2 = *(long **)(param_1 + 0x38)" (identifier "plVar2") (= "=") (pointer_expression "*(long **)(param_1 + 0x38)" (* "*") (cast_expression "(long **)(param_1 + 0x38)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "lVar12 = plVar2[8];" (assignment_expression "lVar12 = plVar2[8]" (identifier "lVar12") (= "=") (subscript_expression "plVar2[8]" (identifier "plVar2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 0x20) & 4) != 0) {\n    lVar3 = *(long *)(param_1 + 0x18);\n    if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    \n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar4 = *(long *)(param_1 + 0x10);\n    if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }\n                    \n    FUN_00182e30();\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x20) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x20) & 4) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x20) & 4)" (( "(") (binary_expression "*(byte *)(param_1 + 0x20) & 4" (pointer_expression "*(byte *)(param_1 + 0x20)" (* "*") (cast_expression "(byte *)(param_1 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    lVar3 = *(long *)(param_1 + 0x18);\n    if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    \n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar4 = *(long *)(param_1 + 0x10);\n    if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }\n                    \n    FUN_00182e30();\n  }" ({ "{") (expression_statement "lVar3 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x18)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x18)" (* "*") (cast_expression "(long *)(param_1 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\nLAB_001a2b06:\n                    \n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(param_1 + 0x20) & 2" (pointer_expression "*(byte *)(param_1 + 0x20)" (* "*") (cast_expression "(byte *)(param_1 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001a2b06:\n                    \n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n    }" ({ "{") (labeled_statement "LAB_001a2b06:\n                    \n      FUN_0017c650("../../gold/output.h",0xcf,"data_size");" (statement_identifier "LAB_001a2b06") (: ":") (expression_statement "FUN_0017c650("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0017c650("../../gold/output.h",0xcf,"data_size")" (identifier "FUN_0017c650") (argument_list "("../../gold/output.h",0xcf,"data_size")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xcf") (, ",") (string_literal ""data_size"" (" """) (string_content "data_size") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "lVar4 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar4 = *(long *)(param_1 + 0x10)" (identifier "lVar4") (= "=") (pointer_expression "*(long *)(param_1 + 0x10)" (* "*") (cast_expression "(long *)(param_1 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }" (if "if") (parenthesized_expression "((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10)))" (( "(") (binary_expression "(-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))" (parenthesized_expression "(-1 < lVar3)" (( "(") (binary_expression "-1 < lVar3" (number_literal "-1") (< "<") (identifier "lVar3")) () ")")) (&& "&&") (parenthesized_expression "(lVar4 + lVar3 <= *(long *)(param_2 + 0x10))" (( "(") (binary_expression "lVar4 + lVar3 <= *(long *)(param_2 + 0x10)" (binary_expression "lVar4 + lVar3" (identifier "lVar4") (+ "+") (identifier "lVar3")) (<= "<=") (pointer_expression "*(long *)(param_2 + 0x10)" (* "*") (cast_expression "(long *)(param_2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n      lVar5 = plVar2[0xc];\n      lVar6 = *(long *)(param_2 + 0x18);\n      puVar13 = (undefined4 *)(lVar3 + lVar6);\n      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n      lVar3 = *(long *)(lVar5 + 0x18);\n      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;\n      lVar5 = *(long *)(lVar5 + 0x10);\n      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }\n    }" ({ "{") (expression_statement "lVar5 = plVar2[0xc];" (assignment_expression "lVar5 = plVar2[0xc]" (identifier "lVar5") (= "=") (subscript_expression "plVar2[0xc]" (identifier "plVar2") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "lVar6 = *(long *)(param_2 + 0x18);" (assignment_expression "lVar6 = *(long *)(param_2 + 0x18)" (identifier "lVar6") (= "=") (pointer_expression "*(long *)(param_2 + 0x18)" (* "*") (cast_expression "(long *)(param_2 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "puVar13 = (undefined4 *)(lVar3 + lVar6);" (assignment_expression "puVar13 = (undefined4 *)(lVar3 + lVar6)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)(lVar3 + lVar6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + lVar6)" (( "(") (binary_expression "lVar3 + lVar6" (identifier "lVar3") (+ "+") (identifier "lVar6")) () ")")))) (; ";")) (if_statement "if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;" (if "if") (parenthesized_expression "((*(byte *)(lVar5 + 0x20) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(lVar5 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x20) & 4)" (( "(") (binary_expression "*(byte *)(lVar5 + 0x20) & 4" (pointer_expression "*(byte *)(lVar5 + 0x20)" (* "*") (cast_expression "(byte *)(lVar5 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x20)" (( "(") (binary_expression "lVar5 + 0x20" (identifier "lVar5") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001a2b1e;" (goto "goto") (statement_identifier "LAB_001a2b1e") (; ";"))) (expression_statement "lVar3 = *(long *)(lVar5 + 0x18);" (assignment_expression "lVar3 = *(long *)(lVar5 + 0x18)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(lVar5 + 0x18)" (* "*") (cast_expression "(long *)(lVar5 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x18)" (( "(") (binary_expression "lVar5 + 0x18" (identifier "lVar5") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;" (if "if") (parenthesized_expression "((*(byte *)(lVar5 + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(lVar5 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(lVar5 + 0x20) & 2" (pointer_expression "*(byte *)(lVar5 + 0x20)" (* "*") (cast_expression "(byte *)(lVar5 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x20)" (( "(") (binary_expression "lVar5 + 0x20" (identifier "lVar5") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001a2b06;" (goto "goto") (statement_identifier "LAB_001a2b06") (; ";"))) (expression_statement "lVar5 = *(long *)(lVar5 + 0x10);" (assignment_expression "lVar5 = *(long *)(lVar5 + 0x10)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(lVar5 + 0x10)" (* "*") (cast_expression "(long *)(lVar5 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x10)" (( "(") (binary_expression "lVar5 + 0x10" (identifier "lVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }" (if "if") (parenthesized_expression "((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10)))" (( "(") (binary_expression "(-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))" (parenthesized_expression "(-1 < lVar3)" (( "(") (binary_expression "-1 < lVar3" (number_literal "-1") (< "<") (identifier "lVar3")) () ")")) (&& "&&") (parenthesized_expression "(lVar5 + lVar3 <= *(long *)(param_2 + 0x10))" (( "(") (binary_expression "lVar5 + lVar3 <= *(long *)(param_2 + 0x10)" (binary_expression "lVar5 + lVar3" (identifier "lVar5") (+ "+") (identifier "lVar3")) (<= "<=") (pointer_expression "*(long *)(param_2 + 0x10)" (* "*") (cast_expression "(long *)(param_2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);\n        __n = (ulong)uVar1 * 4;\n        __s = (void *)thunk_FUN_002d94a0(__n);\n        memset(__s,0,__n);\n        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar10 = plVar2[7] - 1;\n        uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);\n        lVar7 = plVar2[1];\n        lVar8 = *plVar2;\n        *puVar13 = 0x2000000;\n        puVar13[3] = 0;\n        uVar9 = (uint)(lVar7 - lVar8 >> 3);\n        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar9 = (uint)uVar11;\n        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;\n        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);\n        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);\n        if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }\n        if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }\n        if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }\n        thunk_FUN_002dac70(__s);\n        lVar12 = plVar2[0xe];\n        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;\n        lVar3 = *(long *)(lVar12 + 0x18);\n        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;\n        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }\n      }" ({ "{") (expression_statement "uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);" (assignment_expression "uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(*(long *)(param_1 + 0x40) + 0x18)" (* "*") (cast_expression "(uint *)(*(long *)(param_1 + 0x40) + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x40) + 0x18)" (( "(") (binary_expression "*(long *)(param_1 + 0x40) + 0x18" (pointer_expression "*(long *)(param_1 + 0x40)" (* "*") (cast_expression "(long *)(param_1 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "__n = (ulong)uVar1 * 4;" (assignment_expression "__n = (ulong)uVar1 * 4" (identifier "__n") (= "=") (binary_expression "(ulong)uVar1 * 4" (cast_expression "(ulong)uVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar1")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "__s = (void *)thunk_FUN_002d94a0(__n);" (assignment_expression "__s = (void *)thunk_FUN_002d94a0(__n)" (identifier "__s") (= "=") (cast_expression "(void *)thunk_FUN_002d94a0(__n)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "thunk_FUN_002d94a0(__n)" (identifier "thunk_FUN_002d94a0") (argument_list "(__n)" (( "(") (identifier "__n") () ")"))))) (; ";")) (expression_statement "memset(__s,0,__n);" (call_expression "memset(__s,0,__n)" (identifier "memset") (argument_list "(__s,0,__n)" (( "(") (identifier "__s") (, ",") (number_literal "0") (, ",") (identifier "__n") () ")"))) (; ";")) (if_statement "if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }" (if "if") (parenthesized_expression "(*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7])" (( "(") (binary_expression "*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]" (pointer_expression "*(ulong *)(lVar12 + 0x50)" (* "*") (cast_expression "(ulong *)(lVar12 + 0x50)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x50)" (( "(") (binary_expression "lVar12 + 0x50" (identifier "lVar12") (+ "+") (number_literal "0x50")) () ")")))) (< "<") (cast_expression "(ulong)plVar2[7]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "plVar2[7]" (identifier "plVar2") ([ "[") (number_literal "7") (] "]")))) () ")")) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }" ({ "{") (expression_statement "FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");" (call_expression "FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key")" (identifier "FUN_0017c650") (argument_list "("../../gold/stringpool.h",0x108,"get_offset_from_key")" (( "(") (string_literal ""../../gold/stringpool.h"" (" """) (string_content "../../gold/stringpool.h") (" """)) (, ",") (number_literal "0x108") (, ",") (string_literal ""get_offset_from_key"" (" """) (string_content "get_offset_from_key") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = plVar2[7] - 1;" (assignment_expression "uVar10 = plVar2[7] - 1" (identifier "uVar10") (= "=") (binary_expression "plVar2[7] - 1" (subscript_expression "plVar2[7]" (identifier "plVar2") ([ "[") (number_literal "7") (] "]")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8);" (assignment_expression "uVar11 = *(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8)" (* "*") (cast_expression "(undefined8 *)\n                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8)" (( "(") (binary_expression "*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +\n                  (ulong)((uint)uVar10 & 0x1fff) * 8" (pointer_expression "*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18)" (* "*") (cast_expression "(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18)" (( "(") (binary_expression "*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18" (pointer_expression "*(long *)(lVar12 + 0x38)" (* "*") (cast_expression "(long *)(lVar12 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x38)" (( "(") (binary_expression "lVar12 + 0x38" (identifier "lVar12") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (binary_expression "(uVar10 >> 0xd) * 0x18" (parenthesized_expression "(uVar10 >> 0xd)" (( "(") (binary_expression "uVar10 >> 0xd" (identifier "uVar10") (>> ">>") (number_literal "0xd")) () ")")) (* "*") (number_literal "0x18"))) () ")")))) (+ "+") (binary_expression "(ulong)((uint)uVar10 & 0x1fff) * 8" (call_expression "(ulong)((uint)uVar10 & 0x1fff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((uint)uVar10 & 0x1fff)" (( "(") (binary_expression "(uint)uVar10 & 0x1fff" (cast_expression "(uint)uVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar10")) (& "&") (number_literal "0x1fff")) () ")"))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "lVar7 = plVar2[1];" (assignment_expression "lVar7 = plVar2[1]" (identifier "lVar7") (= "=") (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "lVar8 = *plVar2;" (assignment_expression "lVar8 = *plVar2" (identifier "lVar8") (= "=") (pointer_expression "*plVar2" (* "*") (identifier "plVar2"))) (; ";")) (expression_statement "*puVar13 = 0x2000000;" (assignment_expression "*puVar13 = 0x2000000" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (number_literal "0x2000000")) (; ";")) (expression_statement "puVar13[3] = 0;" (assignment_expression "puVar13[3] = 0" (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar9 = (uint)(lVar7 - lVar8 >> 3);" (assignment_expression "uVar9 = (uint)(lVar7 - lVar8 >> 3)" (identifier "uVar9") (= "=") (call_expression "(uint)(lVar7 - lVar8 >> 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(lVar7 - lVar8 >> 3)" (( "(") (binary_expression "lVar7 - lVar8 >> 3" (binary_expression "lVar7 - lVar8" (identifier "lVar7") (- "-") (identifier "lVar8")) (>> ">>") (number_literal "3")) () ")")))) (; ";")) (expression_statement "puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;" (assignment_expression "puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar9 << 0x18" (identifier "uVar9") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar9 = (uint)uVar11;" (assignment_expression "uVar9 = (uint)uVar11" (identifier "uVar9") (= "=") (cast_expression "(uint)uVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar11"))) (; ";")) (expression_statement "puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18\n        ;" (assignment_expression "puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar9 << 0x18" (identifier "uVar9") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);" (assignment_expression "uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12)" (identifier "uVar11") (= "=") (call_expression "FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12)" (identifier "FUN_001a18e0") (argument_list "(param_1,puVar13,puVar13 + 4,lVar12)" (( "(") (identifier "param_1") (, ",") (identifier "puVar13") (, ",") (binary_expression "puVar13 + 4" (identifier "puVar13") (+ "+") (number_literal "4")) (, ",") (identifier "lVar12") () ")")))) (; ";")) (expression_statement "lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);" (assignment_expression "lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1)" (identifier "lVar12") (= "=") (call_expression "FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1)" (identifier "FUN_001a1a30") (argument_list "(param_1,puVar13,uVar11,lVar12,__s,uVar1)" (( "(") (identifier "param_1") (, ",") (identifier "puVar13") (, ",") (identifier "uVar11") (, ",") (identifier "lVar12") (, ",") (identifier "__s") (, ",") (identifier "uVar1") () ")")))) (; ";")) (if_statement "if (lVar12 - (long)puVar13 != lVar4) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }" (if "if") (parenthesized_expression "(lVar12 - (long)puVar13 != lVar4)" (( "(") (binary_expression "lVar12 - (long)puVar13 != lVar4" (binary_expression "lVar12 - (long)puVar13" (identifier "lVar12") (- "-") (cast_expression "(long)puVar13" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar13"))) (!= "!=") (identifier "lVar4")) () ")")) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");\n        }" ({ "{") (expression_statement "FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");" (call_expression "FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write")" (identifier "FUN_0017c650") (argument_list "("../../gold/incremental.cc",0x59c,"do_write")" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "0x59c") (, ",") (string_literal ""do_write"" (" """) (string_content "do_write") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((ulong)uVar1 << 2 != lVar5) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }" (if "if") (parenthesized_expression "((ulong)uVar1 << 2 != lVar5)" (( "(") (binary_expression "(ulong)uVar1 << 2 != lVar5" (binary_expression "(ulong)uVar1 << 2" (cast_expression "(ulong)uVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar1")) (<< "<<") (number_literal "2")) (!= "!=") (identifier "lVar5")) () ")")) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");\n        }" ({ "{") (expression_statement "FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");" (call_expression "FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write")" (identifier "FUN_0017c650") (argument_list "("../../gold/incremental.cc",0x59f,"do_write")" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "0x59f") (, ",") (string_literal ""do_write"" (" """) (string_content "do_write") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar1 != 0) {\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }" (if "if") (parenthesized_expression "(uVar1 != 0)" (( "(") (binary_expression "uVar1 != 0" (identifier "uVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar10 = 0;\n          do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);\n        }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          } while (bVar14);" (do "do") (compound_statement "{\n            uVar9 = *(uint *)((long)__s + uVar10 * 4);\n            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            bVar14 = uVar1 - 1 != uVar10;\n            uVar10 = uVar10 + 1;\n          }" ({ "{") (expression_statement "uVar9 = *(uint *)((long)__s + uVar10 * 4);" (assignment_expression "uVar9 = *(uint *)((long)__s + uVar10 * 4)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)((long)__s + uVar10 * 4)" (* "*") (cast_expression "(uint *)((long)__s + uVar10 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__s + uVar10 * 4)" (( "(") (binary_expression "(long)__s + uVar10 * 4" (cast_expression "(long)__s" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__s")) (+ "+") (binary_expression "uVar10 * 4" (identifier "uVar10") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "*(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "*(uint *)(lVar6 + lVar3 + uVar10 * 4) =\n                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (pointer_expression "*(uint *)(lVar6 + lVar3 + uVar10 * 4)" (* "*") (cast_expression "(uint *)(lVar6 + lVar3 + uVar10 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + lVar3 + uVar10 * 4)" (( "(") (binary_expression "lVar6 + lVar3 + uVar10 * 4" (binary_expression "lVar6 + lVar3" (identifier "lVar6") (+ "+") (identifier "lVar3")) (+ "+") (binary_expression "uVar10 * 4" (identifier "uVar10") (* "*") (number_literal "4"))) () ")")))) (= "=") (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar9 << 0x18" (identifier "uVar9") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "bVar14 = uVar1 - 1 != uVar10;" (assignment_expression "bVar14 = uVar1 - 1 != uVar10" (identifier "bVar14") (= "=") (binary_expression "uVar1 - 1 != uVar10" (binary_expression "uVar1 - 1" (identifier "uVar1") (- "-") (number_literal "1")) (!= "!=") (identifier "uVar10"))) (; ";")) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar14)" (( "(") (identifier "bVar14") () ")")) (; ";")) (} "}"))) (expression_statement "thunk_FUN_002dac70(__s);" (call_expression "thunk_FUN_002dac70(__s)" (identifier "thunk_FUN_002dac70") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (expression_statement "lVar12 = plVar2[0xe];" (assignment_expression "lVar12 = plVar2[0xe]" (identifier "lVar12") (= "=") (subscript_expression "plVar2[0xe]" (identifier "plVar2") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (if_statement "if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;" (if "if") (parenthesized_expression "((*(byte *)(lVar12 + 0x20) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(lVar12 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar12 + 0x20) & 4)" (( "(") (binary_expression "*(byte *)(lVar12 + 0x20) & 4" (pointer_expression "*(byte *)(lVar12 + 0x20)" (* "*") (cast_expression "(byte *)(lVar12 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x20)" (( "(") (binary_expression "lVar12 + 0x20" (identifier "lVar12") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001a2b1e;" (goto "goto") (statement_identifier "LAB_001a2b1e") (; ";"))) (expression_statement "lVar3 = *(long *)(lVar12 + 0x18);" (assignment_expression "lVar3 = *(long *)(lVar12 + 0x18)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(lVar12 + 0x18)" (* "*") (cast_expression "(long *)(lVar12 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x18)" (( "(") (binary_expression "lVar12 + 0x18" (identifier "lVar12") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;" (if "if") (parenthesized_expression "((*(byte *)(lVar12 + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(lVar12 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar12 + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(lVar12 + 0x20) & 2" (pointer_expression "*(byte *)(lVar12 + 0x20)" (* "*") (cast_expression "(byte *)(lVar12 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x20)" (( "(") (binary_expression "lVar12 + 0x20" (identifier "lVar12") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001a2b06;" (goto "goto") (statement_identifier "LAB_001a2b06") (; ";"))) (if_statement "if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }" (if "if") (parenthesized_expression "((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10)))" (( "(") (binary_expression "(-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))" (parenthesized_expression "(-1 < lVar3)" (( "(") (binary_expression "-1 < lVar3" (number_literal "-1") (< "<") (identifier "lVar3")) () ")")) (&& "&&") (parenthesized_expression "(*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))" (( "(") (binary_expression "*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10)" (binary_expression "*(long *)(lVar12 + 0x10) + lVar3" (pointer_expression "*(long *)(lVar12 + 0x10)" (* "*") (cast_expression "(long *)(lVar12 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x10)" (( "(") (binary_expression "lVar12 + 0x10" (identifier "lVar12") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (identifier "lVar3")) (<= "<=") (pointer_expression "*(long *)(param_2 + 0x10)" (* "*") (cast_expression "(long *)(param_2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));\n          return;\n        }" ({ "{") (expression_statement "FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));" (call_expression "FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18))" (identifier "FUN_001a25e0") (argument_list "(param_1,lVar3 + *(long *)(param_2 + 0x18))" (( "(") (identifier "param_1") (, ",") (binary_expression "lVar3 + *(long *)(param_2 + 0x18)" (identifier "lVar3") (+ "+") (pointer_expression "*(long *)(param_2 + 0x18)" (* "*") (cast_expression "(long *)(param_2 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "FUN_00182e30();" (call_expression "FUN_00182e30()" (identifier "FUN_00182e30") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_001a2b1e:\n                    \n  FUN_0017c650("../../gold/output.h",0xe3,"offset");" (statement_identifier "LAB_001a2b1e") (: ":") (expression_statement "FUN_0017c650("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_0017c650("../../gold/output.h",0xe3,"offset")" (identifier "FUN_0017c650") (argument_list "("../../gold/output.h",0xe3,"offset")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xe3") (, ",") (string_literal ""offset"" (" """) (string_content "offset") (" """)) () ")"))) (; ";"))) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* DWARF original prototype: void do_write(Output_section_incremental_inputs<32,_true> * this,
   Output_file * of) */

void __thiscall
var_13::var_1<32,var_7>::do_write
          (var_1<32,var_7> *this,type_9 *of)

{
  byte var_2;
  type_1 var_20;
  type_2 *pIVar3;
  long var_4;
  long var_5;
  type_3 *var_6;
  var_1<32,var_7> *var_19;
  type_4 uVar8;
  type_5 ppIVar9;
  type_5 ppIVar10;
  type_6 *pOVar11;
  type_1 var_16;
  var_1<32,var_7> *this_00;
  type_7 uVar13;
  type_3 *puVar14;
  type_8 *var_22;
  type_8 *var_21;
  type_6 *in_RDX;
  type_3 *var_15;
  type_9 *start;
  bool bVar16;
  
  pIVar3 = this->inputs_;
  var_2 = (this->super_Output_section_data).super_Output_data.field_0x20;
  var_22 = pIVar3->strtab_;
  if ((var_2 & 4) != 0) {
    var_4 = (this->super_Output_section_data).super_Output_data.offset_;
    if ((var_2 & 2) == 0) {
LAB_001a2b06:
                    /* WARNING: Subroutine does not return */
      var_3("../../gold/output.h",0xcf,"data_size");
    }
    var_5 = (this->super_Output_section_data).super_Output_data.data_size_;
    start = of;
    this_00 = this;
    if ((-1 < var_4) && (var_21 = (type_8 *)of->file_size_, var_5 + var_4 <= (long)var_21)) {
      in_RDX = pIVar3->symtab_section_;
      var_6 = of->base_;
      var_2 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.
              field_0x20;
      var_15 = var_6 + var_4;
      if ((var_2 & 4) == 0) goto LAB_001a2b1e;
      start = (type_9 *)(type_7)(var_2 & 2);
      var_4 = (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data.
              offset_;
      if ((var_2 & 2) == 0) goto LAB_001a2b06;
      var_19 = (var_1<32,var_7> *)
               (in_RDX->super_Output_section_data_build).super_Output_section_data.super_Output_data
               .data_size_;
      this_00 = var_19;
      if ((-1 < var_4) &&
         (in_RDX = (type_6 *)
                   ((long)&(var_19->super_Output_section_data).super_Output_data._vptr_Output_data +
                   var_4), (long)in_RDX <= (long)var_21)) {
        var_20 = this->symtab_->output_count_;
        uVar13 = (type_7)var_20 * 4;
        this_00 = (var_1<32,var_7> *)var_8(uVar13);
        var_9(this_00,0,uVar13);
        if ((var_22->key_to_offset_).size_ < pIVar3->command_line_key_) {
                    /* WARNING: Subroutine does not return */
          var_3("../../gold/stringpool.h",0x108,"get_offset_from_key");
        }
        uVar13 = pIVar3->command_line_key_ - 1;
        uVar8 = *(type_4 *)
                 ((long)(var_22->key_to_offset_).chunks_.
                        super__Vector_base<std::vector<var_11,var_14::var_10<var_11>var_12>,var_14::var_10<std::vector<var_11,var_14::var_10<var_11>var_12>var_12>var_12>
                        ._M_impl._M_start[uVar13 >> 0xd].
                        super__Vector_base<var_11,var_14::var_10<var_11>var_12>._M_impl._M_start +
                 (type_7)((type_1)uVar13 & 0x1fff) * 8);
        ppIVar9 = (pIVar3->inputs_).
                  super__Vector_base<var_13::Incremental_input_entry*,var_14::var_10<var_13::Incremental_input_entry*>var_12>
                  ._M_impl._M_finish;
        ppIVar10 = (pIVar3->inputs_).
                   super__Vector_base<var_13::Incremental_input_entry*,var_14::var_10<var_13::Incremental_input_entry*>var_12>
                   ._M_impl._M_start;
        var_15[0] = '\0';
        var_15[1] = '\0';
        var_15[2] = '\0';
        var_15[3] = '\x02';
        var_15[0xc] = '\0';
        var_15[0xd] = '\0';
        var_15[0xe] = '\0';
        var_15[0xf] = '\0';
        var_16 = (type_1)((long)ppIVar9 - (long)ppIVar10 >> 3);
        *(type_1 *)(var_15 + 4) =
             var_16 >> 0x18 | (var_16 & 0xff0000) >> 8 | (var_16 & 0xff00) << 8 | var_16 << 0x18;
        var_16 = (type_1)uVar8;
        *(type_1 *)(var_15 + 8) =
             var_16 >> 0x18 | (var_16 & 0xff0000) >> 8 | (var_16 & 0xff00) << 8 | var_16 << 0x18;
        puVar14 = var_17(this,var_15,var_15 + 0x10,var_22);
        puVar14 = var_18(this,var_15,puVar14,var_22,(type_1 *)this_00,var_20);
        if ((long)puVar14 - (long)var_15 != var_5) {
                    /* WARNING: Subroutine does not return */
          var_3("../../gold/incremental.cc",0x59c,"do_write");
        }
        if ((var_1<32,var_7> *)((type_7)var_20 << 2) != var_19) {
                    /* WARNING: Subroutine does not return */
          var_3("../../gold/incremental.cc",0x59f,"do_write");
        }
        var_21 = var_22;
        if (var_20 != 0) {
          var_21 = (type_8 *)(type_7)(var_20 - 1);
          var_22 = (type_8 *)0x0;
          do {
            var_20 = *(type_1 *)((long)&(this_00->super_Output_section_data).super_Output_data.
                                     _vptr_Output_data + (long)var_22 * 4);
            *(type_1 *)(var_6 + (long)var_22 * 4 + var_4) =
                 var_20 >> 0x18 | (var_20 & 0xff0000) >> 8 | (var_20 & 0xff00) << 8 | var_20 << 0x18;
            bVar16 = var_21 != var_22;
            var_22 = (type_8 *)((long)&(var_22->string_set_)._M_h._M_buckets + 1);
          } while (bVar16);
        }
        var_23(this_00);
        pOVar11 = pIVar3->got_plt_section_;
        var_2 = (pOVar11->super_Output_section_data_build).super_Output_section_data.
                super_Output_data.field_0x20;
        if ((var_2 & 4) == 0) goto LAB_001a2b1e;
        start = (type_9 *)
                (pOVar11->super_Output_section_data_build).super_Output_section_data.
                super_Output_data.offset_;
        if ((var_2 & 2) == 0) goto LAB_001a2b06;
        in_RDX = (type_6 *)
                 (pOVar11->super_Output_section_data_build).super_Output_section_data.
                 super_Output_data.data_size_;
        if ((-1 < (long)start) &&
           ((long)&start->name_ + (long)&in_RDX->super_Output_section_data_build <= of->file_size_))
        {
          var_24(this,of->base_ + (long)&start->name_,(type_10)in_RDX);
          return;
        }
      }
    }
                    /* WARNING: Subroutine does not return */
    Output_file::var_25
              ((type_9 *)this_00,(type_10)start,(size_t)in_RDX,(type_9 *)var_21);
  }
LAB_001a2b1e:
                    /* WARNING: Subroutine does not return */
  var_3("../../gold/output.h",0xe3,"offset");
}


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

void MASKED(long param_1,long param_2)

{
  size_t __n;
  uint uVar1;
  long *plVar2;
  long lVar3;
  long lVar4;
  long lVar5;
  long lVar6;
  long lVar7;
  long lVar8;
  uint uVar9;
  void *__s;
  ulong uVar10;
  undefined8 uVar11;
  long lVar12;
  undefined4 *puVar13;
  bool bVar14;
  
  plVar2 = *(long **)(param_1 + 0x38);
  lVar12 = plVar2[8];
  if ((*(byte *)(param_1 + 0x20) & 4) != 0) {
    lVar3 = *(long *)(param_1 + 0x18);
    if ((*(byte *)(param_1 + 0x20) & 2) == 0) {
LAB_001a2b06:
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/output.h",0xcf,"data_size");
    }
    lVar4 = *(long *)(param_1 + 0x10);
    if ((-1 < lVar3) && (lVar4 + lVar3 <= *(long *)(param_2 + 0x10))) {
      lVar5 = plVar2[0xc];
      lVar6 = *(long *)(param_2 + 0x18);
      puVar13 = (undefined4 *)(lVar3 + lVar6);
      if ((*(byte *)(lVar5 + 0x20) & 4) == 0) goto LAB_001a2b1e;
      lVar3 = *(long *)(lVar5 + 0x18);
      if ((*(byte *)(lVar5 + 0x20) & 2) == 0) goto LAB_001a2b06;
      lVar5 = *(long *)(lVar5 + 0x10);
      if ((-1 < lVar3) && (lVar5 + lVar3 <= *(long *)(param_2 + 0x10))) {
        uVar1 = *(uint *)(*(long *)(param_1 + 0x40) + 0x18);
        __n = (ulong)uVar1 * 4;
        __s = (void *)thunk_FUN_002d94a0(__n);
        memset(__s,0,__n);
        if (*(ulong *)(lVar12 + 0x50) < (ulong)plVar2[7]) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/stringpool.h",0x108,"get_offset_from_key");
        }
        uVar10 = plVar2[7] - 1;
        uVar11 = *(undefined8 *)
                  (*(long *)(*(long *)(lVar12 + 0x38) + (uVar10 >> 0xd) * 0x18) +
                  (ulong)((uint)uVar10 & 0x1fff) * 8);
        lVar7 = plVar2[1];
        lVar8 = *plVar2;
        *puVar13 = 0x2000000;
        puVar13[3] = 0;
        uVar9 = (uint)(lVar7 - lVar8 >> 3);
        puVar13[1] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18
        ;
        uVar9 = (uint)uVar11;
        puVar13[2] = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18
        ;
        uVar11 = FUN_001a18e0(param_1,puVar13,puVar13 + 4,lVar12);
        lVar12 = FUN_001a1a30(param_1,puVar13,uVar11,lVar12,__s,uVar1);
        if (lVar12 - (long)puVar13 != lVar4) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/incremental.cc",0x59c,"do_write");
        }
        if ((ulong)uVar1 << 2 != lVar5) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/incremental.cc",0x59f,"do_write");
        }
        if (uVar1 != 0) {
          uVar10 = 0;
          do {
            uVar9 = *(uint *)((long)__s + uVar10 * 4);
            *(uint *)(lVar6 + lVar3 + uVar10 * 4) =
                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
            bVar14 = uVar1 - 1 != uVar10;
            uVar10 = uVar10 + 1;
          } while (bVar14);
        }
        thunk_FUN_002dac70(__s);
        lVar12 = plVar2[0xe];
        if ((*(byte *)(lVar12 + 0x20) & 4) == 0) goto LAB_001a2b1e;
        lVar3 = *(long *)(lVar12 + 0x18);
        if ((*(byte *)(lVar12 + 0x20) & 2) == 0) goto LAB_001a2b06;
        if ((-1 < lVar3) && (*(long *)(lVar12 + 0x10) + lVar3 <= *(long *)(param_2 + 0x10))) {
          FUN_001a25e0(param_1,lVar3 + *(long *)(param_2 + 0x18));
          return;
        }
      }
    }
                    /* WARNING: Subroutine does not return */
    FUN_00182e30();
  }
LAB_001a2b1e:
                    /* WARNING: Subroutine does not return */
  FUN_0017c650("../../gold/output.h",0xe3,"offset");
}

