
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void set_final_data_size(Output_compressed_section * this) */

void __thiscall
gold::Output_compressed_section::set_final_data_size(Output_compressed_section *this)

{
  char cVar1;
  uint uVar2;
  uint uVar3;
  uchar *puVar4;
  int iVar5;
  uint uVar6;
  undefined4 uVar7;
  _func_int_varargs *p_Var8;
  size_type sVar9;
  uint uVar10;
  uchar *puVar11;
  int iVar12;
  char *pcVar13;
  size_t sVar14;
  undefined4 *puVar15;
  size_type *__dest;
  uint uVar16;
  int iVar17;
  uint extraout_EDX;
  byte *pbVar18;
  byte *pbVar19;
  byte *pbVar20;
  int iVar21;
  bool bVar22;
  bool bVar23;
  bool bVar24;
  byte bVar25;
  uint local_68;
  ulong compressed_size;
  undefined2 *local_4c;
  undefined4 local_48;
  undefined2 local_44;
  undefined1 local_42;
  size_type *local_34;
  size_t local_30;
  size_type local_2c;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  
  bVar25 = 0;
  uVar2 = (uint)(this->super_Output_section).super_Output_data.data_size_;
  uVar10 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;
  uVar3 = *(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4);
  puVar4 = (this->super_Output_section).postprocessing_buffer_;
  if (puVar4 == (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/output.h",0xe34,"postprocessing_buffer");
  }
  Output_section::write_to_postprocessing_buffer(&this->super_Output_section);
  bVar22 = false;
  bVar24 = parameters->target_ == (Target *)0x0;
  if (bVar24) goto LAB_0019ec43;
  iVar17 = 9;
  iVar5 = **(int **)(parameters->target_ + 4);
  pbVar19 = (byte *)(this->options_->compress_debug_sections_).value;
  pbVar18 = pbVar19;
  pbVar20 = &DAT_002806f0;
  do {
    if (iVar17 == 0) break;
    iVar17 = iVar17 + -1;
    bVar22 = *pbVar18 < *pbVar20;
    bVar24 = *pbVar18 == *pbVar20;
    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
    pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
  } while (bVar24);
  bVar23 = false;
  bVar22 = (!bVar22 && !bVar24) == bVar22;
  if (bVar22) {
    iVar21 = 0xc;
    iVar17 = 1;
LAB_0019e72b:
    compressed_size = uVar2 + 0x80 + uVar2 / 1000;
    puVar11 = (uchar *)operator_new__(compressed_size + iVar21);
    this->data_ = puVar11;
    if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
    }
    iVar12 = compress2(puVar11 + iVar21,&compressed_size,puVar4,uVar2,
                       (0 < (parameters->options_->optimize_).value) * '\b' + '\x01');
    if (iVar12 == 0) {
      compressed_size = compressed_size + iVar21;
      uVar6 = (uint)(this->super_Output_section).flags_;
      uVar7 = *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4);
      if (iVar17 == 2) {
        if (parameters->target_ == (Target *)0x0) {
LAB_0019ec43:
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/parameters.h",0x69,"target");
        }
        cVar1 = *(char *)(*(int *)(parameters->target_ + 4) + 4);
        p_Var8 = (this->super_Output_section).super_Output_data._vptr_Output_data[3];
        if (p_Var8 == Output_section::do_addralign) {
          local_68 = *(uint *)((int)&(this->super_Output_section).addralign_ + 4);
          uVar16 = (uint)(this->super_Output_section).addralign_;
        }
        else {
          uVar16 = (*p_Var8)(this);
          local_68 = extraout_EDX;
        }
        if (iVar5 == 0x20) {
          puVar4 = this->data_;
          if (cVar1 == '\0') {
            puVar4[0] = '\x01';
            puVar4[1] = '\0';
            puVar4[2] = '\0';
            puVar4[3] = '\0';
            *(uint *)(puVar4 + 8) = uVar16;
            *(uint *)(puVar4 + 4) = uVar2;
          }
          else {
            puVar4[0] = '\0';
            puVar4[1] = '\0';
            puVar4[2] = '\0';
            puVar4[3] = '\x01';
            *(uint *)(puVar4 + 8) =
                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18
            ;
            *(uint *)(puVar4 + 4) = uVar10;
          }
        }
        else {
          if (iVar5 != 0x40) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size");
          }
          puVar4 = this->data_;
          if (cVar1 == '\0') {
            *(uint *)(puVar4 + 0x10) = uVar16;
            puVar4[0] = '\x01';
            puVar4[1] = '\0';
            puVar4[2] = '\0';
            puVar4[3] = '\0';
            *(uint *)(puVar4 + 8) = uVar2;
            *(uint *)(puVar4 + 0xc) = uVar3;
          }
          else {
            puVar4[0] = '\0';
            puVar4[1] = '\0';
            puVar4[2] = '\0';
            puVar4[3] = '\0';
            *(uint *)(puVar4 + 8) =
                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;
            *(uint *)(puVar4 + 0x10) =
                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |
                 local_68 << 0x18;
            *(uint *)(puVar4 + 0xc) = uVar10;
            local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                       uVar16 << 0x18;
          }
          *(uint *)(puVar4 + 0x14) = local_68;
          puVar4[4] = '\0';
          puVar4[5] = '\0';
          puVar4[6] = '\0';
          puVar4[7] = '\0';
        }
        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;
        *(uint *)&(this->super_Output_section).flags_ = uVar6 | 0x800;
        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;
        if ((bVar25 >> 1 & 1) != 0) goto LAB_0019ec27;
      }
      else {
        builtin_memcpy(this->data_,"ZLIB",4);
        puVar4 = this->data_;
        puVar4[4] = (uchar)(uVar3 >> 0x18);
        puVar4[6] = (uchar)(uVar3 >> 8);
        puVar4[5] = (uchar)(uVar3 >> 0x10);
        puVar4[7] = (uchar)uVar3;
        *(uint *)(puVar4 + 8) = uVar10;
        local_48 = 2;
        local_42 = 0;
        pcVar13 = (this->super_Output_section).name_ + 1;
        local_44 = 0x7a2e;
        local_4c = &local_44;
        sVar14 = strlen(pcVar13);
                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */
        puVar15 = (undefined4 *)std::string::_M_append((string *)&local_4c,pcVar13,sVar14);
        if ((size_type *)*puVar15 == puVar15 + 2) {
          local_2c = puVar15[2];
          local_28 = puVar15[3];
          local_24 = puVar15[4];
          local_20 = puVar15[5];
          local_34 = &local_2c;
        }
        else {
          local_2c = puVar15[2];
          local_34 = (size_type *)*puVar15;
        }
        local_30 = puVar15[1];
        *(undefined1 *)(puVar15 + 2) = 0;
        *puVar15 = puVar15 + 2;
        puVar15[1] = 0;
        __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;
        if (local_34 == &local_2c) {
          if (local_30 != 0) {
            if (local_30 == 1) {
              *(undefined1 *)__dest = (undefined1)local_2c;
              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;
            }
            else {
              memcpy(__dest,&local_2c,local_30);
              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;
            }
          }
          (this->new_section_name_)._M_string_length = local_30;
          *(undefined1 *)((int)__dest + local_30) = 0;
        }
        else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                  *)__dest == &(this->new_section_name_).field_2) {
          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;
          (this->new_section_name_)._M_string_length = local_30;
          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;
          local_34 = &local_2c;
        }
        else {
          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;
          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;
          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;
          (this->new_section_name_)._M_string_length = local_30;
          local_34 = &local_2c;
          if (__dest != (size_type *)0x0) {
            local_34 = __dest;
            local_2c = sVar9;
          }
        }
        local_30 = 0;
        *(undefined1 *)local_34 = 0;
        if (local_34 != &local_2c) {
          operator_delete(local_34);
        }
        if (local_4c != &local_44) {
          operator_delete(local_4c);
        }
        if (((this->super_Output_section).flags_ & 2) != 0) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/output.h",0xe48,"set_name");
        }
        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;
        if ((bVar25 & 2) != 0) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/output.h",0xe49,"set_name");
        }
        (this->super_Output_section).name_ = (this->new_section_name_)._M_dataplus._M_p;
        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;
        *(uint *)&(this->super_Output_section).flags_ = uVar6;
      }
      if ((bVar25 & 8) == 0) {
        *(ulong *)&(this->super_Output_section).super_Output_data.data_size_ = compressed_size;
        *(undefined4 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = 0;
        (this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;
        return;
      }
      goto LAB_0019ec27;
    }
    if (this->data_ != (uchar *)0x0) {
      operator_delete__(this->data_);
    }
    this->data_ = (uchar *)0x0;
  }
  else {
    iVar17 = 10;
    pbVar18 = pbVar19;
    pbVar20 = (byte *)"zlib-gabi";
    do {
      if (iVar17 == 0) break;
      iVar17 = iVar17 + -1;
      bVar23 = *pbVar18 < *pbVar20;
      bVar22 = *pbVar18 == *pbVar20;
      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
      pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
    } while (bVar22);
    bVar24 = false;
    bVar22 = (!bVar23 && !bVar22) == bVar23;
    if (bVar22) {
LAB_0019e70c:
      if (iVar5 == 0x20) {
        iVar21 = 0xc;
        iVar17 = 2;
      }
      else {
        if (iVar5 != 0x40) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size");
        }
        iVar21 = 0x18;
        iVar17 = 2;
      }
      goto LAB_0019e72b;
    }
    iVar17 = 5;
    pbVar18 = &DAT_002806eb;
    do {
      if (iVar17 == 0) break;
      iVar17 = iVar17 + -1;
      bVar24 = *pbVar19 < *pbVar18;
      bVar22 = *pbVar19 == *pbVar18;
      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
    } while (bVar22);
    if ((!bVar24 && !bVar22) == bVar24) goto LAB_0019e70c;
  }
  pcVar13 = (char *)gettext("not compressing section data: zlib error");
  gold_warning(pcVar13);
  if (this->data_ != (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/compressed_output.cc",0x141,"set_final_data_size");
  }
  bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;
  if (((bVar25 & 2) == 0) && ((bVar25 & 8) == 0)) {
    *(uint *)&(this->super_Output_section).super_Output_data.data_size_ = uVar2;
    (this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;
    *(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = uVar3;
    return;
  }
LAB_0019ec27:
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/output.h",0x218,"set_data_size");
}



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

void FUN_0019e650(undefined **param_1)

{
  char cVar1;
  undefined *puVar2;
  undefined *puVar3;
  int iVar4;
  undefined **ppuVar5;
  undefined **ppuVar6;
  uint uVar7;
  undefined *puVar8;
  int iVar9;
  uint uVar10;
  undefined4 uVar11;
  size_t sVar12;
  undefined4 *puVar13;
  undefined ***__dest;
  int iVar14;
  undefined *extraout_ECX;
  undefined *puVar15;
  byte *pbVar16;
  byte *pbVar17;
  byte *pbVar18;
  int iVar19;
  bool bVar20;
  bool bVar21;
  bool bVar22;
  byte bVar23;
  undefined8 uVar24;
  uint local_68;
  undefined **local_60;
  undefined *local_50;
  undefined2 *local_4c;
  undefined4 local_48;
  undefined2 local_44;
  undefined1 local_42;
  undefined ***local_34;
  undefined *local_30;
  undefined **local_2c;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  
  bVar23 = 0;
  ppuVar6 = &__DT_PLTGOT;
  puVar2 = param_1[3];
  uVar7 = (uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |
          (int)puVar2 << 0x18;
  puVar3 = param_1[4];
  puVar15 = param_1[0x23];
  if (puVar15 == (undefined *)0x0) {
                    /* WARNING: Subroutine does not return */
    FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");
  }
  FUN_000ef2d0(param_1);
  bVar20 = false;
  bVar22 = *(int *)(DAT_0038f378 + 0xc) == 0;
  if (bVar22) goto LAB_0019ec43;
  iVar14 = 9;
  iVar4 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);
  pbVar17 = *(byte **)(param_1[0x3a] + 0x99c);
  pbVar16 = pbVar17;
  pbVar18 = &DAT_002806f0;
  do {
    if (iVar14 == 0) break;
    iVar14 = iVar14 + -1;
    bVar20 = *pbVar16 < *pbVar18;
    bVar22 = *pbVar16 == *pbVar18;
    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;
    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;
  } while (bVar22);
  bVar21 = false;
  bVar20 = (!bVar20 && !bVar22) == bVar20;
  if (bVar20) {
    iVar19 = 0xc;
    iVar14 = 1;
LAB_0019e72b:
    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;
    puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);
    param_1[0x3b] = puVar8;
    if (*(int *)(DAT_0038f378 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);
    }
    iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,
                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');
    if (iVar9 == 0) {
      local_50 = local_50 + iVar19;
      puVar15 = param_1[0x15];
      puVar8 = param_1[0x16];
      if (iVar14 == 2) {
        ppuVar6 = (undefined **)0x2;
        if (*(int *)(DAT_0038f378 + 0xc) == 0) {
LAB_0019ec43:
                    /* WARNING: Subroutine does not return */
          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);
        }
        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);
        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {
          uVar24 = *(undefined8 *)(param_1 + 9);
        }
        else {
          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);
        }
        local_68 = (uint)((ulonglong)uVar24 >> 0x20);
        uVar10 = (uint)uVar24;
        if (iVar4 == 0x20) {
          puVar13 = (undefined4 *)param_1[0x3b];
          if (cVar1 == '\0') {
            *puVar13 = 1;
            puVar13[2] = uVar10;
            puVar13[1] = puVar2;
          }
          else {
            *puVar13 = 0x1000000;
            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |
                         uVar10 << 0x18;
            puVar13[1] = uVar7;
          }
        }
        else {
          if (iVar4 != 0x40) {
                    /* WARNING: Subroutine does not return */
            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);
          }
          puVar13 = (undefined4 *)param_1[0x3b];
          if (cVar1 == '\0') {
            puVar13[4] = uVar10;
            *puVar13 = 1;
            puVar13[2] = puVar2;
            puVar13[3] = puVar3;
          }
          else {
            *puVar13 = 0;
            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |
                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;
            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |
                         local_68 << 0x18;
            puVar13[3] = uVar7;
            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |
                       uVar10 << 0x18;
          }
          puVar13[5] = local_68;
          puVar13[1] = 0;
        }
        bVar23 = *(byte *)(param_1 + 7);
        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);
        param_1[0x16] = puVar8;
        puVar15 = local_50;
        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;
      }
      else {
        *(undefined4 *)param_1[0x3b] = 0x42494c5a;
        puVar2 = param_1[0x3b];
        puVar2[4] = (char)((uint)puVar3 >> 0x18);
        puVar2[6] = (char)((uint)puVar3 >> 8);
        puVar2[5] = (char)((uint)puVar3 >> 0x10);
        puVar2[7] = (char)puVar3;
        *(uint *)(puVar2 + 8) = uVar7;
        puVar2 = param_1[8];
        local_48 = 2;
        local_42 = 0;
        local_44 = 0x7a2e;
        local_4c = &local_44;
        sVar12 = strlen(puVar2 + 1);
                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */
        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);
        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {
          local_2c = (undefined **)puVar13[2];
          local_28 = puVar13[3];
          local_24 = puVar13[4];
          local_20 = puVar13[5];
          local_34 = &local_2c;
        }
        else {
          local_2c = (undefined **)puVar13[2];
          local_34 = (undefined ***)*puVar13;
        }
        local_30 = (undefined *)puVar13[1];
        *(undefined1 *)(puVar13 + 2) = 0;
        *puVar13 = puVar13 + 2;
        puVar13[1] = 0;
        __dest = (undefined ***)param_1[0x3c];
        if (local_34 == &local_2c) {
          if (local_30 != (undefined *)0x0) {
            if (local_30 == (undefined *)0x1) {
              *(undefined1 *)__dest = local_2c._0_1_;
              __dest = (undefined ***)param_1[0x3c];
            }
            else {
              memcpy(__dest,&local_2c,(size_t)local_30);
              __dest = (undefined ***)param_1[0x3c];
            }
          }
          param_1[0x3d] = local_30;
          *(undefined1 *)((int)__dest + (int)local_30) = 0;
          ppuVar6 = param_1;
        }
        else {
          ppuVar6 = local_2c;
          if (__dest == (undefined ***)(param_1 + 0x3e)) {
            param_1[0x3c] = (undefined *)local_34;
            param_1[0x3d] = local_30;
            param_1[0x3e] = (undefined *)local_2c;
            local_34 = &local_2c;
          }
          else {
            ppuVar5 = (undefined **)param_1[0x3e];
            param_1[0x3c] = (undefined *)local_34;
            param_1[0x3e] = (undefined *)local_2c;
            param_1[0x3d] = local_30;
            local_34 = &local_2c;
            if (__dest != (undefined ***)0x0) {
              ppuVar6 = ppuVar5;
              local_34 = __dest;
              local_2c = ppuVar5;
            }
          }
        }
        local_60 = &__DT_PLTGOT;
        local_30 = (undefined *)0x0;
        *(undefined1 *)local_34 = 0;
        if (local_34 != &local_2c) {
          FUN_001e6db0(local_34);
          ppuVar6 = local_60;
        }
        if (local_4c != &local_44) {
          FUN_001e6db0(local_4c);
          ppuVar6 = local_60;
        }
        if (((uint)param_1[0x15] & 2) != 0) {
                    /* WARNING: Subroutine does not return */
          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);
        }
        bVar23 = *(byte *)(param_1 + 7);
        if ((bVar23 & 2) != 0) {
                    /* WARNING: Subroutine does not return */
          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);
        }
        param_1[8] = param_1[0x3c];
        param_1[0x16] = puVar8;
        param_1[0x15] = puVar15;
      }
      puVar15 = local_50;
      if ((bVar23 & 8) == 0) {
        param_1[3] = local_50;
        param_1[4] = (undefined *)0x0;
        *(byte *)(param_1 + 7) = bVar23 | 2;
        return;
      }
      goto LAB_0019ec27;
    }
    if (param_1[0x3b] != (undefined *)0x0) {
      FUN_001e6d50(param_1[0x3b]);
    }
    param_1[0x3b] = (undefined *)0x0;
  }
  else {
    iVar14 = 10;
    pbVar16 = pbVar17;
    pbVar18 = (byte *)"zlib-gabi";
    do {
      if (iVar14 == 0) break;
      iVar14 = iVar14 + -1;
      bVar21 = *pbVar16 < *pbVar18;
      bVar20 = *pbVar16 == *pbVar18;
      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;
      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;
    } while (bVar20);
    bVar22 = false;
    bVar20 = (!bVar21 && !bVar20) == bVar21;
    if (bVar20) {
LAB_0019e70c:
      if (iVar4 == 0x20) {
        iVar19 = 0xc;
        iVar14 = 2;
      }
      else {
        if (iVar4 != 0x40) {
                    /* WARNING: Subroutine does not return */
          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);
        }
        iVar19 = 0x18;
        iVar14 = 2;
      }
      goto LAB_0019e72b;
    }
    iVar14 = 5;
    pbVar16 = &DAT_002806eb;
    do {
      if (iVar14 == 0) break;
      iVar14 = iVar14 + -1;
      bVar22 = *pbVar17 < *pbVar16;
      bVar20 = *pbVar17 == *pbVar16;
      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;
      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;
    } while (bVar20);
    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;
  }
  uVar11 = gettext("not compressing section data: zlib error");
  FUN_000654e0(uVar11);
  if (param_1[0x3b] != (undefined *)0x0) {
                    /* WARNING: Subroutine does not return */
    FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);
  }
  bVar23 = *(byte *)(param_1 + 7);
  puVar15 = extraout_ECX;
  if (((bVar23 & 2) == 0) && ((bVar23 & 8) == 0)) {
    param_1[3] = puVar2;
    *(byte *)(param_1 + 7) = bVar23 | 2;
    param_1[4] = puVar3;
    return;
  }
LAB_0019ec27:
                    /* WARNING: Subroutine does not return */
  FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15);
}


CALL 0x000559e6
ADD EAX,0x1f09ab
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x6c
MOV dword ptr [EBP + -0x5c],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [EBP + -0x60],EAX
BSWAP EAX
MOV dword ptr [EBP + -0x74],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x10]
MOV dword ptr [EBP + -0x68],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x8c]
MOV dword ptr [EBP + -0x70],EAX
TEST EAX,EAX
JZ 0x0019ec5c
SUB ESP,0xc
MOV ESI,dword ptr [EBP + -0x5c]
PUSH dword ptr [EBP + 0x8]
MOV EBX,ESI
CALL 0x000ef2d0
LEA EAX,[ESI + 0x378]
ADD ESP,0x10
MOV dword ptr [EBP + -0x64],EAX
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x0019ec43
MOV EAX,dword ptr [EAX + 0x4]
MOV EBX,dword ptr [EBP + -0x5c]
MOV ECX,0x9
MOV EAX,dword ptr [EAX]
LEA EDI,[EBX + 0xffef16f0]
MOV dword ptr [EBP + -0x6c],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0xe8]
MOV EDX,dword ptr [EAX + 0x99c]
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0019e950
MOV ECX,0xa
LEA EDI,[EBX + 0xffef16f9]
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0019e8a0
MOV EAX,dword ptr [EBP + -0x6c]
CMP EAX,0x20
JZ 0x0019eaf0
CMP EAX,0x40
JNZ 0x0019ecad
MOV EDI,0x18
MOV ESI,0x2
MOV EAX,dword ptr [EBP + -0x60]
MOV EDX,0x10624dd3
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x5c]
MUL EDX
MOV EAX,dword ptr [EBP + -0x60]
SHR EDX,0x6
LEA EAX,[EAX + EDX*0x1 + 0x80]
MOV dword ptr [EBP + -0x4c],EAX
ADD EAX,EDI
PUSH EAX
CALL 0x001e5180
MOV ECX,dword ptr [EBP + 0x8]
ADD ESP,0x10
MOV dword ptr [ECX + 0xec],EAX
MOV ECX,dword ptr [EBP + -0x64]
MOV EDX,dword ptr [ECX]
MOV EDX,dword ptr [EDX + 0x8]
TEST EDX,EDX
JZ 0x0019ec78
MOV EDX,dword ptr [EDX + 0x2830]
MOV EBX,dword ptr [EBP + -0x5c]
TEST EDX,EDX
SETG DL
SUB ESP,0xc
ADD EAX,EDI
MOVZX EDX,DL
LEA EDX,[EDX*0x8 + 0x1]
PUSH EDX
LEA EDX,[EBP + -0x4c]
PUSH dword ptr [EBP + -0x60]
PUSH dword ptr [EBP + -0x70]
PUSH EDX
PUSH EAX
CALL 0x00029450
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x0019e920
MOV EAX,dword ptr [EBP + 0x8]
ADD dword ptr [EBP + -0x4c],EDI
MOV EAX,dword ptr [EAX + 0x54]
MOV dword ptr [EBP + -0x70],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV EDI,dword ptr [EAX + 0x58]
CMP ESI,0x2
JNZ 0x0019e960
MOV EAX,dword ptr [EBP + -0x64]
MOV EBX,dword ptr [EBP + -0x70]
MOV EAX,dword ptr [EAX]
OR BH,0x8
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x0019ec43
MOV EAX,dword ptr [EAX + 0x4]
MOV ECX,dword ptr [EBP + -0x5c]
MOVZX ESI,byte ptr [EAX + 0x4]
MOV EAX,dword ptr [EBP + 0x8]
LEA EDX,[ECX + 0xffd15920]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
CMP EAX,EDX
JNZ 0x0019eb98
MOV ECX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [ECX + 0x28]
MOV EAX,dword ptr [EAX + 0x24]
MOV dword ptr [EBP + -0x64],ECX
CMP dword ptr [EBP + -0x6c],0x20
JZ 0x0019eb00
CMP dword ptr [EBP + -0x6c],0x40
JNZ 0x0019ed01
MOV ECX,dword ptr [EBP + 0x8]
MOV EDX,ESI
MOV ECX,dword ptr [ECX + 0xec]
TEST DL,DL
JZ 0x0019eb30
MOV ESI,dword ptr [EBP + -0x68]
MOV EDX,dword ptr [EBP + -0x64]
MOV dword ptr [ECX],0x0
BSWAP EAX
BSWAP ESI
MOV dword ptr [ECX + 0x8],ESI
MOV ESI,dword ptr [EBP + -0x74]
BSWAP EDX
MOV dword ptr [ECX + 0x10],EDX
MOV dword ptr [ECX + 0xc],ESI
MOV dword ptr [ECX + 0x14],EAX
MOV dword ptr [ECX + 0x4],0x0
MOV EAX,dword ptr [EBP + 0x8]
MOV ESI,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [EBP + -0x4c]
MOVZX EAX,byte ptr [EAX + 0x1c]
MOV dword ptr [ESI + 0x54],EBX
XOR EBX,EBX
MOV dword ptr [ESI + 0x58],EDI
MOV EDX,EAX
SHR DL,0x1
AND EDX,0x1
TEST DL,DL
JNZ 0x0019ec27
TEST AL,0x8
JNZ 0x0019ec27
MOV EDI,dword ptr [EBP + 0x8]
OR EAX,0x2
MOV dword ptr [EDI + 0xc],ECX
MOV dword ptr [EDI + 0x10],EBX
MOV byte ptr [EDI + 0x1c],AL
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ECX,0x5
LEA EDI,[EBX + 0xffef16eb]
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0019e70c
MOV EDI,dword ptr [EBP + -0x5c]
SUB ESP,0xc
LEA EAX,[EDI + 0xfff0ec7c]
MOV EBX,EDI
PUSH EAX
CALL 0x000293b0
MOV dword ptr [ESP],EAX
CALL 0x000654e0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
MOV EDX,dword ptr [EAX + 0xec]
TEST EDX,EDX
JNZ 0x0019ec91
MOV EAX,dword ptr [EBP + 0x8]
MOVZX EAX,byte ptr [EAX + 0x1c]
TEST AL,0x2
JNZ 0x0019ec27
TEST AL,0x8
JNZ 0x0019ec27
MOV ESI,dword ptr [EBP + 0x8]
MOV EDI,dword ptr [EBP + -0x60]
OR EAX,0x2
MOV dword ptr [ESI + 0xc],EDI
MOV EDI,dword ptr [EBP + -0x68]
MOV byte ptr [ESI + 0x1c],AL
MOV dword ptr [ESI + 0x10],EDI
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0xec]
TEST EAX,EAX
JZ 0x0019e93c
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x5c]
PUSH EAX
CALL 0x001e6d50
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [EAX + 0xec],0x0
JMP 0x0019e8bc
MOV EDI,0xc
MOV ESI,0x1
JMP 0x0019e72b
MOV EAX,dword ptr [EBP + 0x8]
MOV EBX,dword ptr [EBP + -0x68]
SUB ESP,0xc
MOV ECX,dword ptr [EBP + -0x74]
MOV EAX,dword ptr [EAX + 0xec]
MOV EDX,EBX
SHR EDX,0x18
MOV dword ptr [EAX],0x42494c5a
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0xec]
MOV byte ptr [EAX + 0x4],DL
MOV EDX,EBX
SHR EDX,0x10
MOV byte ptr [EAX + 0x6],BH
MOV byte ptr [EAX + 0x5],DL
LEA EDX,[EBP + -0x48]
MOV byte ptr [EAX + 0x7],BL
MOV EBX,dword ptr [EBP + -0x5c]
MOV dword ptr [EAX + 0x8],ECX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x64],EDX
MOV EAX,dword ptr [EAX + 0x20]
MOV dword ptr [EBP + -0x44],0x2
MOV byte ptr [EBP + -0x3e],0x0
LEA ESI,[EAX + 0x1]
LEA EAX,[EBP + -0x40]
PUSH ESI
MOV dword ptr [EBP + -0x60],EAX
MOV dword ptr [EBP + -0x48],EAX
MOV EAX,0x7a2e
MOV word ptr [EBP + -0x40],AX
CALL 0x000295f0
MOV EDX,dword ptr [EBP + -0x64]
ADD ESP,0xc
PUSH EAX
PUSH ESI
PUSH EDX
CALL 0x001f05c0
LEA ESI,[EBP + -0x28]
LEA EDX,[EAX + 0x8]
ADD ESP,0x10
MOV dword ptr [EBP + -0x30],ESI
MOV ECX,dword ptr [EAX]
CMP ECX,EDX
JZ 0x0019ebc8
MOV dword ptr [EBP + -0x30],ECX
MOV ECX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + -0x28],ECX
MOV ECX,dword ptr [EAX + 0x4]
MOV byte ptr [EAX + 0x8],0x0
MOV dword ptr [EBP + -0x2c],ECX
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [EBP + -0x30]
MOV dword ptr [EAX + 0x4],0x0
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0xf0]
CMP EDX,ESI
JZ 0x0019eb50
MOV ECX,dword ptr [EBP + -0x2c]
MOV EBX,dword ptr [EBP + -0x28]
MOV dword ptr [EBP + -0x64],ECX
MOV ECX,dword ptr [EBP + 0x8]
ADD ECX,0xf8
CMP EAX,ECX
JZ 0x0019ebe8
MOV ECX,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [ECX + 0xf8]
MOV dword ptr [EBP + -0x68],ECX
MOV ECX,dword ptr [EBP + 0x8]
MOV dword ptr [ECX + 0xf0],EDX
MOV EDX,dword ptr [EBP + -0x64]
MOV dword ptr [ECX + 0xf8],EBX
MOV dword ptr [ECX + 0xf4],EDX
TEST EAX,EAX
JZ 0x0019ec00
MOV EBX,dword ptr [EBP + -0x68]
MOV dword ptr [EBP + -0x30],EAX
MOV dword ptr [EBP + -0x28],EBX
MOV dword ptr [EBP + -0x2c],0x0
MOV byte ptr [EAX],0x0
MOV EAX,dword ptr [EBP + -0x30]
CMP EAX,ESI
JZ 0x0019ea92
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x5c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x48]
CMP EAX,dword ptr [EBP + -0x60]
JZ 0x0019eaa9
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x5c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EAX + 0xf0]
TEST byte ptr [EAX + 0x54],0x2
JNZ 0x0019ece5
MOV EAX,dword ptr [EBP + 0x8]
MOVZX EAX,byte ptr [EAX + 0x1c]
TEST AL,0x2
JNZ 0x0019ecc9
MOV ESI,dword ptr [EBP + 0x8]
XOR EBX,EBX
MOV ECX,ESI
MOV dword ptr [ESI + 0x20],EDX
MOV ESI,dword ptr [EBP + -0x70]
MOV dword ptr [ECX + 0x58],EDI
MOV dword ptr [ECX + 0x54],ESI
MOV ECX,dword ptr [EBP + -0x4c]
JMP 0x0019e87b
MOV EDI,0xc
MOV ESI,0x2
JMP 0x0019e72b
MOV ECX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [ECX + 0xec]
MOV ECX,ESI
TEST CL,CL
JZ 0x0019ebb0
MOV ESI,dword ptr [EBP + -0x74]
BSWAP EAX
MOV dword ptr [EDX],0x1000000
MOV dword ptr [EDX + 0x8],EAX
MOV dword ptr [EDX + 0x4],ESI
JMP 0x0019e857
MOV ESI,dword ptr [EBP + -0x60]
MOV dword ptr [ECX + 0x10],EAX
MOV dword ptr [ECX],0x1
MOV EAX,dword ptr [EBP + -0x64]
MOV dword ptr [ECX + 0x8],ESI
MOV ESI,dword ptr [EBP + -0x68]
MOV dword ptr [ECX + 0xc],ESI
JMP 0x0019e84d
MOV EDX,dword ptr [EBP + -0x2c]
TEST EDX,EDX
JZ 0x0019eb80
CMP EDX,0x1
JZ 0x0019ec10
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x5c]
PUSH EDX
PUSH ESI
PUSH EAX
CALL 0x000295c0
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EBP + -0x2c]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0xf0]
LEA ESI,[ESI]
MOV EBX,dword ptr [EBP + 0x8]
MOV dword ptr [EBX + 0xf4],EDX
MOV byte ptr [EAX + EDX*0x1],0x0
MOV EAX,dword ptr [EBP + -0x30]
JMP 0x0019ea72
SUB ESP,0xc
PUSH dword ptr [EBP + 0x8]
CALL EAX
MOV dword ptr [EBP + -0x64],EDX
ADD ESP,0x10
JMP 0x0019e808
MOV ESI,dword ptr [EBP + -0x60]
MOV dword ptr [EDX],0x1
MOV dword ptr [EDX + 0x8],EAX
MOV dword ptr [EDX + 0x4],ESI
JMP 0x0019e857
MOV ECX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + -0x28],ECX
MOV ECX,dword ptr [EAX + 0xc]
MOV dword ptr [EBP + -0x24],ECX
MOV ECX,dword ptr [EAX + 0x10]
MOV dword ptr [EBP + -0x20],ECX
MOV ECX,dword ptr [EAX + 0x14]
MOV dword ptr [EBP + -0x1c],ECX
JMP 0x0019e9fc
MOV EAX,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [EBP + -0x64]
MOV dword ptr [EAX + 0xf0],EDX
MOV dword ptr [EAX + 0xf4],ECX
MOV dword ptr [EAX + 0xf8],EBX
MOV dword ptr [EBP + -0x30],ESI
LEA ESI,[EBP + -0x28]
MOV EAX,ESI
JMP 0x0019ea72
MOVZX EDX,byte ptr [EBP + -0x28]
MOV byte ptr [EAX],DL
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EBP + -0x2c]
MOV EAX,dword ptr [EAX + 0xf0]
JMP 0x0019eb80
MOV EBX,dword ptr [EBP + -0x5c]
PUSH ECX
LEA EAX,[EBX + 0xfff0ed00]
PUSH EAX
LEA EAX,[EBX + 0xffef8eac]
PUSH 0x218
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + -0x5c]
PUSH ESI
LEA EAX,[EBX + 0xfff0ed1c]
PUSH EAX
LEA EAX,[EBX + 0xffef8210]
PUSH 0x69
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + -0x5c]
PUSH EDI
LEA EAX,[EBX + 0xfff0ed2c]
PUSH EAX
LEA EAX,[EBX + 0xffef8eac]
PUSH 0xe34
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + -0x5c]
PUSH ECX
LEA EAX,[EBX + 0xfff0ed24]
PUSH EAX
LEA EAX,[EBX + 0xffef8210]
PUSH 0x5c
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + -0x5c]
PUSH EAX
LEA EAX,[EBX + 0xfff0ed44]
PUSH EAX
LEA EAX,[EBX + 0xfff0ec5c]
PUSH 0x141
PUSH EAX
CALL 0x00069d00
PUSH EBX
MOV EBX,dword ptr [EBP + -0x5c]
LEA EAX,[EBX + 0xfff0ed44]
PUSH EAX
LEA EAX,[EBX + 0xfff0ec5c]
PUSH 0xf7
PUSH EAX
CALL 0x00069d00
PUSH EBX
MOV EBX,dword ptr [EBP + -0x5c]
LEA EAX,[EBX + 0xfff0ed10]
PUSH EAX
LEA EAX,[EBX + 0xffef8eac]
PUSH 0xe49
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + -0x5c]
PUSH ESI
LEA EAX,[EBX + 0xfff0ed10]
PUSH EAX
LEA EAX,[EBX + 0xffef8eac]
PUSH 0xe48
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + -0x5c]
PUSH EAX
LEA EAX,[EBX + 0xfff0ed44]
PUSH EAX
LEA EAX,[EBX + 0xfff0ec5c]
PUSH 0x12f
PUSH EAX
CALL 0x00069d00
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_0019e650(undefined **param_1)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  undefined **ppuVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  size_t sVar12;\n  undefined4 *puVar13;\n  undefined ***__dest;\n  int iVar14;\n  undefined *extraout_ECX;\n  undefined *puVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int iVar19;\n  bool bVar20;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  undefined8 uVar24;\n  uint local_68;\n  undefined **local_60;\n  undefined *local_50;\n  undefined2 *local_4c;\n  undefined4 local_48;\n  undefined2 local_44;\n  undefined1 local_42;\n  undefined ***local_34;\n  undefined *local_30;\n  undefined **local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar23 = 0;\n  ppuVar6 = &__DT_PLTGOT;\n  puVar2 = param_1[3];\n  uVar7 = (uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18;\n  puVar3 = param_1[4];\n  puVar15 = param_1[0x23];\n  if (puVar15 == (undefined *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }\n  FUN_000ef2d0(param_1);\n  bVar20 = false;\n  bVar22 = *(int *)(DAT_0038f378 + 0xc) == 0;\n  if (bVar22) goto LAB_0019ec43;\n  iVar14 = 9;\n  iVar4 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);\n  pbVar17 = *(byte **)(param_1[0x3a] + 0x99c);\n  pbVar16 = pbVar17;\n  pbVar18 = &DAT_002806f0;\n  do {\n    if (iVar14 == 0) break;\n    iVar14 = iVar14 + -1;\n    bVar20 = *pbVar16 < *pbVar18;\n    bVar22 = *pbVar16 == *pbVar18;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar21 = false;\n  bVar20 = (!bVar20 && !bVar22) == bVar20;\n  if (bVar20) {\n    iVar19 = 0xc;\n    iVar14 = 1;\nLAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;\n    puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);\n    param_1[0x3b] = puVar8;\n    if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }\n    iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');\n    if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }\n    param_1[0x3b] = (undefined *)0x0;\n  }\n  else {\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }\n  uVar11 = gettext("not compressing section data: zlib error");\n  FUN_000654e0(uVar11);\n  if (param_1[0x3b] != (undefined *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);\n  }\n  bVar23 = *(byte *)(param_1 + 7);\n  puVar15 = extraout_ECX;\n  if (((bVar23 & 2) == 0) && ((bVar23 & 8) == 0)) {\n    param_1[3] = puVar2;\n    *(byte *)(param_1 + 7) = bVar23 | 2;\n    param_1[4] = puVar3;\n    return;\n  }\nLAB_0019ec27:\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15);\n}\n\n" comment (function_definition "void FUN_0019e650(undefined **param_1)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  undefined **ppuVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  size_t sVar12;\n  undefined4 *puVar13;\n  undefined ***__dest;\n  int iVar14;\n  undefined *extraout_ECX;\n  undefined *puVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int iVar19;\n  bool bVar20;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  undefined8 uVar24;\n  uint local_68;\n  undefined **local_60;\n  undefined *local_50;\n  undefined2 *local_4c;\n  undefined4 local_48;\n  undefined2 local_44;\n  undefined1 local_42;\n  undefined ***local_34;\n  undefined *local_30;\n  undefined **local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar23 = 0;\n  ppuVar6 = &__DT_PLTGOT;\n  puVar2 = param_1[3];\n  uVar7 = (uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18;\n  puVar3 = param_1[4];\n  puVar15 = param_1[0x23];\n  if (puVar15 == (undefined *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }\n  FUN_000ef2d0(param_1);\n  bVar20 = false;\n  bVar22 = *(int *)(DAT_0038f378 + 0xc) == 0;\n  if (bVar22) goto LAB_0019ec43;\n  iVar14 = 9;\n  iVar4 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);\n  pbVar17 = *(byte **)(param_1[0x3a] + 0x99c);\n  pbVar16 = pbVar17;\n  pbVar18 = &DAT_002806f0;\n  do {\n    if (iVar14 == 0) break;\n    iVar14 = iVar14 + -1;\n    bVar20 = *pbVar16 < *pbVar18;\n    bVar22 = *pbVar16 == *pbVar18;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar21 = false;\n  bVar20 = (!bVar20 && !bVar22) == bVar20;\n  if (bVar20) {\n    iVar19 = 0xc;\n    iVar14 = 1;\nLAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;\n    puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);\n    param_1[0x3b] = puVar8;\n    if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }\n    iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');\n    if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }\n    param_1[0x3b] = (undefined *)0x0;\n  }\n  else {\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }\n  uVar11 = gettext("not compressing section data: zlib error");\n  FUN_000654e0(uVar11);\n  if (param_1[0x3b] != (undefined *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);\n  }\n  bVar23 = *(byte *)(param_1 + 7);\n  puVar15 = extraout_ECX;\n  if (((bVar23 & 2) == 0) && ((bVar23 & 8) == 0)) {\n    param_1[3] = puVar2;\n    *(byte *)(param_1 + 7) = bVar23 | 2;\n    param_1[4] = puVar3;\n    return;\n  }\nLAB_0019ec27:\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15);\n}" primitive_type (function_declarator "FUN_0019e650(undefined **param_1)" identifier (parameter_list "(undefined **param_1)" ( (parameter_declaration "undefined **param_1" type_identifier (pointer_declarator "**param_1" * (pointer_declarator "*param_1" * identifier))) ))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  undefined **ppuVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  size_t sVar12;\n  undefined4 *puVar13;\n  undefined ***__dest;\n  int iVar14;\n  undefined *extraout_ECX;\n  undefined *puVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int iVar19;\n  bool bVar20;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  undefined8 uVar24;\n  uint local_68;\n  undefined **local_60;\n  undefined *local_50;\n  undefined2 *local_4c;\n  undefined4 local_48;\n  undefined2 local_44;\n  undefined1 local_42;\n  undefined ***local_34;\n  undefined *local_30;\n  undefined **local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar23 = 0;\n  ppuVar6 = &__DT_PLTGOT;\n  puVar2 = param_1[3];\n  uVar7 = (uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18;\n  puVar3 = param_1[4];\n  puVar15 = param_1[0x23];\n  if (puVar15 == (undefined *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }\n  FUN_000ef2d0(param_1);\n  bVar20 = false;\n  bVar22 = *(int *)(DAT_0038f378 + 0xc) == 0;\n  if (bVar22) goto LAB_0019ec43;\n  iVar14 = 9;\n  iVar4 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);\n  pbVar17 = *(byte **)(param_1[0x3a] + 0x99c);\n  pbVar16 = pbVar17;\n  pbVar18 = &DAT_002806f0;\n  do {\n    if (iVar14 == 0) break;\n    iVar14 = iVar14 + -1;\n    bVar20 = *pbVar16 < *pbVar18;\n    bVar22 = *pbVar16 == *pbVar18;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar21 = false;\n  bVar20 = (!bVar20 && !bVar22) == bVar20;\n  if (bVar20) {\n    iVar19 = 0xc;\n    iVar14 = 1;\nLAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;\n    puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);\n    param_1[0x3b] = puVar8;\n    if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }\n    iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');\n    if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }\n    param_1[0x3b] = (undefined *)0x0;\n  }\n  else {\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }\n  uVar11 = gettext("not compressing section data: zlib error");\n  FUN_000654e0(uVar11);\n  if (param_1[0x3b] != (undefined *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);\n  }\n  bVar23 = *(byte *)(param_1 + 7);\n  puVar15 = extraout_ECX;\n  if (((bVar23 & 2) == 0) && ((bVar23 & 8) == 0)) {\n    param_1[3] = puVar2;\n    *(byte *)(param_1 + 7) = bVar23 | 2;\n    param_1[4] = puVar3;\n    return;\n  }\nLAB_0019ec27:\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15);\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined **ppuVar5;" type_identifier (pointer_declarator "**ppuVar5" * (pointer_declarator "*ppuVar5" * identifier)) ;) (declaration "undefined **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined ***__dest;" type_identifier (pointer_declarator "***__dest" * (pointer_declarator "**__dest" * (pointer_declarator "*__dest" * identifier))) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "undefined8 uVar24;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "undefined **local_60;" type_identifier (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier)) ;) (declaration "undefined *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "undefined2 *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined2 local_44;" type_identifier identifier ;) (declaration "undefined1 local_42;" type_identifier identifier ;) (declaration "undefined ***local_34;" type_identifier (pointer_declarator "***local_34" * (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier))) ;) (declaration "undefined *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined **local_2c;" type_identifier (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier)) ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "ppuVar6 = &__DT_PLTGOT;" (assignment_expression "ppuVar6 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "puVar2 = param_1[3];" (assignment_expression "puVar2 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = (uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18;" (assignment_expression "uVar7 = (uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18" identifier = (binary_expression "(uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18" (binary_expression "(uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8" (binary_expression "(uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8" (binary_expression "(uint)puVar2 >> 0x18" (cast_expression "(uint)puVar2" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "((uint)puVar2 & 0xff0000) >> 8" (parenthesized_expression "((uint)puVar2 & 0xff0000)" ( (binary_expression "(uint)puVar2 & 0xff0000" (cast_expression "(uint)puVar2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((uint)puVar2 & 0xff00) << 8" (parenthesized_expression "((uint)puVar2 & 0xff00)" ( (binary_expression "(uint)puVar2 & 0xff00" (cast_expression "(uint)puVar2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(int)puVar2 << 0x18" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal))) ;) (expression_statement "puVar3 = param_1[4];" (assignment_expression "puVar3 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "puVar15 = param_1[0x23];" (assignment_expression "puVar15 = param_1[0x23]" identifier = (subscript_expression "param_1[0x23]" identifier [ number_literal ])) ;) (if_statement "if (puVar15 == (undefined *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }" if (parenthesized_expression "(puVar15 == (undefined *)0x0)" ( (binary_expression "puVar15 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }" { comment (expression_statement "FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");" (call_expression "FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer")" identifier (argument_list "("../../gold/output.h",0xe34,"postprocessing_buffer")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""postprocessing_buffer"" " string_content ") ))) ;) })) (expression_statement "FUN_000ef2d0(param_1);" (call_expression "FUN_000ef2d0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar22 = *(int *)(DAT_0038f378 + 0xc) == 0;" (assignment_expression "bVar22 = *(int *)(DAT_0038f378 + 0xc) == 0" identifier = (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) == number_literal)) ;) (if_statement "if (bVar22) goto LAB_0019ec43;" if (parenthesized_expression "(bVar22)" ( identifier )) (goto_statement "goto LAB_0019ec43;" goto statement_identifier ;)) (expression_statement "iVar14 = 9;" (assignment_expression "iVar14 = 9" identifier = number_literal) ;) (expression_statement "iVar4 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);" (assignment_expression "iVar4 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "pbVar17 = *(byte **)(param_1[0x3a] + 0x99c);" (assignment_expression "pbVar17 = *(byte **)(param_1[0x3a] + 0x99c)" identifier = (pointer_expression "*(byte **)(param_1[0x3a] + 0x99c)" * (cast_expression "(byte **)(param_1[0x3a] + 0x99c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[0x3a] + 0x99c)" ( (binary_expression "param_1[0x3a] + 0x99c" (subscript_expression "param_1[0x3a]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "pbVar16 = pbVar17;" (assignment_expression "pbVar16 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar18 = &DAT_002806f0;" (assignment_expression "pbVar18 = &DAT_002806f0" identifier = (pointer_expression "&DAT_002806f0" & identifier)) ;) (do_statement "do {\n    if (iVar14 == 0) break;\n    iVar14 = iVar14 + -1;\n    bVar20 = *pbVar16 < *pbVar18;\n    bVar22 = *pbVar16 == *pbVar18;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);" do (compound_statement "{\n    if (iVar14 == 0) break;\n    iVar14 = iVar14 + -1;\n    bVar20 = *pbVar16 < *pbVar18;\n    bVar22 = *pbVar16 == *pbVar18;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n  }" { (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar16 < *pbVar18;" (assignment_expression "bVar20 = *pbVar16 < *pbVar18" identifier = (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar22 = *pbVar16 == *pbVar18;" (assignment_expression "bVar22 = *pbVar16 == *pbVar18" identifier = (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar20 && !bVar22) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar22) == bVar20" identifier = (binary_expression "(!bVar20 && !bVar22) == bVar20" (parenthesized_expression "(!bVar20 && !bVar22)" ( (binary_expression "!bVar20 && !bVar22" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar20) {\n    iVar19 = 0xc;\n    iVar14 = 1;\nLAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;\n    puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);\n    param_1[0x3b] = puVar8;\n    if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }\n    iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');\n    if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }\n    param_1[0x3b] = (undefined *)0x0;\n  }\n  else {\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }" if (parenthesized_expression "(bVar20)" ( identifier )) (compound_statement "{\n    iVar19 = 0xc;\n    iVar14 = 1;\nLAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;\n    puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);\n    param_1[0x3b] = puVar8;\n    if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }\n    iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');\n    if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }\n    param_1[0x3b] = (undefined *)0x0;\n  }" { (expression_statement "iVar19 = 0xc;" (assignment_expression "iVar19 = 0xc" identifier = number_literal) ;) (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;" statement_identifier : (expression_statement "local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;" (assignment_expression "local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80" identifier = (binary_expression "puVar2 + (uint)puVar2 / 1000 + 0x80" (binary_expression "puVar2 + (uint)puVar2 / 1000" identifier + (binary_expression "(uint)puVar2 / 1000" (cast_expression "(uint)puVar2" ( (type_descriptor "uint" type_identifier) ) identifier) / number_literal)) + number_literal)) ;)) (expression_statement "puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);" (assignment_expression "puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19)" identifier = (cast_expression "(undefined *)FUN_001e5180(local_50 + iVar19)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5180(local_50 + iVar19)" identifier (argument_list "(local_50 + iVar19)" ( (binary_expression "local_50 + iVar19" identifier + identifier) ))))) ;) (expression_statement "param_1[0x3b] = puVar8;" (assignment_expression "param_1[0x3b] = puVar8" (subscript_expression "param_1[0x3b]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }" if (parenthesized_expression "(*(int *)(DAT_0038f378 + 8) == 0)" ( (binary_expression "*(int *)(DAT_0038f378 + 8) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }" { comment (expression_statement "FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",&DAT_0038f378)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , (pointer_expression "&DAT_0038f378" & identifier) ))) ;) })) (expression_statement "iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');" (assignment_expression "iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01')" identifier = (call_expression "compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01')" identifier (argument_list "(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01')" ( (binary_expression "puVar8 + iVar19" identifier + identifier) , (pointer_expression "&local_50" & identifier) , identifier , identifier , (binary_expression "(0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01'" (binary_expression "(0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b'" (parenthesized_expression "(0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830))" ( (binary_expression "0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)" number_literal < (pointer_expression "*(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)" * (cast_expression "(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 8) + 0x2830)" ( (binary_expression "*(int *)(DAT_0038f378 + 8) + 0x2830" (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) )))) + number_literal) ))))) )) * (char_literal "'\b'" ' escape_sequence ')) + (char_literal "'\x01'" ' escape_sequence ')) )))) ;) (if_statement "if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }" { (expression_statement "local_50 = local_50 + iVar19;" (assignment_expression "local_50 = local_50 + iVar19" identifier = (binary_expression "local_50 + iVar19" identifier + identifier)) ;) (expression_statement "puVar15 = param_1[0x15];" (assignment_expression "puVar15 = param_1[0x15]" identifier = (subscript_expression "param_1[0x15]" identifier [ number_literal ])) ;) (expression_statement "puVar8 = param_1[0x16];" (assignment_expression "puVar8 = param_1[0x16]" identifier = (subscript_expression "param_1[0x16]" identifier [ number_literal ])) ;) (if_statement "if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }" if (parenthesized_expression "(iVar14 == 2)" ( (binary_expression "iVar14 == 2" identifier == number_literal) )) (compound_statement "{\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }" { (expression_statement "ppuVar6 = (undefined **)0x2;" (assignment_expression "ppuVar6 = (undefined **)0x2" identifier = (cast_expression "(undefined **)0x2" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }" if (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }" { (labeled_statement "LAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);" statement_identifier : comment (expression_statement "FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",ppuVar6)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , identifier ))) ;)) })) (expression_statement "cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);" (assignment_expression "cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" identifier = (pointer_expression "*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" * (cast_expression "(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" ( (binary_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4" (pointer_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }" if (parenthesized_expression "(*(code **)(*param_1 + 0xc) == FUN_000a4920)" ( (binary_expression "*(code **)(*param_1 + 0xc) == FUN_000a4920" (pointer_expression "*(code **)(*param_1 + 0xc)" * (cast_expression "(code **)(*param_1 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0xc)" ( (binary_expression "*param_1 + 0xc" (pointer_expression "*param_1" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }" { (expression_statement "uVar24 = *(undefined8 *)(param_1 + 9);" (assignment_expression "uVar24 = *(undefined8 *)(param_1 + 9)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 9)" * (cast_expression "(undefined8 *)(param_1 + 9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 9)" ( (binary_expression "param_1 + 9" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }" else (compound_statement "{\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }" { (expression_statement "uVar24 = (**(code **)(*param_1 + 0xc))(param_1);" (assignment_expression "uVar24 = (**(code **)(*param_1 + 0xc))(param_1)" identifier = (call_expression "(**(code **)(*param_1 + 0xc))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 0xc))" ( (pointer_expression "**(code **)(*param_1 + 0xc)" * (pointer_expression "*(code **)(*param_1 + 0xc)" * (cast_expression "(code **)(*param_1 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0xc)" ( (binary_expression "*param_1 + 0xc" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) }))) (expression_statement "local_68 = (uint)((ulonglong)uVar24 >> 0x20);" (assignment_expression "local_68 = (uint)((ulonglong)uVar24 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar24 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar24 >> 0x20)" ( (binary_expression "(ulonglong)uVar24 >> 0x20" (cast_expression "(ulonglong)uVar24" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar10 = (uint)uVar24;" (assignment_expression "uVar10 = (uint)uVar24" identifier = (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }" if (parenthesized_expression "(iVar4 == 0x20)" ( (binary_expression "iVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }" { (expression_statement "puVar13 = (undefined4 *)param_1[0x3b];" (assignment_expression "puVar13 = (undefined4 *)param_1[0x3b]" identifier = (cast_expression "(undefined4 *)param_1[0x3b]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x3b]" identifier [ number_literal ]))) ;) (if_statement "if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }" { (expression_statement "*puVar13 = 1;" (assignment_expression "*puVar13 = 1" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13[2] = uVar10;" (assignment_expression "puVar13[2] = uVar10" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[1] = puVar2;" (assignment_expression "puVar13[1] = puVar2" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }" else (compound_statement "{\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }" { (expression_statement "*puVar13 = 0x1000000;" (assignment_expression "*puVar13 = 0x1000000" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;" (assignment_expression "puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar13[1] = uVar7;" (assignment_expression "puVar13[1] = uVar7" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n          if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }" else (compound_statement "{\n          if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }" { (if_statement "if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }" if (parenthesized_expression "(iVar4 != 0x40)" ( (binary_expression "iVar4 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }" { comment (expression_statement "FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);" (call_expression "FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10)" identifier (argument_list "("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10)" ( (string_literal ""../../gold/compressed_output.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") , identifier ))) ;) })) (expression_statement "puVar13 = (undefined4 *)param_1[0x3b];" (assignment_expression "puVar13 = (undefined4 *)param_1[0x3b]" identifier = (cast_expression "(undefined4 *)param_1[0x3b]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x3b]" identifier [ number_literal ]))) ;) (if_statement "if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }" { (expression_statement "puVar13[4] = uVar10;" (assignment_expression "puVar13[4] = uVar10" (subscript_expression "puVar13[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar13 = 1;" (assignment_expression "*puVar13 = 1" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13[2] = puVar2;" (assignment_expression "puVar13[2] = puVar2" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = puVar3;" (assignment_expression "puVar13[3] = puVar3" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }" else (compound_statement "{\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }" { (expression_statement "*puVar13 = 0;" (assignment_expression "*puVar13 = 0" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;" (assignment_expression "puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = (binary_expression "(uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18" (binary_expression "(uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8" (binary_expression "(uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8" (binary_expression "(uint)puVar3 >> 0x18" (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "((uint)puVar3 & 0xff0000) >> 8" (parenthesized_expression "((uint)puVar3 & 0xff0000)" ( (binary_expression "(uint)puVar3 & 0xff0000" (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((uint)puVar3 & 0xff00) << 8" (parenthesized_expression "((uint)puVar3 & 0xff00)" ( (binary_expression "(uint)puVar3 & 0xff00" (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(int)puVar3 << 0x18" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal))) ;) (expression_statement "puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;" (assignment_expression "puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18" (subscript_expression "puVar13[4]" identifier [ number_literal ]) = (binary_expression "local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18" (binary_expression "local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8" (binary_expression "local_68 >> 0x18 | (local_68 & 0xff0000) >> 8" (binary_expression "local_68 >> 0x18" identifier >> number_literal) | (binary_expression "(local_68 & 0xff0000) >> 8" (parenthesized_expression "(local_68 & 0xff0000)" ( (binary_expression "local_68 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_68 & 0xff00) << 8" (parenthesized_expression "(local_68 & 0xff00)" ( (binary_expression "local_68 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_68 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar13[3] = uVar7;" (assignment_expression "puVar13[3] = uVar7" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;" (assignment_expression "local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18" identifier = (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal))) ;) }))) (expression_statement "puVar13[5] = local_68;" (assignment_expression "puVar13[5] = local_68" (subscript_expression "puVar13[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[1] = 0;" (assignment_expression "puVar13[1] = 0" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "bVar23 = *(byte *)(param_1 + 7);" (assignment_expression "bVar23 = *(byte *)(param_1 + 7)" identifier = (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) ))))) ;) (expression_statement "param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);" (assignment_expression "param_1[0x15] = (undefined *)((uint)puVar15 | 0x800)" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) = (cast_expression "(undefined *)((uint)puVar15 | 0x800)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar15 | 0x800)" ( (binary_expression "(uint)puVar15 | 0x800" (cast_expression "(uint)puVar15" ( (type_descriptor "uint" type_identifier) ) identifier) | number_literal) )))) ;) (expression_statement "param_1[0x16] = puVar8;" (assignment_expression "param_1[0x16] = puVar8" (subscript_expression "param_1[0x16]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15 = local_50;" (assignment_expression "puVar15 = local_50" identifier = identifier) ;) (if_statement "if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;" if (parenthesized_expression "((bVar23 >> 1 & 1) != 0)" ( (binary_expression "(bVar23 >> 1 & 1) != 0" (parenthesized_expression "(bVar23 >> 1 & 1)" ( (binary_expression "bVar23 >> 1 & 1" (binary_expression "bVar23 >> 1" identifier >> number_literal) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0019ec27;" goto statement_identifier ;)) }) (else_clause "else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }" else (compound_statement "{\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }" { (expression_statement "*(undefined4 *)param_1[0x3b] = 0x42494c5a;" (assignment_expression "*(undefined4 *)param_1[0x3b] = 0x42494c5a" (pointer_expression "*(undefined4 *)param_1[0x3b]" * (cast_expression "(undefined4 *)param_1[0x3b]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x3b]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "puVar2 = param_1[0x3b];" (assignment_expression "puVar2 = param_1[0x3b]" identifier = (subscript_expression "param_1[0x3b]" identifier [ number_literal ])) ;) (expression_statement "puVar2[4] = (char)((uint)puVar3 >> 0x18);" (assignment_expression "puVar2[4] = (char)((uint)puVar3 >> 0x18)" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (cast_expression "(char)((uint)puVar3 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)puVar3 >> 0x18)" ( (binary_expression "(uint)puVar3 >> 0x18" (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar2[6] = (char)((uint)puVar3 >> 8);" (assignment_expression "puVar2[6] = (char)((uint)puVar3 >> 8)" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = (cast_expression "(char)((uint)puVar3 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)puVar3 >> 8)" ( (binary_expression "(uint)puVar3 >> 8" (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar2[5] = (char)((uint)puVar3 >> 0x10);" (assignment_expression "puVar2[5] = (char)((uint)puVar3 >> 0x10)" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = (cast_expression "(char)((uint)puVar3 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)puVar3 >> 0x10)" ( (binary_expression "(uint)puVar3 >> 0x10" (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar2[7] = (char)puVar3;" (assignment_expression "puVar2[7] = (char)puVar3" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = (cast_expression "(char)puVar3" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(uint *)(puVar2 + 8) = uVar7;" (assignment_expression "*(uint *)(puVar2 + 8) = uVar7" (pointer_expression "*(uint *)(puVar2 + 8)" * (cast_expression "(uint *)(puVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 8)" ( (binary_expression "puVar2 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2 = param_1[8];" (assignment_expression "puVar2 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "local_48 = 2;" (assignment_expression "local_48 = 2" identifier = number_literal) ;) (expression_statement "local_42 = 0;" (assignment_expression "local_42 = 0" identifier = number_literal) ;) (expression_statement "local_44 = 0x7a2e;" (assignment_expression "local_44 = 0x7a2e" identifier = number_literal) ;) (expression_statement "local_4c = &local_44;" (assignment_expression "local_4c = &local_44" identifier = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "sVar12 = strlen(puVar2 + 1);" (assignment_expression "sVar12 = strlen(puVar2 + 1)" identifier = (call_expression "strlen(puVar2 + 1)" identifier (argument_list "(puVar2 + 1)" ( (binary_expression "puVar2 + 1" identifier + number_literal) )))) ;) comment (expression_statement "puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);" (assignment_expression "puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12)" identifier = (cast_expression "(undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001f05c0(&local_4c,puVar2 + 1,sVar12)" identifier (argument_list "(&local_4c,puVar2 + 1,sVar12)" ( (pointer_expression "&local_4c" & identifier) , (binary_expression "puVar2 + 1" identifier + number_literal) , identifier ))))) ;) (if_statement "if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }" if (parenthesized_expression "((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2))" ( (binary_expression "(undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)" (cast_expression "(undefined ***)*puVar13" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*puVar13" * identifier)) == (cast_expression "(undefined ***)(puVar13 + 2)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar13 + 2)" ( (binary_expression "puVar13 + 2" identifier + number_literal) )))) )) (compound_statement "{\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }" { (expression_statement "local_2c = (undefined **)puVar13[2];" (assignment_expression "local_2c = (undefined **)puVar13[2]" identifier = (cast_expression "(undefined **)puVar13[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "local_28 = puVar13[3];" (assignment_expression "local_28 = puVar13[3]" identifier = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (expression_statement "local_24 = puVar13[4];" (assignment_expression "local_24 = puVar13[4]" identifier = (subscript_expression "puVar13[4]" identifier [ number_literal ])) ;) (expression_statement "local_20 = puVar13[5];" (assignment_expression "local_20 = puVar13[5]" identifier = (subscript_expression "puVar13[5]" identifier [ number_literal ])) ;) (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) }) (else_clause "else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }" else (compound_statement "{\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }" { (expression_statement "local_2c = (undefined **)puVar13[2];" (assignment_expression "local_2c = (undefined **)puVar13[2]" identifier = (cast_expression "(undefined **)puVar13[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "local_34 = (undefined ***)*puVar13;" (assignment_expression "local_34 = (undefined ***)*puVar13" identifier = (cast_expression "(undefined ***)*puVar13" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*puVar13" * identifier))) ;) }))) (expression_statement "local_30 = (undefined *)puVar13[1];" (assignment_expression "local_30 = (undefined *)puVar13[1]" identifier = (cast_expression "(undefined *)puVar13[1]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[1]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined1 *)(puVar13 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar13 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar13 + 2)" * (cast_expression "(undefined1 *)(puVar13 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 2)" ( (binary_expression "puVar13 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar13 = puVar13 + 2;" (assignment_expression "*puVar13 = puVar13 + 2" (pointer_expression "*puVar13" * identifier) = (binary_expression "puVar13 + 2" identifier + number_literal)) ;) (expression_statement "puVar13[1] = 0;" (assignment_expression "puVar13[1] = 0" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__dest = (undefined ***)param_1[0x3c];" (assignment_expression "__dest = (undefined ***)param_1[0x3c]" identifier = (cast_expression "(undefined ***)param_1[0x3c]" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "param_1[0x3c]" identifier [ number_literal ]))) ;) (if_statement "if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }" if (parenthesized_expression "(local_34 == &local_2c)" ( (binary_expression "local_34 == &local_2c" identifier == (pointer_expression "&local_2c" & identifier)) )) (compound_statement "{\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }" { (if_statement "if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }" if (parenthesized_expression "(local_30 != (undefined *)0x0)" ( (binary_expression "local_30 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }" { (if_statement "if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }" if (parenthesized_expression "(local_30 == (undefined *)0x1)" ( (binary_expression "local_30 == (undefined *)0x1" identifier == (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }" { (expression_statement "*(undefined1 *)__dest = local_2c._0_1_;" (assignment_expression "*(undefined1 *)__dest = local_2c._0_1_" (pointer_expression "*(undefined1 *)__dest" * (cast_expression "(undefined1 *)__dest" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "local_2c._0_1_" identifier . field_identifier)) ;) (expression_statement "__dest = (undefined ***)param_1[0x3c];" (assignment_expression "__dest = (undefined ***)param_1[0x3c]" identifier = (cast_expression "(undefined ***)param_1[0x3c]" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "param_1[0x3c]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }" else (compound_statement "{\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }" { (expression_statement "memcpy(__dest,&local_2c,(size_t)local_30);" (call_expression "memcpy(__dest,&local_2c,(size_t)local_30)" identifier (argument_list "(__dest,&local_2c,(size_t)local_30)" ( identifier , (pointer_expression "&local_2c" & identifier) , (cast_expression "(size_t)local_30" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "__dest = (undefined ***)param_1[0x3c];" (assignment_expression "__dest = (undefined ***)param_1[0x3c]" identifier = (cast_expression "(undefined ***)param_1[0x3c]" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "param_1[0x3c]" identifier [ number_literal ]))) ;) }))) })) (expression_statement "param_1[0x3d] = local_30;" (assignment_expression "param_1[0x3d] = local_30" (subscript_expression "param_1[0x3d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)__dest + (int)local_30) = 0;" (assignment_expression "*(undefined1 *)((int)__dest + (int)local_30) = 0" (pointer_expression "*(undefined1 *)((int)__dest + (int)local_30)" * (cast_expression "(undefined1 *)((int)__dest + (int)local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__dest + (int)local_30)" ( (binary_expression "(int)__dest + (int)local_30" (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = number_literal) ;) (expression_statement "ppuVar6 = param_1;" (assignment_expression "ppuVar6 = param_1" identifier = identifier) ;) }) (else_clause "else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }" else (compound_statement "{\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }" { (expression_statement "ppuVar6 = local_2c;" (assignment_expression "ppuVar6 = local_2c" identifier = identifier) ;) (if_statement "if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }" if (parenthesized_expression "(__dest == (undefined ***)(param_1 + 0x3e))" ( (binary_expression "__dest == (undefined ***)(param_1 + 0x3e)" identifier == (cast_expression "(undefined ***)(param_1 + 0x3e)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_1 + 0x3e)" ( (binary_expression "param_1 + 0x3e" identifier + number_literal) )))) )) (compound_statement "{\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }" { (expression_statement "param_1[0x3c] = (undefined *)local_34;" (assignment_expression "param_1[0x3c] = (undefined *)local_34" (subscript_expression "param_1[0x3c]" identifier [ number_literal ]) = (cast_expression "(undefined *)local_34" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "param_1[0x3d] = local_30;" (assignment_expression "param_1[0x3d] = local_30" (subscript_expression "param_1[0x3d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x3e] = (undefined *)local_2c;" (assignment_expression "param_1[0x3e] = (undefined *)local_2c" (subscript_expression "param_1[0x3e]" identifier [ number_literal ]) = (cast_expression "(undefined *)local_2c" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) }) (else_clause "else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }" else (compound_statement "{\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }" { (expression_statement "ppuVar5 = (undefined **)param_1[0x3e];" (assignment_expression "ppuVar5 = (undefined **)param_1[0x3e]" identifier = (cast_expression "(undefined **)param_1[0x3e]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_1[0x3e]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x3c] = (undefined *)local_34;" (assignment_expression "param_1[0x3c] = (undefined *)local_34" (subscript_expression "param_1[0x3c]" identifier [ number_literal ]) = (cast_expression "(undefined *)local_34" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "param_1[0x3e] = (undefined *)local_2c;" (assignment_expression "param_1[0x3e] = (undefined *)local_2c" (subscript_expression "param_1[0x3e]" identifier [ number_literal ]) = (cast_expression "(undefined *)local_2c" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "param_1[0x3d] = local_30;" (assignment_expression "param_1[0x3d] = local_30" (subscript_expression "param_1[0x3d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (if_statement "if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }" if (parenthesized_expression "(__dest != (undefined ***)0x0)" ( (binary_expression "__dest != (undefined ***)0x0" identifier != (cast_expression "(undefined ***)0x0" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }" { (expression_statement "ppuVar6 = ppuVar5;" (assignment_expression "ppuVar6 = ppuVar5" identifier = identifier) ;) (expression_statement "local_34 = __dest;" (assignment_expression "local_34 = __dest" identifier = identifier) ;) (expression_statement "local_2c = ppuVar5;" (assignment_expression "local_2c = ppuVar5" identifier = identifier) ;) })) }))) }))) (expression_statement "local_60 = &__DT_PLTGOT;" (assignment_expression "local_60 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined1 *)local_34 = 0;" (assignment_expression "*(undefined1 *)local_34 = 0" (pointer_expression "*(undefined1 *)local_34" * (cast_expression "(undefined1 *)local_34" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }" if (parenthesized_expression "(local_34 != &local_2c)" ( (binary_expression "local_34 != &local_2c" identifier != (pointer_expression "&local_2c" & identifier)) )) (compound_statement "{\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }" { (expression_statement "FUN_001e6db0(local_34);" (call_expression "FUN_001e6db0(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) (expression_statement "ppuVar6 = local_60;" (assignment_expression "ppuVar6 = local_60" identifier = identifier) ;) })) (if_statement "if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }" if (parenthesized_expression "(local_4c != &local_44)" ( (binary_expression "local_4c != &local_44" identifier != (pointer_expression "&local_44" & identifier)) )) (compound_statement "{\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }" { (expression_statement "FUN_001e6db0(local_4c);" (call_expression "FUN_001e6db0(local_4c)" identifier (argument_list "(local_4c)" ( identifier ))) ;) (expression_statement "ppuVar6 = local_60;" (assignment_expression "ppuVar6 = local_60" identifier = identifier) ;) })) (if_statement "if (((uint)param_1[0x15] & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }" if (parenthesized_expression "(((uint)param_1[0x15] & 2) != 0)" ( (binary_expression "((uint)param_1[0x15] & 2) != 0" (parenthesized_expression "((uint)param_1[0x15] & 2)" ( (binary_expression "(uint)param_1[0x15] & 2" (cast_expression "(uint)param_1[0x15]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[0x15]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }" { comment (expression_statement "FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);" (call_expression "FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c)" identifier (argument_list "("../../gold/output.h",0xe48,"set_name",&local_2c)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_name"" " string_content ") , (pointer_expression "&local_2c" & identifier) ))) ;) })) (expression_statement "bVar23 = *(byte *)(param_1 + 7);" (assignment_expression "bVar23 = *(byte *)(param_1 + 7)" identifier = (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) ))))) ;) (if_statement "if ((bVar23 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }" if (parenthesized_expression "((bVar23 & 2) != 0)" ( (binary_expression "(bVar23 & 2) != 0" (parenthesized_expression "(bVar23 & 2)" ( (binary_expression "bVar23 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }" { comment (expression_statement "FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);" (call_expression "FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6)" identifier (argument_list "("../../gold/output.h",0xe49,"set_name",ppuVar6)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_name"" " string_content ") , identifier ))) ;) })) (expression_statement "param_1[8] = param_1[0x3c];" (assignment_expression "param_1[8] = param_1[0x3c]" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (subscript_expression "param_1[0x3c]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x16] = puVar8;" (assignment_expression "param_1[0x16] = puVar8" (subscript_expression "param_1[0x16]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x15] = puVar15;" (assignment_expression "param_1[0x15] = puVar15" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "puVar15 = local_50;" (assignment_expression "puVar15 = local_50" identifier = identifier) ;) (if_statement "if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }" if (parenthesized_expression "((bVar23 & 8) == 0)" ( (binary_expression "(bVar23 & 8) == 0" (parenthesized_expression "(bVar23 & 8)" ( (binary_expression "bVar23 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }" { (expression_statement "param_1[3] = local_50;" (assignment_expression "param_1[3] = local_50" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = (undefined *)0x0;" (assignment_expression "param_1[4] = (undefined *)0x0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(byte *)(param_1 + 7) = bVar23 | 2;" (assignment_expression "*(byte *)(param_1 + 7) = bVar23 | 2" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = (binary_expression "bVar23 | 2" identifier | number_literal)) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0019ec27;" goto statement_identifier ;) })) (if_statement "if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }" if (parenthesized_expression "(param_1[0x3b] != (undefined *)0x0)" ( (binary_expression "param_1[0x3b] != (undefined *)0x0" (subscript_expression "param_1[0x3b]" identifier [ number_literal ]) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_001e6d50(param_1[0x3b]);\n    }" { (expression_statement "FUN_001e6d50(param_1[0x3b]);" (call_expression "FUN_001e6d50(param_1[0x3b])" identifier (argument_list "(param_1[0x3b])" ( (subscript_expression "param_1[0x3b]" identifier [ number_literal ]) ))) ;) })) (expression_statement "param_1[0x3b] = (undefined *)0x0;" (assignment_expression "param_1[0x3b] = (undefined *)0x0" (subscript_expression "param_1[0x3b]" identifier [ number_literal ]) = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }" else (compound_statement "{\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }" { (expression_statement "iVar14 = 10;" (assignment_expression "iVar14 = 10" identifier = number_literal) ;) (expression_statement "pbVar16 = pbVar17;" (assignment_expression "pbVar16 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar18 = (byte *)"zlib-gabi";" (assignment_expression "pbVar18 = (byte *)"zlib-gabi"" identifier = (cast_expression "(byte *)"zlib-gabi"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""zlib-gabi"" " string_content "))) ;) (do_statement "do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);" do (compound_statement "{\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    }" { (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar16 < *pbVar18;" (assignment_expression "bVar21 = *pbVar16 < *pbVar18" identifier = (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar16 == *pbVar18;" (assignment_expression "bVar20 = *pbVar16 == *pbVar18" identifier = (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar21 && !bVar20) == bVar21;" (assignment_expression "bVar20 = (!bVar21 && !bVar20) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" ( (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }" if (parenthesized_expression "(bVar20)" ( identifier )) (compound_statement "{\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }" { (labeled_statement "LAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }" statement_identifier : (if_statement "if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }" if (parenthesized_expression "(iVar4 == 0x20)" ( (binary_expression "iVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }" { (expression_statement "iVar19 = 0xc;" (assignment_expression "iVar19 = 0xc" identifier = number_literal) ;) (expression_statement "iVar14 = 2;" (assignment_expression "iVar14 = 2" identifier = number_literal) ;) }) (else_clause "else {\n        if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }" else (compound_statement "{\n        if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }" { (if_statement "if (iVar4 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }" if (parenthesized_expression "(iVar4 != 0x40)" ( (binary_expression "iVar4 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }" { comment (expression_statement "FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);" (call_expression "FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT)" identifier (argument_list "("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT)" ( (string_literal ""../../gold/compressed_output.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") , (pointer_expression "&__DT_PLTGOT" & identifier) ))) ;) })) (expression_statement "iVar19 = 0x18;" (assignment_expression "iVar19 = 0x18" identifier = number_literal) ;) (expression_statement "iVar14 = 2;" (assignment_expression "iVar14 = 2" identifier = number_literal) ;) })))) (goto_statement "goto LAB_0019e72b;" goto statement_identifier ;) })) (expression_statement "iVar14 = 5;" (assignment_expression "iVar14 = 5" identifier = number_literal) ;) (expression_statement "pbVar16 = &DAT_002806eb;" (assignment_expression "pbVar16 = &DAT_002806eb" identifier = (pointer_expression "&DAT_002806eb" & identifier)) ;) (do_statement "do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);" do (compound_statement "{\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    }" { (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar17 < *pbVar16;" (assignment_expression "bVar22 = *pbVar17 < *pbVar16" identifier = (binary_expression "*pbVar17 < *pbVar16" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar20 = *pbVar17 == *pbVar16;" (assignment_expression "bVar20 = *pbVar17 == *pbVar16" identifier = (binary_expression "*pbVar17 == *pbVar16" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;" if (parenthesized_expression "((!bVar22 && !bVar20) == bVar22)" ( (binary_expression "(!bVar22 && !bVar20) == bVar22" (parenthesized_expression "(!bVar22 && !bVar20)" ( (binary_expression "!bVar22 && !bVar20" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0019e70c;" goto statement_identifier ;)) }))) (expression_statement "uVar11 = gettext("not compressing section data: zlib error");" (assignment_expression "uVar11 = gettext("not compressing section data: zlib error")" identifier = (call_expression "gettext("not compressing section data: zlib error")" identifier (argument_list "("not compressing section data: zlib error")" ( (string_literal ""not compressing section data: zlib error"" " string_content ") )))) ;) (expression_statement "FUN_000654e0(uVar11);" (call_expression "FUN_000654e0(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (if_statement "if (param_1[0x3b] != (undefined *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);\n  }" if (parenthesized_expression "(param_1[0x3b] != (undefined *)0x0)" ( (binary_expression "param_1[0x3b] != (undefined *)0x0" (subscript_expression "param_1[0x3b]" identifier [ number_literal ]) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);\n  }" { comment (expression_statement "FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);" (call_expression "FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1)" identifier (argument_list "("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1)" ( (string_literal ""../../gold/compressed_output.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") , identifier ))) ;) })) (expression_statement "bVar23 = *(byte *)(param_1 + 7);" (assignment_expression "bVar23 = *(byte *)(param_1 + 7)" identifier = (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) ))))) ;) (expression_statement "puVar15 = extraout_ECX;" (assignment_expression "puVar15 = extraout_ECX" identifier = identifier) ;) (if_statement "if (((bVar23 & 2) == 0) && ((bVar23 & 8) == 0)) {\n    param_1[3] = puVar2;\n    *(byte *)(param_1 + 7) = bVar23 | 2;\n    param_1[4] = puVar3;\n    return;\n  }" if (parenthesized_expression "(((bVar23 & 2) == 0) && ((bVar23 & 8) == 0))" ( (binary_expression "((bVar23 & 2) == 0) && ((bVar23 & 8) == 0)" (parenthesized_expression "((bVar23 & 2) == 0)" ( (binary_expression "(bVar23 & 2) == 0" (parenthesized_expression "(bVar23 & 2)" ( (binary_expression "bVar23 & 2" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((bVar23 & 8) == 0)" ( (binary_expression "(bVar23 & 8) == 0" (parenthesized_expression "(bVar23 & 8)" ( (binary_expression "bVar23 & 8" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    param_1[3] = puVar2;\n    *(byte *)(param_1 + 7) = bVar23 | 2;\n    param_1[4] = puVar3;\n    return;\n  }" { (expression_statement "param_1[3] = puVar2;" (assignment_expression "param_1[3] = puVar2" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(param_1 + 7) = bVar23 | 2;" (assignment_expression "*(byte *)(param_1 + 7) = bVar23 | 2" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = (binary_expression "bVar23 | 2" identifier | number_literal)) ;) (expression_statement "param_1[4] = puVar3;" (assignment_expression "param_1[4] = puVar3" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0019ec27:\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15);" statement_identifier : comment (expression_statement "FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15);" (call_expression "FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15)" identifier (argument_list "("../../gold/output.h",0x218,"set_data_size",puVar15)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_data_size"" " string_content ") , identifier ))) ;)) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void set_final_data_size(Output_compressed_section * this) */\n\nvoid __thiscall\ngold::Output_compressed_section::set_final_data_size(Output_compressed_section *this)\n\n{\n  char cVar1;\n  uint uVar2;\n  uint uVar3;\n  uchar *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  _func_int_varargs *p_Var8;\n  size_type sVar9;\n  uint uVar10;\n  uchar *puVar11;\n  int iVar12;\n  char *pcVar13;\n  size_t sVar14;\n  undefined4 *puVar15;\n  size_type *__dest;\n  uint uVar16;\n  int iVar17;\n  uint extraout_EDX;\n  byte *pbVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint local_68;\n  ulong compressed_size;\n  undefined2 *local_4c;\n  undefined4 local_48;\n  undefined2 local_44;\n  undefined1 local_42;\n  size_type *local_34;\n  size_t local_30;\n  size_type local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar25 = 0;\n  uVar2 = (uint)(this->super_Output_section).super_Output_data.data_size_;\n  uVar10 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n  uVar3 = *(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4);\n  puVar4 = (this->super_Output_section).postprocessing_buffer_;\n  if (puVar4 == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }\n  Output_section::write_to_postprocessing_buffer(&this->super_Output_section);\n  bVar22 = false;\n  bVar24 = parameters->target_ == (Target *)0x0;\n  if (bVar24) goto LAB_0019ec43;\n  iVar17 = 9;\n  iVar5 = **(int **)(parameters->target_ + 4);\n  pbVar19 = (byte *)(this->options_->compress_debug_sections_).value;\n  pbVar18 = pbVar19;\n  pbVar20 = &DAT_002806f0;\n  do {\n    if (iVar17 == 0) break;\n    iVar17 = iVar17 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar24 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n  } while (bVar24);\n  bVar23 = false;\n  bVar22 = (!bVar22 && !bVar24) == bVar22;\n  if (bVar22) {\n    iVar21 = 0xc;\n    iVar17 = 1;\nLAB_0019e72b:\n    compressed_size = uVar2 + 0x80 + uVar2 / 1000;\n    puVar11 = (uchar *)operator_new__(compressed_size + iVar21);\n    this->data_ = puVar11;\n    if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    iVar12 = compress2(puVar11 + iVar21,&compressed_size,puVar4,uVar2,\n                       (0 < (parameters->options_->optimize_).value) * '\b' + '\x01');\n    if (iVar12 == 0) {\n      compressed_size = compressed_size + iVar21;\n      uVar6 = (uint)(this->super_Output_section).flags_;\n      uVar7 = *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4);\n      if (iVar17 == 2) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar1 = *(char *)(*(int *)(parameters->target_ + 4) + 4);\n        p_Var8 = (this->super_Output_section).super_Output_data._vptr_Output_data[3];\n        if (p_Var8 == Output_section::do_addralign) {\n          local_68 = *(uint *)((int)&(this->super_Output_section).addralign_ + 4);\n          uVar16 = (uint)(this->super_Output_section).addralign_;\n        }\n        else {\n          uVar16 = (*p_Var8)(this);\n          local_68 = extraout_EDX;\n        }\n        if (iVar5 == 0x20) {\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar16;\n            *(uint *)(puVar4 + 4) = uVar2;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\x01';\n            *(uint *)(puVar4 + 8) =\n                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n            ;\n            *(uint *)(puVar4 + 4) = uVar10;\n          }\n        }\n        else {\n          if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size");\n          }\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            *(uint *)(puVar4 + 0x10) = uVar16;\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar2;\n            *(uint *)(puVar4 + 0xc) = uVar3;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n            *(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18;\n            *(uint *)(puVar4 + 0xc) = uVar10;\n            local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18;\n          }\n          *(uint *)(puVar4 + 0x14) = local_68;\n          puVar4[4] = '\0';\n          puVar4[5] = '\0';\n          puVar4[6] = '\0';\n          puVar4[7] = '\0';\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6 | 0x800;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        if ((bVar25 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        builtin_memcpy(this->data_,"ZLIB",4);\n        puVar4 = this->data_;\n        puVar4[4] = (uchar)(uVar3 >> 0x18);\n        puVar4[6] = (uchar)(uVar3 >> 8);\n        puVar4[5] = (uchar)(uVar3 >> 0x10);\n        puVar4[7] = (uchar)uVar3;\n        *(uint *)(puVar4 + 8) = uVar10;\n        local_48 = 2;\n        local_42 = 0;\n        pcVar13 = (this->super_Output_section).name_ + 1;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar14 = strlen(pcVar13);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar15 = (undefined4 *)std::string::_M_append((string *)&local_4c,pcVar13,sVar14);\n        if ((size_type *)*puVar15 == puVar15 + 2) {\n          local_2c = puVar15[2];\n          local_28 = puVar15[3];\n          local_24 = puVar15[4];\n          local_20 = puVar15[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = puVar15[2];\n          local_34 = (size_type *)*puVar15;\n        }\n        local_30 = puVar15[1];\n        *(undefined1 *)(puVar15 + 2) = 0;\n        *puVar15 = puVar15 + 2;\n        puVar15[1] = 0;\n        __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n        if (local_34 == &local_2c) {\n          if (local_30 != 0) {\n            if (local_30 == 1) {\n              *(undefined1 *)__dest = (undefined1)local_2c;\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n          }\n          (this->new_section_name_)._M_string_length = local_30;\n          *(undefined1 *)((int)__dest + local_30) = 0;\n        }\n        else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)__dest == &(this->new_section_name_).field_2) {\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_)._M_string_length = local_30;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          local_34 = &local_2c;\n        }\n        else {\n          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          (this->new_section_name_)._M_string_length = local_30;\n          local_34 = &local_2c;\n          if (__dest != (size_type *)0x0) {\n            local_34 = __dest;\n            local_2c = sVar9;\n          }\n        }\n        local_30 = 0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          operator_delete(local_34);\n        }\n        if (local_4c != &local_44) {\n          operator_delete(local_4c);\n        }\n        if (((this->super_Output_section).flags_ & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe48,"set_name");\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        if ((bVar25 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe49,"set_name");\n        }\n        (this->super_Output_section).name_ = (this->new_section_name_)._M_dataplus._M_p;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6;\n      }\n      if ((bVar25 & 8) == 0) {\n        *(ulong *)&(this->super_Output_section).super_Output_data.data_size_ = compressed_size;\n        *(undefined4 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = 0;\n        (this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (this->data_ != (uchar *)0x0) {\n      operator_delete__(this->data_);\n    }\n    this->data_ = (uchar *)0x0;\n  }\n  else {\n    iVar17 = 10;\n    pbVar18 = pbVar19;\n    pbVar20 = (byte *)"zlib-gabi";\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    bVar24 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) {\nLAB_0019e70c:\n      if (iVar5 == 0x20) {\n        iVar21 = 0xc;\n        iVar17 = 2;\n      }\n      else {\n        if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size");\n        }\n        iVar21 = 0x18;\n        iVar17 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar17 = 5;\n    pbVar18 = &DAT_002806eb;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar24 = *pbVar19 < *pbVar18;\n      bVar22 = *pbVar19 == *pbVar18;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar24 && !bVar22) == bVar24) goto LAB_0019e70c;\n  }\n  pcVar13 = (char *)gettext("not compressing section data: zlib error");\n  gold_warning(pcVar13);\n  if (this->data_ != (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/compressed_output.cc",0x141,"set_final_data_size");\n  }\n  bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n  if (((bVar25 & 2) == 0) && ((bVar25 & 8) == 0)) {\n    *(uint *)&(this->super_Output_section).super_Output_data.data_size_ = uVar2;\n    (this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;\n    *(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = uVar3;\n    return;\n  }\nLAB_0019ec27:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/output.h",0x218,"set_data_size");\n}\n\n" comment comment comment (function_definition "void __thiscall\ngold::Output_compressed_section::set_final_data_size(Output_compressed_section *this)\n\n{\n  char cVar1;\n  uint uVar2;\n  uint uVar3;\n  uchar *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  _func_int_varargs *p_Var8;\n  size_type sVar9;\n  uint uVar10;\n  uchar *puVar11;\n  int iVar12;\n  char *pcVar13;\n  size_t sVar14;\n  undefined4 *puVar15;\n  size_type *__dest;\n  uint uVar16;\n  int iVar17;\n  uint extraout_EDX;\n  byte *pbVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint local_68;\n  ulong compressed_size;\n  undefined2 *local_4c;\n  undefined4 local_48;\n  undefined2 local_44;\n  undefined1 local_42;\n  size_type *local_34;\n  size_t local_30;\n  size_type local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar25 = 0;\n  uVar2 = (uint)(this->super_Output_section).super_Output_data.data_size_;\n  uVar10 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n  uVar3 = *(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4);\n  puVar4 = (this->super_Output_section).postprocessing_buffer_;\n  if (puVar4 == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }\n  Output_section::write_to_postprocessing_buffer(&this->super_Output_section);\n  bVar22 = false;\n  bVar24 = parameters->target_ == (Target *)0x0;\n  if (bVar24) goto LAB_0019ec43;\n  iVar17 = 9;\n  iVar5 = **(int **)(parameters->target_ + 4);\n  pbVar19 = (byte *)(this->options_->compress_debug_sections_).value;\n  pbVar18 = pbVar19;\n  pbVar20 = &DAT_002806f0;\n  do {\n    if (iVar17 == 0) break;\n    iVar17 = iVar17 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar24 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n  } while (bVar24);\n  bVar23 = false;\n  bVar22 = (!bVar22 && !bVar24) == bVar22;\n  if (bVar22) {\n    iVar21 = 0xc;\n    iVar17 = 1;\nLAB_0019e72b:\n    compressed_size = uVar2 + 0x80 + uVar2 / 1000;\n    puVar11 = (uchar *)operator_new__(compressed_size + iVar21);\n    this->data_ = puVar11;\n    if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    iVar12 = compress2(puVar11 + iVar21,&compressed_size,puVar4,uVar2,\n                       (0 < (parameters->options_->optimize_).value) * '\b' + '\x01');\n    if (iVar12 == 0) {\n      compressed_size = compressed_size + iVar21;\n      uVar6 = (uint)(this->super_Output_section).flags_;\n      uVar7 = *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4);\n      if (iVar17 == 2) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar1 = *(char *)(*(int *)(parameters->target_ + 4) + 4);\n        p_Var8 = (this->super_Output_section).super_Output_data._vptr_Output_data[3];\n        if (p_Var8 == Output_section::do_addralign) {\n          local_68 = *(uint *)((int)&(this->super_Output_section).addralign_ + 4);\n          uVar16 = (uint)(this->super_Output_section).addralign_;\n        }\n        else {\n          uVar16 = (*p_Var8)(this);\n          local_68 = extraout_EDX;\n        }\n        if (iVar5 == 0x20) {\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar16;\n            *(uint *)(puVar4 + 4) = uVar2;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\x01';\n            *(uint *)(puVar4 + 8) =\n                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n            ;\n            *(uint *)(puVar4 + 4) = uVar10;\n          }\n        }\n        else {\n          if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size");\n          }\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            *(uint *)(puVar4 + 0x10) = uVar16;\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar2;\n            *(uint *)(puVar4 + 0xc) = uVar3;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n            *(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18;\n            *(uint *)(puVar4 + 0xc) = uVar10;\n            local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18;\n          }\n          *(uint *)(puVar4 + 0x14) = local_68;\n          puVar4[4] = '\0';\n          puVar4[5] = '\0';\n          puVar4[6] = '\0';\n          puVar4[7] = '\0';\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6 | 0x800;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        if ((bVar25 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        builtin_memcpy(this->data_,"ZLIB",4);\n        puVar4 = this->data_;\n        puVar4[4] = (uchar)(uVar3 >> 0x18);\n        puVar4[6] = (uchar)(uVar3 >> 8);\n        puVar4[5] = (uchar)(uVar3 >> 0x10);\n        puVar4[7] = (uchar)uVar3;\n        *(uint *)(puVar4 + 8) = uVar10;\n        local_48 = 2;\n        local_42 = 0;\n        pcVar13 = (this->super_Output_section).name_ + 1;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar14 = strlen(pcVar13);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar15 = (undefined4 *)std::string::_M_append((string *)&local_4c,pcVar13,sVar14);\n        if ((size_type *)*puVar15 == puVar15 + 2) {\n          local_2c = puVar15[2];\n          local_28 = puVar15[3];\n          local_24 = puVar15[4];\n          local_20 = puVar15[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = puVar15[2];\n          local_34 = (size_type *)*puVar15;\n        }\n        local_30 = puVar15[1];\n        *(undefined1 *)(puVar15 + 2) = 0;\n        *puVar15 = puVar15 + 2;\n        puVar15[1] = 0;\n        __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n        if (local_34 == &local_2c) {\n          if (local_30 != 0) {\n            if (local_30 == 1) {\n              *(undefined1 *)__dest = (undefined1)local_2c;\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n          }\n          (this->new_section_name_)._M_string_length = local_30;\n          *(undefined1 *)((int)__dest + local_30) = 0;\n        }\n        else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)__dest == &(this->new_section_name_).field_2) {\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_)._M_string_length = local_30;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          local_34 = &local_2c;\n        }\n        else {\n          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          (this->new_section_name_)._M_string_length = local_30;\n          local_34 = &local_2c;\n          if (__dest != (size_type *)0x0) {\n            local_34 = __dest;\n            local_2c = sVar9;\n          }\n        }\n        local_30 = 0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          operator_delete(local_34);\n        }\n        if (local_4c != &local_44) {\n          operator_delete(local_4c);\n        }\n        if (((this->super_Output_section).flags_ & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe48,"set_name");\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        if ((bVar25 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe49,"set_name");\n        }\n        (this->super_Output_section).name_ = (this->new_section_name_)._M_dataplus._M_p;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6;\n      }\n      if ((bVar25 & 8) == 0) {\n        *(ulong *)&(this->super_Output_section).super_Output_data.data_size_ = compressed_size;\n        *(undefined4 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = 0;\n        (this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (this->data_ != (uchar *)0x0) {\n      operator_delete__(this->data_);\n    }\n    this->data_ = (uchar *)0x0;\n  }\n  else {\n    iVar17 = 10;\n    pbVar18 = pbVar19;\n    pbVar20 = (byte *)"zlib-gabi";\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    bVar24 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) {\nLAB_0019e70c:\n      if (iVar5 == 0x20) {\n        iVar21 = 0xc;\n        iVar17 = 2;\n      }\n      else {\n        if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size");\n        }\n        iVar21 = 0x18;\n        iVar17 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar17 = 5;\n    pbVar18 = &DAT_002806eb;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar24 = *pbVar19 < *pbVar18;\n      bVar22 = *pbVar19 == *pbVar18;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar24 && !bVar22) == bVar24) goto LAB_0019e70c;\n  }\n  pcVar13 = (char *)gettext("not compressing section data: zlib error");\n  gold_warning(pcVar13);\n  if (this->data_ != (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/compressed_output.cc",0x141,"set_final_data_size");\n  }\n  bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n  if (((bVar25 & 2) == 0) && ((bVar25 & 8) == 0)) {\n    *(uint *)&(this->super_Output_section).super_Output_data.data_size_ = uVar2;\n    (this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;\n    *(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = uVar3;\n    return;\n  }\nLAB_0019ec27:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/output.h",0x218,"set_data_size");\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_compressed_section::" identifier : : identifier : :) (function_declarator "set_final_data_size(Output_compressed_section *this)" identifier (parameter_list "(Output_compressed_section *this)" ( (parameter_declaration "Output_compressed_section *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  uint uVar3;\n  uchar *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  _func_int_varargs *p_Var8;\n  size_type sVar9;\n  uint uVar10;\n  uchar *puVar11;\n  int iVar12;\n  char *pcVar13;\n  size_t sVar14;\n  undefined4 *puVar15;\n  size_type *__dest;\n  uint uVar16;\n  int iVar17;\n  uint extraout_EDX;\n  byte *pbVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint local_68;\n  ulong compressed_size;\n  undefined2 *local_4c;\n  undefined4 local_48;\n  undefined2 local_44;\n  undefined1 local_42;\n  size_type *local_34;\n  size_t local_30;\n  size_type local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar25 = 0;\n  uVar2 = (uint)(this->super_Output_section).super_Output_data.data_size_;\n  uVar10 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n  uVar3 = *(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4);\n  puVar4 = (this->super_Output_section).postprocessing_buffer_;\n  if (puVar4 == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }\n  Output_section::write_to_postprocessing_buffer(&this->super_Output_section);\n  bVar22 = false;\n  bVar24 = parameters->target_ == (Target *)0x0;\n  if (bVar24) goto LAB_0019ec43;\n  iVar17 = 9;\n  iVar5 = **(int **)(parameters->target_ + 4);\n  pbVar19 = (byte *)(this->options_->compress_debug_sections_).value;\n  pbVar18 = pbVar19;\n  pbVar20 = &DAT_002806f0;\n  do {\n    if (iVar17 == 0) break;\n    iVar17 = iVar17 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar24 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n  } while (bVar24);\n  bVar23 = false;\n  bVar22 = (!bVar22 && !bVar24) == bVar22;\n  if (bVar22) {\n    iVar21 = 0xc;\n    iVar17 = 1;\nLAB_0019e72b:\n    compressed_size = uVar2 + 0x80 + uVar2 / 1000;\n    puVar11 = (uchar *)operator_new__(compressed_size + iVar21);\n    this->data_ = puVar11;\n    if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    iVar12 = compress2(puVar11 + iVar21,&compressed_size,puVar4,uVar2,\n                       (0 < (parameters->options_->optimize_).value) * '\b' + '\x01');\n    if (iVar12 == 0) {\n      compressed_size = compressed_size + iVar21;\n      uVar6 = (uint)(this->super_Output_section).flags_;\n      uVar7 = *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4);\n      if (iVar17 == 2) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar1 = *(char *)(*(int *)(parameters->target_ + 4) + 4);\n        p_Var8 = (this->super_Output_section).super_Output_data._vptr_Output_data[3];\n        if (p_Var8 == Output_section::do_addralign) {\n          local_68 = *(uint *)((int)&(this->super_Output_section).addralign_ + 4);\n          uVar16 = (uint)(this->super_Output_section).addralign_;\n        }\n        else {\n          uVar16 = (*p_Var8)(this);\n          local_68 = extraout_EDX;\n        }\n        if (iVar5 == 0x20) {\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar16;\n            *(uint *)(puVar4 + 4) = uVar2;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\x01';\n            *(uint *)(puVar4 + 8) =\n                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n            ;\n            *(uint *)(puVar4 + 4) = uVar10;\n          }\n        }\n        else {\n          if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size");\n          }\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            *(uint *)(puVar4 + 0x10) = uVar16;\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar2;\n            *(uint *)(puVar4 + 0xc) = uVar3;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n            *(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18;\n            *(uint *)(puVar4 + 0xc) = uVar10;\n            local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18;\n          }\n          *(uint *)(puVar4 + 0x14) = local_68;\n          puVar4[4] = '\0';\n          puVar4[5] = '\0';\n          puVar4[6] = '\0';\n          puVar4[7] = '\0';\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6 | 0x800;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        if ((bVar25 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        builtin_memcpy(this->data_,"ZLIB",4);\n        puVar4 = this->data_;\n        puVar4[4] = (uchar)(uVar3 >> 0x18);\n        puVar4[6] = (uchar)(uVar3 >> 8);\n        puVar4[5] = (uchar)(uVar3 >> 0x10);\n        puVar4[7] = (uchar)uVar3;\n        *(uint *)(puVar4 + 8) = uVar10;\n        local_48 = 2;\n        local_42 = 0;\n        pcVar13 = (this->super_Output_section).name_ + 1;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar14 = strlen(pcVar13);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar15 = (undefined4 *)std::string::_M_append((string *)&local_4c,pcVar13,sVar14);\n        if ((size_type *)*puVar15 == puVar15 + 2) {\n          local_2c = puVar15[2];\n          local_28 = puVar15[3];\n          local_24 = puVar15[4];\n          local_20 = puVar15[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = puVar15[2];\n          local_34 = (size_type *)*puVar15;\n        }\n        local_30 = puVar15[1];\n        *(undefined1 *)(puVar15 + 2) = 0;\n        *puVar15 = puVar15 + 2;\n        puVar15[1] = 0;\n        __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n        if (local_34 == &local_2c) {\n          if (local_30 != 0) {\n            if (local_30 == 1) {\n              *(undefined1 *)__dest = (undefined1)local_2c;\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n          }\n          (this->new_section_name_)._M_string_length = local_30;\n          *(undefined1 *)((int)__dest + local_30) = 0;\n        }\n        else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)__dest == &(this->new_section_name_).field_2) {\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_)._M_string_length = local_30;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          local_34 = &local_2c;\n        }\n        else {\n          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          (this->new_section_name_)._M_string_length = local_30;\n          local_34 = &local_2c;\n          if (__dest != (size_type *)0x0) {\n            local_34 = __dest;\n            local_2c = sVar9;\n          }\n        }\n        local_30 = 0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          operator_delete(local_34);\n        }\n        if (local_4c != &local_44) {\n          operator_delete(local_4c);\n        }\n        if (((this->super_Output_section).flags_ & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe48,"set_name");\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        if ((bVar25 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe49,"set_name");\n        }\n        (this->super_Output_section).name_ = (this->new_section_name_)._M_dataplus._M_p;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6;\n      }\n      if ((bVar25 & 8) == 0) {\n        *(ulong *)&(this->super_Output_section).super_Output_data.data_size_ = compressed_size;\n        *(undefined4 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = 0;\n        (this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (this->data_ != (uchar *)0x0) {\n      operator_delete__(this->data_);\n    }\n    this->data_ = (uchar *)0x0;\n  }\n  else {\n    iVar17 = 10;\n    pbVar18 = pbVar19;\n    pbVar20 = (byte *)"zlib-gabi";\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    bVar24 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) {\nLAB_0019e70c:\n      if (iVar5 == 0x20) {\n        iVar21 = 0xc;\n        iVar17 = 2;\n      }\n      else {\n        if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size");\n        }\n        iVar21 = 0x18;\n        iVar17 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar17 = 5;\n    pbVar18 = &DAT_002806eb;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar24 = *pbVar19 < *pbVar18;\n      bVar22 = *pbVar19 == *pbVar18;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar24 && !bVar22) == bVar24) goto LAB_0019e70c;\n  }\n  pcVar13 = (char *)gettext("not compressing section data: zlib error");\n  gold_warning(pcVar13);\n  if (this->data_ != (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/compressed_output.cc",0x141,"set_final_data_size");\n  }\n  bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n  if (((bVar25 & 2) == 0) && ((bVar25 & 8) == 0)) {\n    *(uint *)&(this->super_Output_section).super_Output_data.data_size_ = uVar2;\n    (this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;\n    *(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = uVar3;\n    return;\n  }\nLAB_0019ec27:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/output.h",0x218,"set_data_size");\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uchar *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "_func_int_varargs *p_Var8;" type_identifier (pointer_declarator "*p_Var8" * identifier) ;) (declaration "size_type sVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uchar *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "size_t sVar14;" primitive_type identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "size_type *__dest;" type_identifier (pointer_declarator "*__dest" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint extraout_EDX;" type_identifier identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "ulong compressed_size;" type_identifier identifier ;) (declaration "undefined2 *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined2 local_44;" type_identifier identifier ;) (declaration "undefined1 local_42;" type_identifier identifier ;) (declaration "size_type *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "size_t local_30;" primitive_type identifier ;) (declaration "size_type local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = (uint)(this->super_Output_section).super_Output_data.data_size_;" (assignment_expression "uVar2 = (uint)(this->super_Output_section).super_Output_data.data_size_" identifier = (field_expression "(uint)(this->super_Output_section).super_Output_data.data_size_" (field_expression "(uint)(this->super_Output_section).super_Output_data" (call_expression "(uint)(this->super_Output_section)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) ;) (expression_statement "uVar10 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "uVar10 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" 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 "uVar3 = *(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4);" (assignment_expression "uVar3 = *(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4)" identifier = (pointer_expression "*(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4)" * (cast_expression "(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_section).super_Output_data.data_size_ + 4)" ( (binary_expression "(int)&(this->super_Output_section).super_Output_data.data_size_ + 4" (cast_expression "(int)&(this->super_Output_section).super_Output_data.data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_section).super_Output_data.data_size_" & (field_expression "(this->super_Output_section).super_Output_data.data_size_" (field_expression "(this->super_Output_section).super_Output_data" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "puVar4 = (this->super_Output_section).postprocessing_buffer_;" (assignment_expression "puVar4 = (this->super_Output_section).postprocessing_buffer_" identifier = (field_expression "(this->super_Output_section).postprocessing_buffer_" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (puVar4 == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }" if (parenthesized_expression "(puVar4 == (uchar *)0x0)" ( (binary_expression "puVar4 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xe34,"postprocessing_buffer");" (call_expression "do_gold_unreachable("../../gold/output.h",0xe34,"postprocessing_buffer")" identifier (argument_list "("../../gold/output.h",0xe34,"postprocessing_buffer")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""postprocessing_buffer"" " string_content ") ))) ;) })) (labeled_statement "Output_section::write_to_postprocessing_buffer(&this->super_Output_section);" statement_identifier : (ERROR ":" :) (expression_statement "write_to_postprocessing_buffer(&this->super_Output_section);" (call_expression "write_to_postprocessing_buffer(&this->super_Output_section)" identifier (argument_list "(&this->super_Output_section)" ( (pointer_expression "&this->super_Output_section" & (field_expression "this->super_Output_section" identifier -> field_identifier)) ))) ;)) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = parameters->target_ == (Target *)0x0;" (assignment_expression "bVar24 = parameters->target_ == (Target *)0x0" identifier = (binary_expression "parameters->target_ == (Target *)0x0" (field_expression "parameters->target_" identifier -> field_identifier) == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar24) goto LAB_0019ec43;" if (parenthesized_expression "(bVar24)" ( identifier )) (goto_statement "goto LAB_0019ec43;" goto statement_identifier ;)) (expression_statement "iVar17 = 9;" (assignment_expression "iVar17 = 9" identifier = number_literal) ;) (expression_statement "iVar5 = **(int **)(parameters->target_ + 4);" (assignment_expression "iVar5 = **(int **)(parameters->target_ + 4)" identifier = (pointer_expression "**(int **)(parameters->target_ + 4)" * (pointer_expression "*(int **)(parameters->target_ + 4)" * (cast_expression "(int **)(parameters->target_ + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(parameters->target_ + 4)" ( (binary_expression "parameters->target_ + 4" (field_expression "parameters->target_" identifier -> field_identifier) + number_literal) )))))) ;) (expression_statement "pbVar19 = (byte *)(this->options_->compress_debug_sections_).value;" (assignment_expression "pbVar19 = (byte *)(this->options_->compress_debug_sections_).value" identifier = (cast_expression "(byte *)(this->options_->compress_debug_sections_).value" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(this->options_->compress_debug_sections_).value" (parenthesized_expression "(this->options_->compress_debug_sections_)" ( (field_expression "this->options_->compress_debug_sections_" (field_expression "this->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier))) ;) (expression_statement "pbVar18 = pbVar19;" (assignment_expression "pbVar18 = pbVar19" identifier = identifier) ;) (expression_statement "pbVar20 = &DAT_002806f0;" (assignment_expression "pbVar20 = &DAT_002806f0" identifier = (pointer_expression "&DAT_002806f0" & identifier)) ;) (do_statement "do {\n    if (iVar17 == 0) break;\n    iVar17 = iVar17 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar24 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n  } while (bVar24);" do (compound_statement "{\n    if (iVar17 == 0) break;\n    iVar17 = iVar17 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar24 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n  }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar24 = *pbVar18 == *pbVar20;" (assignment_expression "bVar24 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar22) {\n    iVar21 = 0xc;\n    iVar17 = 1;\nLAB_0019e72b:\n    compressed_size = uVar2 + 0x80 + uVar2 / 1000;\n    puVar11 = (uchar *)operator_new__(compressed_size + iVar21);\n    this->data_ = puVar11;\n    if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    iVar12 = compress2(puVar11 + iVar21,&compressed_size,puVar4,uVar2,\n                       (0 < (parameters->options_->optimize_).value) * '\b' + '\x01');\n    if (iVar12 == 0) {\n      compressed_size = compressed_size + iVar21;\n      uVar6 = (uint)(this->super_Output_section).flags_;\n      uVar7 = *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4);\n      if (iVar17 == 2) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar1 = *(char *)(*(int *)(parameters->target_ + 4) + 4);\n        p_Var8 = (this->super_Output_section).super_Output_data._vptr_Output_data[3];\n        if (p_Var8 == Output_section::do_addralign) {\n          local_68 = *(uint *)((int)&(this->super_Output_section).addralign_ + 4);\n          uVar16 = (uint)(this->super_Output_section).addralign_;\n        }\n        else {\n          uVar16 = (*p_Var8)(this);\n          local_68 = extraout_EDX;\n        }\n        if (iVar5 == 0x20) {\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar16;\n            *(uint *)(puVar4 + 4) = uVar2;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\x01';\n            *(uint *)(puVar4 + 8) =\n                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n            ;\n            *(uint *)(puVar4 + 4) = uVar10;\n          }\n        }\n        else {\n          if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size");\n          }\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            *(uint *)(puVar4 + 0x10) = uVar16;\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar2;\n            *(uint *)(puVar4 + 0xc) = uVar3;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n            *(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18;\n            *(uint *)(puVar4 + 0xc) = uVar10;\n            local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18;\n          }\n          *(uint *)(puVar4 + 0x14) = local_68;\n          puVar4[4] = '\0';\n          puVar4[5] = '\0';\n          puVar4[6] = '\0';\n          puVar4[7] = '\0';\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6 | 0x800;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        if ((bVar25 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        builtin_memcpy(this->data_,"ZLIB",4);\n        puVar4 = this->data_;\n        puVar4[4] = (uchar)(uVar3 >> 0x18);\n        puVar4[6] = (uchar)(uVar3 >> 8);\n        puVar4[5] = (uchar)(uVar3 >> 0x10);\n        puVar4[7] = (uchar)uVar3;\n        *(uint *)(puVar4 + 8) = uVar10;\n        local_48 = 2;\n        local_42 = 0;\n        pcVar13 = (this->super_Output_section).name_ + 1;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar14 = strlen(pcVar13);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar15 = (undefined4 *)std::string::_M_append((string *)&local_4c,pcVar13,sVar14);\n        if ((size_type *)*puVar15 == puVar15 + 2) {\n          local_2c = puVar15[2];\n          local_28 = puVar15[3];\n          local_24 = puVar15[4];\n          local_20 = puVar15[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = puVar15[2];\n          local_34 = (size_type *)*puVar15;\n        }\n        local_30 = puVar15[1];\n        *(undefined1 *)(puVar15 + 2) = 0;\n        *puVar15 = puVar15 + 2;\n        puVar15[1] = 0;\n        __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n        if (local_34 == &local_2c) {\n          if (local_30 != 0) {\n            if (local_30 == 1) {\n              *(undefined1 *)__dest = (undefined1)local_2c;\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n          }\n          (this->new_section_name_)._M_string_length = local_30;\n          *(undefined1 *)((int)__dest + local_30) = 0;\n        }\n        else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)__dest == &(this->new_section_name_).field_2) {\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_)._M_string_length = local_30;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          local_34 = &local_2c;\n        }\n        else {\n          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          (this->new_section_name_)._M_string_length = local_30;\n          local_34 = &local_2c;\n          if (__dest != (size_type *)0x0) {\n            local_34 = __dest;\n            local_2c = sVar9;\n          }\n        }\n        local_30 = 0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          operator_delete(local_34);\n        }\n        if (local_4c != &local_44) {\n          operator_delete(local_4c);\n        }\n        if (((this->super_Output_section).flags_ & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe48,"set_name");\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        if ((bVar25 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe49,"set_name");\n        }\n        (this->super_Output_section).name_ = (this->new_section_name_)._M_dataplus._M_p;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6;\n      }\n      if ((bVar25 & 8) == 0) {\n        *(ulong *)&(this->super_Output_section).super_Output_data.data_size_ = compressed_size;\n        *(undefined4 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = 0;\n        (this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (this->data_ != (uchar *)0x0) {\n      operator_delete__(this->data_);\n    }\n    this->data_ = (uchar *)0x0;\n  }\n  else {\n    iVar17 = 10;\n    pbVar18 = pbVar19;\n    pbVar20 = (byte *)"zlib-gabi";\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    bVar24 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) {\nLAB_0019e70c:\n      if (iVar5 == 0x20) {\n        iVar21 = 0xc;\n        iVar17 = 2;\n      }\n      else {\n        if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size");\n        }\n        iVar21 = 0x18;\n        iVar17 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar17 = 5;\n    pbVar18 = &DAT_002806eb;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar24 = *pbVar19 < *pbVar18;\n      bVar22 = *pbVar19 == *pbVar18;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar24 && !bVar22) == bVar24) goto LAB_0019e70c;\n  }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n    iVar21 = 0xc;\n    iVar17 = 1;\nLAB_0019e72b:\n    compressed_size = uVar2 + 0x80 + uVar2 / 1000;\n    puVar11 = (uchar *)operator_new__(compressed_size + iVar21);\n    this->data_ = puVar11;\n    if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    iVar12 = compress2(puVar11 + iVar21,&compressed_size,puVar4,uVar2,\n                       (0 < (parameters->options_->optimize_).value) * '\b' + '\x01');\n    if (iVar12 == 0) {\n      compressed_size = compressed_size + iVar21;\n      uVar6 = (uint)(this->super_Output_section).flags_;\n      uVar7 = *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4);\n      if (iVar17 == 2) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar1 = *(char *)(*(int *)(parameters->target_ + 4) + 4);\n        p_Var8 = (this->super_Output_section).super_Output_data._vptr_Output_data[3];\n        if (p_Var8 == Output_section::do_addralign) {\n          local_68 = *(uint *)((int)&(this->super_Output_section).addralign_ + 4);\n          uVar16 = (uint)(this->super_Output_section).addralign_;\n        }\n        else {\n          uVar16 = (*p_Var8)(this);\n          local_68 = extraout_EDX;\n        }\n        if (iVar5 == 0x20) {\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar16;\n            *(uint *)(puVar4 + 4) = uVar2;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\x01';\n            *(uint *)(puVar4 + 8) =\n                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n            ;\n            *(uint *)(puVar4 + 4) = uVar10;\n          }\n        }\n        else {\n          if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size");\n          }\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            *(uint *)(puVar4 + 0x10) = uVar16;\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar2;\n            *(uint *)(puVar4 + 0xc) = uVar3;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n            *(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18;\n            *(uint *)(puVar4 + 0xc) = uVar10;\n            local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18;\n          }\n          *(uint *)(puVar4 + 0x14) = local_68;\n          puVar4[4] = '\0';\n          puVar4[5] = '\0';\n          puVar4[6] = '\0';\n          puVar4[7] = '\0';\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6 | 0x800;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        if ((bVar25 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        builtin_memcpy(this->data_,"ZLIB",4);\n        puVar4 = this->data_;\n        puVar4[4] = (uchar)(uVar3 >> 0x18);\n        puVar4[6] = (uchar)(uVar3 >> 8);\n        puVar4[5] = (uchar)(uVar3 >> 0x10);\n        puVar4[7] = (uchar)uVar3;\n        *(uint *)(puVar4 + 8) = uVar10;\n        local_48 = 2;\n        local_42 = 0;\n        pcVar13 = (this->super_Output_section).name_ + 1;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar14 = strlen(pcVar13);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar15 = (undefined4 *)std::string::_M_append((string *)&local_4c,pcVar13,sVar14);\n        if ((size_type *)*puVar15 == puVar15 + 2) {\n          local_2c = puVar15[2];\n          local_28 = puVar15[3];\n          local_24 = puVar15[4];\n          local_20 = puVar15[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = puVar15[2];\n          local_34 = (size_type *)*puVar15;\n        }\n        local_30 = puVar15[1];\n        *(undefined1 *)(puVar15 + 2) = 0;\n        *puVar15 = puVar15 + 2;\n        puVar15[1] = 0;\n        __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n        if (local_34 == &local_2c) {\n          if (local_30 != 0) {\n            if (local_30 == 1) {\n              *(undefined1 *)__dest = (undefined1)local_2c;\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n          }\n          (this->new_section_name_)._M_string_length = local_30;\n          *(undefined1 *)((int)__dest + local_30) = 0;\n        }\n        else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)__dest == &(this->new_section_name_).field_2) {\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_)._M_string_length = local_30;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          local_34 = &local_2c;\n        }\n        else {\n          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          (this->new_section_name_)._M_string_length = local_30;\n          local_34 = &local_2c;\n          if (__dest != (size_type *)0x0) {\n            local_34 = __dest;\n            local_2c = sVar9;\n          }\n        }\n        local_30 = 0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          operator_delete(local_34);\n        }\n        if (local_4c != &local_44) {\n          operator_delete(local_4c);\n        }\n        if (((this->super_Output_section).flags_ & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe48,"set_name");\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        if ((bVar25 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe49,"set_name");\n        }\n        (this->super_Output_section).name_ = (this->new_section_name_)._M_dataplus._M_p;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6;\n      }\n      if ((bVar25 & 8) == 0) {\n        *(ulong *)&(this->super_Output_section).super_Output_data.data_size_ = compressed_size;\n        *(undefined4 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = 0;\n        (this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (this->data_ != (uchar *)0x0) {\n      operator_delete__(this->data_);\n    }\n    this->data_ = (uchar *)0x0;\n  }" { (expression_statement "iVar21 = 0xc;" (assignment_expression "iVar21 = 0xc" identifier = number_literal) ;) (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0019e72b:\n    compressed_size = uVar2 + 0x80 + uVar2 / 1000;" statement_identifier : (expression_statement "compressed_size = uVar2 + 0x80 + uVar2 / 1000;" (assignment_expression "compressed_size = uVar2 + 0x80 + uVar2 / 1000" identifier = (binary_expression "uVar2 + 0x80 + uVar2 / 1000" (binary_expression "uVar2 + 0x80" identifier + number_literal) + (binary_expression "uVar2 / 1000" identifier / number_literal))) ;)) (expression_statement "puVar11 = (uchar *)operator_new__(compressed_size + iVar21);" (assignment_expression "puVar11 = (uchar *)operator_new__(compressed_size + iVar21)" identifier = (cast_expression "(uchar *)operator_new__(compressed_size + iVar21)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new__(compressed_size + iVar21)" identifier (argument_list "(compressed_size + iVar21)" ( (binary_expression "compressed_size + iVar21" identifier + identifier) ))))) ;) (expression_statement "this->data_ = puVar11;" (assignment_expression "this->data_ = puVar11" (field_expression "this->data_" identifier -> field_identifier) = identifier) ;) (if_statement "if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "iVar12 = compress2(puVar11 + iVar21,&compressed_size,puVar4,uVar2,\n                       (0 < (parameters->options_->optimize_).value) * '\b' + '\x01');" (assignment_expression "iVar12 = compress2(puVar11 + iVar21,&compressed_size,puVar4,uVar2,\n                       (0 < (parameters->options_->optimize_).value) * '\b' + '\x01')" identifier = (call_expression "compress2(puVar11 + iVar21,&compressed_size,puVar4,uVar2,\n                       (0 < (parameters->options_->optimize_).value) * '\b' + '\x01')" identifier (argument_list "(puVar11 + iVar21,&compressed_size,puVar4,uVar2,\n                       (0 < (parameters->options_->optimize_).value) * '\b' + '\x01')" ( (binary_expression "puVar11 + iVar21" identifier + identifier) , (pointer_expression "&compressed_size" & identifier) , identifier , identifier , (binary_expression "(0 < (parameters->options_->optimize_).value) * '\b' + '\x01'" (binary_expression "(0 < (parameters->options_->optimize_).value) * '\b'" (parenthesized_expression "(0 < (parameters->options_->optimize_).value)" ( (binary_expression "0 < (parameters->options_->optimize_).value" number_literal < (field_expression "(parameters->options_->optimize_).value" (parenthesized_expression "(parameters->options_->optimize_)" ( (field_expression "parameters->options_->optimize_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) )) * (char_literal "'\b'" ' escape_sequence ')) + (char_literal "'\x01'" ' escape_sequence ')) )))) ;) (if_statement "if (iVar12 == 0) {\n      compressed_size = compressed_size + iVar21;\n      uVar6 = (uint)(this->super_Output_section).flags_;\n      uVar7 = *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4);\n      if (iVar17 == 2) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar1 = *(char *)(*(int *)(parameters->target_ + 4) + 4);\n        p_Var8 = (this->super_Output_section).super_Output_data._vptr_Output_data[3];\n        if (p_Var8 == Output_section::do_addralign) {\n          local_68 = *(uint *)((int)&(this->super_Output_section).addralign_ + 4);\n          uVar16 = (uint)(this->super_Output_section).addralign_;\n        }\n        else {\n          uVar16 = (*p_Var8)(this);\n          local_68 = extraout_EDX;\n        }\n        if (iVar5 == 0x20) {\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar16;\n            *(uint *)(puVar4 + 4) = uVar2;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\x01';\n            *(uint *)(puVar4 + 8) =\n                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n            ;\n            *(uint *)(puVar4 + 4) = uVar10;\n          }\n        }\n        else {\n          if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size");\n          }\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            *(uint *)(puVar4 + 0x10) = uVar16;\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar2;\n            *(uint *)(puVar4 + 0xc) = uVar3;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n            *(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18;\n            *(uint *)(puVar4 + 0xc) = uVar10;\n            local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18;\n          }\n          *(uint *)(puVar4 + 0x14) = local_68;\n          puVar4[4] = '\0';\n          puVar4[5] = '\0';\n          puVar4[6] = '\0';\n          puVar4[7] = '\0';\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6 | 0x800;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        if ((bVar25 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        builtin_memcpy(this->data_,"ZLIB",4);\n        puVar4 = this->data_;\n        puVar4[4] = (uchar)(uVar3 >> 0x18);\n        puVar4[6] = (uchar)(uVar3 >> 8);\n        puVar4[5] = (uchar)(uVar3 >> 0x10);\n        puVar4[7] = (uchar)uVar3;\n        *(uint *)(puVar4 + 8) = uVar10;\n        local_48 = 2;\n        local_42 = 0;\n        pcVar13 = (this->super_Output_section).name_ + 1;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar14 = strlen(pcVar13);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar15 = (undefined4 *)std::string::_M_append((string *)&local_4c,pcVar13,sVar14);\n        if ((size_type *)*puVar15 == puVar15 + 2) {\n          local_2c = puVar15[2];\n          local_28 = puVar15[3];\n          local_24 = puVar15[4];\n          local_20 = puVar15[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = puVar15[2];\n          local_34 = (size_type *)*puVar15;\n        }\n        local_30 = puVar15[1];\n        *(undefined1 *)(puVar15 + 2) = 0;\n        *puVar15 = puVar15 + 2;\n        puVar15[1] = 0;\n        __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n        if (local_34 == &local_2c) {\n          if (local_30 != 0) {\n            if (local_30 == 1) {\n              *(undefined1 *)__dest = (undefined1)local_2c;\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n          }\n          (this->new_section_name_)._M_string_length = local_30;\n          *(undefined1 *)((int)__dest + local_30) = 0;\n        }\n        else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)__dest == &(this->new_section_name_).field_2) {\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_)._M_string_length = local_30;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          local_34 = &local_2c;\n        }\n        else {\n          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          (this->new_section_name_)._M_string_length = local_30;\n          local_34 = &local_2c;\n          if (__dest != (size_type *)0x0) {\n            local_34 = __dest;\n            local_2c = sVar9;\n          }\n        }\n        local_30 = 0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          operator_delete(local_34);\n        }\n        if (local_4c != &local_44) {\n          operator_delete(local_4c);\n        }\n        if (((this->super_Output_section).flags_ & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe48,"set_name");\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        if ((bVar25 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe49,"set_name");\n        }\n        (this->super_Output_section).name_ = (this->new_section_name_)._M_dataplus._M_p;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6;\n      }\n      if ((bVar25 & 8) == 0) {\n        *(ulong *)&(this->super_Output_section).super_Output_data.data_size_ = compressed_size;\n        *(undefined4 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = 0;\n        (this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      compressed_size = compressed_size + iVar21;\n      uVar6 = (uint)(this->super_Output_section).flags_;\n      uVar7 = *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4);\n      if (iVar17 == 2) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar1 = *(char *)(*(int *)(parameters->target_ + 4) + 4);\n        p_Var8 = (this->super_Output_section).super_Output_data._vptr_Output_data[3];\n        if (p_Var8 == Output_section::do_addralign) {\n          local_68 = *(uint *)((int)&(this->super_Output_section).addralign_ + 4);\n          uVar16 = (uint)(this->super_Output_section).addralign_;\n        }\n        else {\n          uVar16 = (*p_Var8)(this);\n          local_68 = extraout_EDX;\n        }\n        if (iVar5 == 0x20) {\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar16;\n            *(uint *)(puVar4 + 4) = uVar2;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\x01';\n            *(uint *)(puVar4 + 8) =\n                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n            ;\n            *(uint *)(puVar4 + 4) = uVar10;\n          }\n        }\n        else {\n          if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size");\n          }\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            *(uint *)(puVar4 + 0x10) = uVar16;\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar2;\n            *(uint *)(puVar4 + 0xc) = uVar3;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n            *(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18;\n            *(uint *)(puVar4 + 0xc) = uVar10;\n            local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18;\n          }\n          *(uint *)(puVar4 + 0x14) = local_68;\n          puVar4[4] = '\0';\n          puVar4[5] = '\0';\n          puVar4[6] = '\0';\n          puVar4[7] = '\0';\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6 | 0x800;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        if ((bVar25 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        builtin_memcpy(this->data_,"ZLIB",4);\n        puVar4 = this->data_;\n        puVar4[4] = (uchar)(uVar3 >> 0x18);\n        puVar4[6] = (uchar)(uVar3 >> 8);\n        puVar4[5] = (uchar)(uVar3 >> 0x10);\n        puVar4[7] = (uchar)uVar3;\n        *(uint *)(puVar4 + 8) = uVar10;\n        local_48 = 2;\n        local_42 = 0;\n        pcVar13 = (this->super_Output_section).name_ + 1;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar14 = strlen(pcVar13);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar15 = (undefined4 *)std::string::_M_append((string *)&local_4c,pcVar13,sVar14);\n        if ((size_type *)*puVar15 == puVar15 + 2) {\n          local_2c = puVar15[2];\n          local_28 = puVar15[3];\n          local_24 = puVar15[4];\n          local_20 = puVar15[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = puVar15[2];\n          local_34 = (size_type *)*puVar15;\n        }\n        local_30 = puVar15[1];\n        *(undefined1 *)(puVar15 + 2) = 0;\n        *puVar15 = puVar15 + 2;\n        puVar15[1] = 0;\n        __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n        if (local_34 == &local_2c) {\n          if (local_30 != 0) {\n            if (local_30 == 1) {\n              *(undefined1 *)__dest = (undefined1)local_2c;\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n          }\n          (this->new_section_name_)._M_string_length = local_30;\n          *(undefined1 *)((int)__dest + local_30) = 0;\n        }\n        else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)__dest == &(this->new_section_name_).field_2) {\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_)._M_string_length = local_30;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          local_34 = &local_2c;\n        }\n        else {\n          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          (this->new_section_name_)._M_string_length = local_30;\n          local_34 = &local_2c;\n          if (__dest != (size_type *)0x0) {\n            local_34 = __dest;\n            local_2c = sVar9;\n          }\n        }\n        local_30 = 0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          operator_delete(local_34);\n        }\n        if (local_4c != &local_44) {\n          operator_delete(local_4c);\n        }\n        if (((this->super_Output_section).flags_ & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe48,"set_name");\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        if ((bVar25 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe49,"set_name");\n        }\n        (this->super_Output_section).name_ = (this->new_section_name_)._M_dataplus._M_p;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6;\n      }\n      if ((bVar25 & 8) == 0) {\n        *(ulong *)&(this->super_Output_section).super_Output_data.data_size_ = compressed_size;\n        *(undefined4 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = 0;\n        (this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }" { (expression_statement "compressed_size = compressed_size + iVar21;" (assignment_expression "compressed_size = compressed_size + iVar21" identifier = (binary_expression "compressed_size + iVar21" identifier + identifier)) ;) (expression_statement "uVar6 = (uint)(this->super_Output_section).flags_;" (assignment_expression "uVar6 = (uint)(this->super_Output_section).flags_" identifier = (field_expression "(uint)(this->super_Output_section).flags_" (call_expression "(uint)(this->super_Output_section)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "uVar7 = *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4);" (assignment_expression "uVar7 = *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(this->super_Output_section).flags_ + 4)" * (cast_expression "(undefined4 *)((int)&(this->super_Output_section).flags_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_section).flags_ + 4)" ( (binary_expression "(int)&(this->super_Output_section).flags_ + 4" (cast_expression "(int)&(this->super_Output_section).flags_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_section).flags_" & (field_expression "(this->super_Output_section).flags_" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (if_statement "if (iVar17 == 2) {\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar1 = *(char *)(*(int *)(parameters->target_ + 4) + 4);\n        p_Var8 = (this->super_Output_section).super_Output_data._vptr_Output_data[3];\n        if (p_Var8 == Output_section::do_addralign) {\n          local_68 = *(uint *)((int)&(this->super_Output_section).addralign_ + 4);\n          uVar16 = (uint)(this->super_Output_section).addralign_;\n        }\n        else {\n          uVar16 = (*p_Var8)(this);\n          local_68 = extraout_EDX;\n        }\n        if (iVar5 == 0x20) {\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar16;\n            *(uint *)(puVar4 + 4) = uVar2;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\x01';\n            *(uint *)(puVar4 + 8) =\n                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n            ;\n            *(uint *)(puVar4 + 4) = uVar10;\n          }\n        }\n        else {\n          if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size");\n          }\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            *(uint *)(puVar4 + 0x10) = uVar16;\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar2;\n            *(uint *)(puVar4 + 0xc) = uVar3;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n            *(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18;\n            *(uint *)(puVar4 + 0xc) = uVar10;\n            local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18;\n          }\n          *(uint *)(puVar4 + 0x14) = local_68;\n          puVar4[4] = '\0';\n          puVar4[5] = '\0';\n          puVar4[6] = '\0';\n          puVar4[7] = '\0';\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6 | 0x800;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        if ((bVar25 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        builtin_memcpy(this->data_,"ZLIB",4);\n        puVar4 = this->data_;\n        puVar4[4] = (uchar)(uVar3 >> 0x18);\n        puVar4[6] = (uchar)(uVar3 >> 8);\n        puVar4[5] = (uchar)(uVar3 >> 0x10);\n        puVar4[7] = (uchar)uVar3;\n        *(uint *)(puVar4 + 8) = uVar10;\n        local_48 = 2;\n        local_42 = 0;\n        pcVar13 = (this->super_Output_section).name_ + 1;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar14 = strlen(pcVar13);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar15 = (undefined4 *)std::string::_M_append((string *)&local_4c,pcVar13,sVar14);\n        if ((size_type *)*puVar15 == puVar15 + 2) {\n          local_2c = puVar15[2];\n          local_28 = puVar15[3];\n          local_24 = puVar15[4];\n          local_20 = puVar15[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = puVar15[2];\n          local_34 = (size_type *)*puVar15;\n        }\n        local_30 = puVar15[1];\n        *(undefined1 *)(puVar15 + 2) = 0;\n        *puVar15 = puVar15 + 2;\n        puVar15[1] = 0;\n        __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n        if (local_34 == &local_2c) {\n          if (local_30 != 0) {\n            if (local_30 == 1) {\n              *(undefined1 *)__dest = (undefined1)local_2c;\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n          }\n          (this->new_section_name_)._M_string_length = local_30;\n          *(undefined1 *)((int)__dest + local_30) = 0;\n        }\n        else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)__dest == &(this->new_section_name_).field_2) {\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_)._M_string_length = local_30;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          local_34 = &local_2c;\n        }\n        else {\n          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          (this->new_section_name_)._M_string_length = local_30;\n          local_34 = &local_2c;\n          if (__dest != (size_type *)0x0) {\n            local_34 = __dest;\n            local_2c = sVar9;\n          }\n        }\n        local_30 = 0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          operator_delete(local_34);\n        }\n        if (local_4c != &local_44) {\n          operator_delete(local_4c);\n        }\n        if (((this->super_Output_section).flags_ & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe48,"set_name");\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        if ((bVar25 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe49,"set_name");\n        }\n        (this->super_Output_section).name_ = (this->new_section_name_)._M_dataplus._M_p;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6;\n      }" if (parenthesized_expression "(iVar17 == 2)" ( (binary_expression "iVar17 == 2" identifier == number_literal) )) (compound_statement "{\n        if (parameters->target_ == (Target *)0x0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar1 = *(char *)(*(int *)(parameters->target_ + 4) + 4);\n        p_Var8 = (this->super_Output_section).super_Output_data._vptr_Output_data[3];\n        if (p_Var8 == Output_section::do_addralign) {\n          local_68 = *(uint *)((int)&(this->super_Output_section).addralign_ + 4);\n          uVar16 = (uint)(this->super_Output_section).addralign_;\n        }\n        else {\n          uVar16 = (*p_Var8)(this);\n          local_68 = extraout_EDX;\n        }\n        if (iVar5 == 0x20) {\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar16;\n            *(uint *)(puVar4 + 4) = uVar2;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\x01';\n            *(uint *)(puVar4 + 8) =\n                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n            ;\n            *(uint *)(puVar4 + 4) = uVar10;\n          }\n        }\n        else {\n          if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size");\n          }\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            *(uint *)(puVar4 + 0x10) = uVar16;\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar2;\n            *(uint *)(puVar4 + 0xc) = uVar3;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n            *(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18;\n            *(uint *)(puVar4 + 0xc) = uVar10;\n            local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18;\n          }\n          *(uint *)(puVar4 + 0x14) = local_68;\n          puVar4[4] = '\0';\n          puVar4[5] = '\0';\n          puVar4[6] = '\0';\n          puVar4[7] = '\0';\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6 | 0x800;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        if ((bVar25 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }" { (if_statement "if (parameters->target_ == (Target *)0x0) {\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }" if (parenthesized_expression "(parameters->target_ == (Target *)0x0)" ( (binary_expression "parameters->target_ == (Target *)0x0" (field_expression "parameters->target_" identifier -> field_identifier) == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }" { (labeled_statement "LAB_0019ec43:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x69,"target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;)) })) (expression_statement "cVar1 = *(char *)(*(int *)(parameters->target_ + 4) + 4);" (assignment_expression "cVar1 = *(char *)(*(int *)(parameters->target_ + 4) + 4)" identifier = (pointer_expression "*(char *)(*(int *)(parameters->target_ + 4) + 4)" * (cast_expression "(char *)(*(int *)(parameters->target_ + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(parameters->target_ + 4) + 4)" ( (binary_expression "*(int *)(parameters->target_ + 4) + 4" (pointer_expression "*(int *)(parameters->target_ + 4)" * (cast_expression "(int *)(parameters->target_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(parameters->target_ + 4)" ( (binary_expression "parameters->target_ + 4" (field_expression "parameters->target_" identifier -> field_identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "p_Var8 = (this->super_Output_section).super_Output_data._vptr_Output_data[3];" (assignment_expression "p_Var8 = (this->super_Output_section).super_Output_data._vptr_Output_data[3]" identifier = (subscript_expression "(this->super_Output_section).super_Output_data._vptr_Output_data[3]" (field_expression "(this->super_Output_section).super_Output_data._vptr_Output_data" (field_expression "(this->super_Output_section).super_Output_data" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var8 == Output_section::do_addralign) {\n          local_68 = *(uint *)((int)&(this->super_Output_section).addralign_ + 4);\n          uVar16 = (uint)(this->super_Output_section).addralign_;\n        }\n        else {\n          uVar16 = (*p_Var8)(this);\n          local_68 = extraout_EDX;\n        }" if (parenthesized_expression "(p_Var8 == Output_section::do_addralign)" ( (binary_expression "p_Var8 == Output_section" identifier == identifier) (ERROR "::do_addralign" : : identifier) )) (compound_statement "{\n          local_68 = *(uint *)((int)&(this->super_Output_section).addralign_ + 4);\n          uVar16 = (uint)(this->super_Output_section).addralign_;\n        }" { (expression_statement "local_68 = *(uint *)((int)&(this->super_Output_section).addralign_ + 4);" (assignment_expression "local_68 = *(uint *)((int)&(this->super_Output_section).addralign_ + 4)" identifier = (pointer_expression "*(uint *)((int)&(this->super_Output_section).addralign_ + 4)" * (cast_expression "(uint *)((int)&(this->super_Output_section).addralign_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_section).addralign_ + 4)" ( (binary_expression "(int)&(this->super_Output_section).addralign_ + 4" (cast_expression "(int)&(this->super_Output_section).addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_section).addralign_" & (field_expression "(this->super_Output_section).addralign_" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar16 = (uint)(this->super_Output_section).addralign_;" (assignment_expression "uVar16 = (uint)(this->super_Output_section).addralign_" identifier = (field_expression "(uint)(this->super_Output_section).addralign_" (call_expression "(uint)(this->super_Output_section)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) ))) . field_identifier)) ;) }) (else_clause "else {\n          uVar16 = (*p_Var8)(this);\n          local_68 = extraout_EDX;\n        }" else (compound_statement "{\n          uVar16 = (*p_Var8)(this);\n          local_68 = extraout_EDX;\n        }" { (expression_statement "uVar16 = (*p_Var8)(this);" (assignment_expression "uVar16 = (*p_Var8)(this)" identifier = (call_expression "(*p_Var8)(this)" (parenthesized_expression "(*p_Var8)" ( (pointer_expression "*p_Var8" * identifier) )) (argument_list "(this)" ( identifier )))) ;) (expression_statement "local_68 = extraout_EDX;" (assignment_expression "local_68 = extraout_EDX" identifier = identifier) ;) }))) (if_statement "if (iVar5 == 0x20) {\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar16;\n            *(uint *)(puVar4 + 4) = uVar2;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\x01';\n            *(uint *)(puVar4 + 8) =\n                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n            ;\n            *(uint *)(puVar4 + 4) = uVar10;\n          }\n        }\n        else {\n          if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size");\n          }\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            *(uint *)(puVar4 + 0x10) = uVar16;\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar2;\n            *(uint *)(puVar4 + 0xc) = uVar3;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n            *(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18;\n            *(uint *)(puVar4 + 0xc) = uVar10;\n            local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18;\n          }\n          *(uint *)(puVar4 + 0x14) = local_68;\n          puVar4[4] = '\0';\n          puVar4[5] = '\0';\n          puVar4[6] = '\0';\n          puVar4[7] = '\0';\n        }" if (parenthesized_expression "(iVar5 == 0x20)" ( (binary_expression "iVar5 == 0x20" identifier == number_literal) )) (compound_statement "{\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar16;\n            *(uint *)(puVar4 + 4) = uVar2;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\x01';\n            *(uint *)(puVar4 + 8) =\n                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n            ;\n            *(uint *)(puVar4 + 4) = uVar10;\n          }\n        }" { (expression_statement "puVar4 = this->data_;" (assignment_expression "puVar4 = this->data_" identifier = (field_expression "this->data_" identifier -> field_identifier)) ;) (if_statement "if (cVar1 == '\0') {\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar16;\n            *(uint *)(puVar4 + 4) = uVar2;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\x01';\n            *(uint *)(puVar4 + 8) =\n                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n            ;\n            *(uint *)(puVar4 + 4) = uVar10;\n          }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar16;\n            *(uint *)(puVar4 + 4) = uVar2;\n          }" { (expression_statement "puVar4[0] = '\x01';" (assignment_expression "puVar4[0] = '\x01'" (subscript_expression "puVar4[0]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "puVar4[1] = '\0';" (assignment_expression "puVar4[1] = '\0'" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar4[2] = '\0';" (assignment_expression "puVar4[2] = '\0'" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar4[3] = '\0';" (assignment_expression "puVar4[3] = '\0'" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(uint *)(puVar4 + 8) = uVar16;" (assignment_expression "*(uint *)(puVar4 + 8) = uVar16" (pointer_expression "*(uint *)(puVar4 + 8)" * (cast_expression "(uint *)(puVar4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 8)" ( (binary_expression "puVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar4 + 4) = uVar2;" (assignment_expression "*(uint *)(puVar4 + 4) = uVar2" (pointer_expression "*(uint *)(puVar4 + 4)" * (cast_expression "(uint *)(puVar4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\x01';\n            *(uint *)(puVar4 + 8) =\n                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n            ;\n            *(uint *)(puVar4 + 4) = uVar10;\n          }" else (compound_statement "{\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\x01';\n            *(uint *)(puVar4 + 8) =\n                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n            ;\n            *(uint *)(puVar4 + 4) = uVar10;\n          }" { (expression_statement "puVar4[0] = '\0';" (assignment_expression "puVar4[0] = '\0'" (subscript_expression "puVar4[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar4[1] = '\0';" (assignment_expression "puVar4[1] = '\0'" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar4[2] = '\0';" (assignment_expression "puVar4[2] = '\0'" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar4[3] = '\x01';" (assignment_expression "puVar4[3] = '\x01'" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "*(uint *)(puVar4 + 8) =\n                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18\n            ;" (assignment_expression "*(uint *)(puVar4 + 8) =\n                 uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (pointer_expression "*(uint *)(puVar4 + 8)" * (cast_expression "(uint *)(puVar4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 8)" ( (binary_expression "puVar4 + 8" identifier + number_literal) )))) = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (expression_statement "*(uint *)(puVar4 + 4) = uVar10;" (assignment_expression "*(uint *)(puVar4 + 4) = uVar10" (pointer_expression "*(uint *)(puVar4 + 4)" * (cast_expression "(uint *)(puVar4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) )))) = identifier) ;) }))) }) (else_clause "else {\n          if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size");\n          }\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            *(uint *)(puVar4 + 0x10) = uVar16;\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar2;\n            *(uint *)(puVar4 + 0xc) = uVar3;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n            *(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18;\n            *(uint *)(puVar4 + 0xc) = uVar10;\n            local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18;\n          }\n          *(uint *)(puVar4 + 0x14) = local_68;\n          puVar4[4] = '\0';\n          puVar4[5] = '\0';\n          puVar4[6] = '\0';\n          puVar4[7] = '\0';\n        }" else (compound_statement "{\n          if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size");\n          }\n          puVar4 = this->data_;\n          if (cVar1 == '\0') {\n            *(uint *)(puVar4 + 0x10) = uVar16;\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar2;\n            *(uint *)(puVar4 + 0xc) = uVar3;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n            *(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18;\n            *(uint *)(puVar4 + 0xc) = uVar10;\n            local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18;\n          }\n          *(uint *)(puVar4 + 0x14) = local_68;\n          puVar4[4] = '\0';\n          puVar4[5] = '\0';\n          puVar4[6] = '\0';\n          puVar4[7] = '\0';\n        }" { (if_statement "if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size");\n          }" if (parenthesized_expression "(iVar5 != 0x40)" ( (binary_expression "iVar5 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size");" (call_expression "do_gold_unreachable("../../gold/compressed_output.cc",0x12f,"set_final_data_size")" identifier (argument_list "("../../gold/compressed_output.cc",0x12f,"set_final_data_size")" ( (string_literal ""../../gold/compressed_output.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "puVar4 = this->data_;" (assignment_expression "puVar4 = this->data_" identifier = (field_expression "this->data_" identifier -> field_identifier)) ;) (if_statement "if (cVar1 == '\0') {\n            *(uint *)(puVar4 + 0x10) = uVar16;\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar2;\n            *(uint *)(puVar4 + 0xc) = uVar3;\n          }\n          else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n            *(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18;\n            *(uint *)(puVar4 + 0xc) = uVar10;\n            local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18;\n          }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            *(uint *)(puVar4 + 0x10) = uVar16;\n            puVar4[0] = '\x01';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) = uVar2;\n            *(uint *)(puVar4 + 0xc) = uVar3;\n          }" { (expression_statement "*(uint *)(puVar4 + 0x10) = uVar16;" (assignment_expression "*(uint *)(puVar4 + 0x10) = uVar16" (pointer_expression "*(uint *)(puVar4 + 0x10)" * (cast_expression "(uint *)(puVar4 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x10)" ( (binary_expression "puVar4 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar4[0] = '\x01';" (assignment_expression "puVar4[0] = '\x01'" (subscript_expression "puVar4[0]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "puVar4[1] = '\0';" (assignment_expression "puVar4[1] = '\0'" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar4[2] = '\0';" (assignment_expression "puVar4[2] = '\0'" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar4[3] = '\0';" (assignment_expression "puVar4[3] = '\0'" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(uint *)(puVar4 + 8) = uVar2;" (assignment_expression "*(uint *)(puVar4 + 8) = uVar2" (pointer_expression "*(uint *)(puVar4 + 8)" * (cast_expression "(uint *)(puVar4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 8)" ( (binary_expression "puVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar4 + 0xc) = uVar3;" (assignment_expression "*(uint *)(puVar4 + 0xc) = uVar3" (pointer_expression "*(uint *)(puVar4 + 0xc)" * (cast_expression "(uint *)(puVar4 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0xc)" ( (binary_expression "puVar4 + 0xc" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n            *(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18;\n            *(uint *)(puVar4 + 0xc) = uVar10;\n            local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18;\n          }" else (compound_statement "{\n            puVar4[0] = '\0';\n            puVar4[1] = '\0';\n            puVar4[2] = '\0';\n            puVar4[3] = '\0';\n            *(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n            *(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18;\n            *(uint *)(puVar4 + 0xc) = uVar10;\n            local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18;\n          }" { (expression_statement "puVar4[0] = '\0';" (assignment_expression "puVar4[0] = '\0'" (subscript_expression "puVar4[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar4[1] = '\0';" (assignment_expression "puVar4[1] = '\0'" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar4[2] = '\0';" (assignment_expression "puVar4[2] = '\0'" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar4[3] = '\0';" (assignment_expression "puVar4[3] = '\0'" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;" (assignment_expression "*(uint *)(puVar4 + 8) =\n                 uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18" (pointer_expression "*(uint *)(puVar4 + 8)" * (cast_expression "(uint *)(puVar4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 8)" ( (binary_expression "puVar4 + 8" identifier + number_literal) )))) = (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal))) ;) (expression_statement "*(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18;" (assignment_expression "*(uint *)(puVar4 + 0x10) =\n                 local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18" (pointer_expression "*(uint *)(puVar4 + 0x10)" * (cast_expression "(uint *)(puVar4 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x10)" ( (binary_expression "puVar4 + 0x10" identifier + number_literal) )))) = (binary_expression "local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                 local_68 << 0x18" (binary_expression "local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8" (binary_expression "local_68 >> 0x18 | (local_68 & 0xff0000) >> 8" (binary_expression "local_68 >> 0x18" identifier >> number_literal) | (binary_expression "(local_68 & 0xff0000) >> 8" (parenthesized_expression "(local_68 & 0xff0000)" ( (binary_expression "local_68 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_68 & 0xff00) << 8" (parenthesized_expression "(local_68 & 0xff00)" ( (binary_expression "local_68 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_68 << 0x18" identifier << number_literal))) ;) (expression_statement "*(uint *)(puVar4 + 0xc) = uVar10;" (assignment_expression "*(uint *)(puVar4 + 0xc) = uVar10" (pointer_expression "*(uint *)(puVar4 + 0xc)" * (cast_expression "(uint *)(puVar4 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0xc)" ( (binary_expression "puVar4 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18;" (assignment_expression "local_68 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                       uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) }))) (expression_statement "*(uint *)(puVar4 + 0x14) = local_68;" (assignment_expression "*(uint *)(puVar4 + 0x14) = local_68" (pointer_expression "*(uint *)(puVar4 + 0x14)" * (cast_expression "(uint *)(puVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x14)" ( (binary_expression "puVar4 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar4[4] = '\0';" (assignment_expression "puVar4[4] = '\0'" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar4[5] = '\0';" (assignment_expression "puVar4[5] = '\0'" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar4[6] = '\0';" (assignment_expression "puVar4[6] = '\0'" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar4[7] = '\0';" (assignment_expression "puVar4[7] = '\0'" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;" (assignment_expression "bVar25 = (this->super_Output_section).super_Output_data.field_0x1c" identifier = (field_expression "(this->super_Output_section).super_Output_data.field_0x1c" (field_expression "(this->super_Output_section).super_Output_data" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "*(uint *)&(this->super_Output_section).flags_ = uVar6 | 0x800;" (assignment_expression "*(uint *)&(this->super_Output_section).flags_ = uVar6 | 0x800" (pointer_expression "*(uint *)&(this->super_Output_section).flags_" * (cast_expression "(uint *)&(this->super_Output_section).flags_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_section).flags_" & (field_expression "(this->super_Output_section).flags_" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier)))) = (binary_expression "uVar6 | 0x800" identifier | number_literal)) ;) (expression_statement "*(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;" (assignment_expression "*(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7" (pointer_expression "*(undefined4 *)((int)&(this->super_Output_section).flags_ + 4)" * (cast_expression "(undefined4 *)((int)&(this->super_Output_section).flags_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_section).flags_ + 4)" ( (binary_expression "(int)&(this->super_Output_section).flags_ + 4" (cast_expression "(int)&(this->super_Output_section).flags_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_section).flags_" & (field_expression "(this->super_Output_section).flags_" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (if_statement "if ((bVar25 >> 1 & 1) != 0) goto LAB_0019ec27;" if (parenthesized_expression "((bVar25 >> 1 & 1) != 0)" ( (binary_expression "(bVar25 >> 1 & 1) != 0" (parenthesized_expression "(bVar25 >> 1 & 1)" ( (binary_expression "bVar25 >> 1 & 1" (binary_expression "bVar25 >> 1" identifier >> number_literal) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0019ec27;" goto statement_identifier ;)) }) (else_clause "else {\n        builtin_memcpy(this->data_,"ZLIB",4);\n        puVar4 = this->data_;\n        puVar4[4] = (uchar)(uVar3 >> 0x18);\n        puVar4[6] = (uchar)(uVar3 >> 8);\n        puVar4[5] = (uchar)(uVar3 >> 0x10);\n        puVar4[7] = (uchar)uVar3;\n        *(uint *)(puVar4 + 8) = uVar10;\n        local_48 = 2;\n        local_42 = 0;\n        pcVar13 = (this->super_Output_section).name_ + 1;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar14 = strlen(pcVar13);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar15 = (undefined4 *)std::string::_M_append((string *)&local_4c,pcVar13,sVar14);\n        if ((size_type *)*puVar15 == puVar15 + 2) {\n          local_2c = puVar15[2];\n          local_28 = puVar15[3];\n          local_24 = puVar15[4];\n          local_20 = puVar15[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = puVar15[2];\n          local_34 = (size_type *)*puVar15;\n        }\n        local_30 = puVar15[1];\n        *(undefined1 *)(puVar15 + 2) = 0;\n        *puVar15 = puVar15 + 2;\n        puVar15[1] = 0;\n        __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n        if (local_34 == &local_2c) {\n          if (local_30 != 0) {\n            if (local_30 == 1) {\n              *(undefined1 *)__dest = (undefined1)local_2c;\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n          }\n          (this->new_section_name_)._M_string_length = local_30;\n          *(undefined1 *)((int)__dest + local_30) = 0;\n        }\n        else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)__dest == &(this->new_section_name_).field_2) {\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_)._M_string_length = local_30;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          local_34 = &local_2c;\n        }\n        else {\n          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          (this->new_section_name_)._M_string_length = local_30;\n          local_34 = &local_2c;\n          if (__dest != (size_type *)0x0) {\n            local_34 = __dest;\n            local_2c = sVar9;\n          }\n        }\n        local_30 = 0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          operator_delete(local_34);\n        }\n        if (local_4c != &local_44) {\n          operator_delete(local_4c);\n        }\n        if (((this->super_Output_section).flags_ & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe48,"set_name");\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        if ((bVar25 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe49,"set_name");\n        }\n        (this->super_Output_section).name_ = (this->new_section_name_)._M_dataplus._M_p;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6;\n      }" else (compound_statement "{\n        builtin_memcpy(this->data_,"ZLIB",4);\n        puVar4 = this->data_;\n        puVar4[4] = (uchar)(uVar3 >> 0x18);\n        puVar4[6] = (uchar)(uVar3 >> 8);\n        puVar4[5] = (uchar)(uVar3 >> 0x10);\n        puVar4[7] = (uchar)uVar3;\n        *(uint *)(puVar4 + 8) = uVar10;\n        local_48 = 2;\n        local_42 = 0;\n        pcVar13 = (this->super_Output_section).name_ + 1;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar14 = strlen(pcVar13);\n                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */\n        puVar15 = (undefined4 *)std::string::_M_append((string *)&local_4c,pcVar13,sVar14);\n        if ((size_type *)*puVar15 == puVar15 + 2) {\n          local_2c = puVar15[2];\n          local_28 = puVar15[3];\n          local_24 = puVar15[4];\n          local_20 = puVar15[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = puVar15[2];\n          local_34 = (size_type *)*puVar15;\n        }\n        local_30 = puVar15[1];\n        *(undefined1 *)(puVar15 + 2) = 0;\n        *puVar15 = puVar15 + 2;\n        puVar15[1] = 0;\n        __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n        if (local_34 == &local_2c) {\n          if (local_30 != 0) {\n            if (local_30 == 1) {\n              *(undefined1 *)__dest = (undefined1)local_2c;\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n          }\n          (this->new_section_name_)._M_string_length = local_30;\n          *(undefined1 *)((int)__dest + local_30) = 0;\n        }\n        else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)__dest == &(this->new_section_name_).field_2) {\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_)._M_string_length = local_30;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          local_34 = &local_2c;\n        }\n        else {\n          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          (this->new_section_name_)._M_string_length = local_30;\n          local_34 = &local_2c;\n          if (__dest != (size_type *)0x0) {\n            local_34 = __dest;\n            local_2c = sVar9;\n          }\n        }\n        local_30 = 0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          operator_delete(local_34);\n        }\n        if (local_4c != &local_44) {\n          operator_delete(local_4c);\n        }\n        if (((this->super_Output_section).flags_ & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe48,"set_name");\n        }\n        bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;\n        if ((bVar25 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe49,"set_name");\n        }\n        (this->super_Output_section).name_ = (this->new_section_name_)._M_dataplus._M_p;\n        *(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;\n        *(uint *)&(this->super_Output_section).flags_ = uVar6;\n      }" { (expression_statement "builtin_memcpy(this->data_,"ZLIB",4);" (call_expression "builtin_memcpy(this->data_,"ZLIB",4)" identifier (argument_list "(this->data_,"ZLIB",4)" ( (field_expression "this->data_" identifier -> field_identifier) , (string_literal ""ZLIB"" " string_content ") , number_literal ))) ;) (expression_statement "puVar4 = this->data_;" (assignment_expression "puVar4 = this->data_" identifier = (field_expression "this->data_" identifier -> field_identifier)) ;) (expression_statement "puVar4[4] = (uchar)(uVar3 >> 0x18);" (assignment_expression "puVar4[4] = (uchar)(uVar3 >> 0x18)" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (call_expression "(uchar)(uVar3 >> 0x18)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "puVar4[6] = (uchar)(uVar3 >> 8);" (assignment_expression "puVar4[6] = (uchar)(uVar3 >> 8)" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = (call_expression "(uchar)(uVar3 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(uVar3 >> 8)" ( (binary_expression "uVar3 >> 8" identifier >> number_literal) )))) ;) (expression_statement "puVar4[5] = (uchar)(uVar3 >> 0x10);" (assignment_expression "puVar4[5] = (uchar)(uVar3 >> 0x10)" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = (call_expression "(uchar)(uVar3 >> 0x10)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(uVar3 >> 0x10)" ( (binary_expression "uVar3 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "puVar4[7] = (uchar)uVar3;" (assignment_expression "puVar4[7] = (uchar)uVar3" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = (cast_expression "(uchar)uVar3" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)(puVar4 + 8) = uVar10;" (assignment_expression "*(uint *)(puVar4 + 8) = uVar10" (pointer_expression "*(uint *)(puVar4 + 8)" * (cast_expression "(uint *)(puVar4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 8)" ( (binary_expression "puVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_48 = 2;" (assignment_expression "local_48 = 2" identifier = number_literal) ;) (expression_statement "local_42 = 0;" (assignment_expression "local_42 = 0" identifier = number_literal) ;) (expression_statement "pcVar13 = (this->super_Output_section).name_ + 1;" (assignment_expression "pcVar13 = (this->super_Output_section).name_ + 1" identifier = (binary_expression "(this->super_Output_section).name_ + 1" (field_expression "(this->super_Output_section).name_" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier) + number_literal)) ;) (expression_statement "local_44 = 0x7a2e;" (assignment_expression "local_44 = 0x7a2e" identifier = number_literal) ;) (expression_statement "local_4c = &local_44;" (assignment_expression "local_4c = &local_44" identifier = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "sVar14 = strlen(pcVar13);" (assignment_expression "sVar14 = strlen(pcVar13)" identifier = (call_expression "strlen(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier )))) ;) comment (ERROR "puVar15 = (undefined4 *)std::" (assignment_expression "puVar15 = (undefined4 *)std" identifier = (cast_expression "(undefined4 *)std" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "string::_M_append((string *)&local_4c,pcVar13,sVar14);" statement_identifier : (ERROR ":" :) (expression_statement "_M_append((string *)&local_4c,pcVar13,sVar14);" (call_expression "_M_append((string *)&local_4c,pcVar13,sVar14)" identifier (argument_list "((string *)&local_4c,pcVar13,sVar14)" ( (cast_expression "(string *)&local_4c" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_4c" & identifier)) , identifier , identifier ))) ;)) (if_statement "if ((size_type *)*puVar15 == puVar15 + 2) {\n          local_2c = puVar15[2];\n          local_28 = puVar15[3];\n          local_24 = puVar15[4];\n          local_20 = puVar15[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = puVar15[2];\n          local_34 = (size_type *)*puVar15;\n        }" if (parenthesized_expression "((size_type *)*puVar15 == puVar15 + 2)" ( (binary_expression "(size_type *)*puVar15 == puVar15 + 2" (cast_expression "(size_type *)*puVar15" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) == (binary_expression "puVar15 + 2" identifier + number_literal)) )) (compound_statement "{\n          local_2c = puVar15[2];\n          local_28 = puVar15[3];\n          local_24 = puVar15[4];\n          local_20 = puVar15[5];\n          local_34 = &local_2c;\n        }" { (expression_statement "local_2c = puVar15[2];" (assignment_expression "local_2c = puVar15[2]" identifier = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "local_28 = puVar15[3];" (assignment_expression "local_28 = puVar15[3]" identifier = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (expression_statement "local_24 = puVar15[4];" (assignment_expression "local_24 = puVar15[4]" identifier = (subscript_expression "puVar15[4]" identifier [ number_literal ])) ;) (expression_statement "local_20 = puVar15[5];" (assignment_expression "local_20 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) }) (else_clause "else {\n          local_2c = puVar15[2];\n          local_34 = (size_type *)*puVar15;\n        }" else (compound_statement "{\n          local_2c = puVar15[2];\n          local_34 = (size_type *)*puVar15;\n        }" { (expression_statement "local_2c = puVar15[2];" (assignment_expression "local_2c = puVar15[2]" identifier = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "local_34 = (size_type *)*puVar15;" (assignment_expression "local_34 = (size_type *)*puVar15" identifier = (cast_expression "(size_type *)*puVar15" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) }))) (expression_statement "local_30 = puVar15[1];" (assignment_expression "local_30 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(puVar15 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar15 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar15 + 2)" * (cast_expression "(undefined1 *)(puVar15 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 2)" ( (binary_expression "puVar15 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar15 = puVar15 + 2;" (assignment_expression "*puVar15 = puVar15 + 2" (pointer_expression "*puVar15" * identifier) = (binary_expression "puVar15 + 2" identifier + number_literal)) ;) (expression_statement "puVar15[1] = 0;" (assignment_expression "puVar15[1] = 0" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;" (assignment_expression "__dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p" identifier = (cast_expression "(size_type *)(this->new_section_name_)._M_dataplus._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(this->new_section_name_)._M_dataplus._M_p" (field_expression "(this->new_section_name_)._M_dataplus" (parenthesized_expression "(this->new_section_name_)" ( (field_expression "this->new_section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (if_statement "if (local_34 == &local_2c) {\n          if (local_30 != 0) {\n            if (local_30 == 1) {\n              *(undefined1 *)__dest = (undefined1)local_2c;\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n          }\n          (this->new_section_name_)._M_string_length = local_30;\n          *(undefined1 *)((int)__dest + local_30) = 0;\n        }\n        else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)__dest == &(this->new_section_name_).field_2) {\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_)._M_string_length = local_30;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          local_34 = &local_2c;\n        }\n        else {\n          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          (this->new_section_name_)._M_string_length = local_30;\n          local_34 = &local_2c;\n          if (__dest != (size_type *)0x0) {\n            local_34 = __dest;\n            local_2c = sVar9;\n          }\n        }" if (parenthesized_expression "(local_34 == &local_2c)" ( (binary_expression "local_34 == &local_2c" identifier == (pointer_expression "&local_2c" & identifier)) )) (compound_statement "{\n          if (local_30 != 0) {\n            if (local_30 == 1) {\n              *(undefined1 *)__dest = (undefined1)local_2c;\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n          }\n          (this->new_section_name_)._M_string_length = local_30;\n          *(undefined1 *)((int)__dest + local_30) = 0;\n        }" { (if_statement "if (local_30 != 0) {\n            if (local_30 == 1) {\n              *(undefined1 *)__dest = (undefined1)local_2c;\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n          }" if (parenthesized_expression "(local_30 != 0)" ( (binary_expression "local_30 != 0" identifier != number_literal) )) (compound_statement "{\n            if (local_30 == 1) {\n              *(undefined1 *)__dest = (undefined1)local_2c;\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n          }" { (if_statement "if (local_30 == 1) {\n              *(undefined1 *)__dest = (undefined1)local_2c;\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }\n            else {\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }" if (parenthesized_expression "(local_30 == 1)" ( (binary_expression "local_30 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)__dest = (undefined1)local_2c;\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }" { (expression_statement "*(undefined1 *)__dest = (undefined1)local_2c;" (assignment_expression "*(undefined1 *)__dest = (undefined1)local_2c" (pointer_expression "*(undefined1 *)__dest" * (cast_expression "(undefined1 *)__dest" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_2c" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "__dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;" (assignment_expression "__dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p" identifier = (cast_expression "(size_type *)(this->new_section_name_)._M_dataplus._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(this->new_section_name_)._M_dataplus._M_p" (field_expression "(this->new_section_name_)._M_dataplus" (parenthesized_expression "(this->new_section_name_)" ( (field_expression "this->new_section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) }) (else_clause "else {\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }" else (compound_statement "{\n              memcpy(__dest,&local_2c,local_30);\n              __dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;\n            }" { (expression_statement "memcpy(__dest,&local_2c,local_30);" (call_expression "memcpy(__dest,&local_2c,local_30)" identifier (argument_list "(__dest,&local_2c,local_30)" ( identifier , (pointer_expression "&local_2c" & identifier) , identifier ))) ;) (expression_statement "__dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p;" (assignment_expression "__dest = (size_type *)(this->new_section_name_)._M_dataplus._M_p" identifier = (cast_expression "(size_type *)(this->new_section_name_)._M_dataplus._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(this->new_section_name_)._M_dataplus._M_p" (field_expression "(this->new_section_name_)._M_dataplus" (parenthesized_expression "(this->new_section_name_)" ( (field_expression "this->new_section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) }))) })) (expression_statement "(this->new_section_name_)._M_string_length = local_30;" (assignment_expression "(this->new_section_name_)._M_string_length = local_30" (field_expression "(this->new_section_name_)._M_string_length" (parenthesized_expression "(this->new_section_name_)" ( (field_expression "this->new_section_name_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "*(undefined1 *)((int)__dest + local_30) = 0;" (assignment_expression "*(undefined1 *)((int)__dest + local_30) = 0" (pointer_expression "*(undefined1 *)((int)__dest + local_30)" * (cast_expression "(undefined1 *)((int)__dest + local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__dest + local_30)" ( (binary_expression "(int)__dest + local_30" (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) }) (else_clause "else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)__dest == &(this->new_section_name_).field_2) {\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_)._M_string_length = local_30;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          local_34 = &local_2c;\n        }\n        else {\n          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          (this->new_section_name_)._M_string_length = local_30;\n          local_34 = &local_2c;\n          if (__dest != (size_type *)0x0) {\n            local_34 = __dest;\n            local_2c = sVar9;\n          }\n        }" else (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)__dest == &(this->new_section_name_).field_2) {\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_)._M_string_length = local_30;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          local_34 = &local_2c;\n        }\n        else {\n          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          (this->new_section_name_)._M_string_length = local_30;\n          local_34 = &local_2c;\n          if (__dest != (size_type *)0x0) {\n            local_34 = __dest;\n            local_2c = sVar9;\n          }\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)__dest == &(this->new_section_name_).field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)__dest == &(this->new_section_name_).field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                  *)__dest == &(this->new_section_name_).field_2" (binary_expression "allocator<char>_>_9\n                  *)__dest" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                  *)__dest" identifier * (ERROR ")" )) identifier)) == (pointer_expression "&(this->new_section_name_).field_2" & (field_expression "(this->new_section_name_).field_2" (parenthesized_expression "(this->new_section_name_)" ( (field_expression "this->new_section_name_" identifier -> field_identifier) )) . field_identifier))) )) )) (compound_statement "{\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_)._M_string_length = local_30;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          local_34 = &local_2c;\n        }" { (expression_statement "(this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;" (assignment_expression "(this->new_section_name_)._M_dataplus._M_p = (pointer)local_34" (field_expression "(this->new_section_name_)._M_dataplus._M_p" (field_expression "(this->new_section_name_)._M_dataplus" (parenthesized_expression "(this->new_section_name_)" ( (field_expression "this->new_section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)local_34" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "(this->new_section_name_)._M_string_length = local_30;" (assignment_expression "(this->new_section_name_)._M_string_length = local_30" (field_expression "(this->new_section_name_)._M_string_length" (parenthesized_expression "(this->new_section_name_)" ( (field_expression "this->new_section_name_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(this->new_section_name_).field_2._M_allocated_capacity = local_2c;" (assignment_expression "(this->new_section_name_).field_2._M_allocated_capacity = local_2c" (field_expression "(this->new_section_name_).field_2._M_allocated_capacity" (field_expression "(this->new_section_name_).field_2" (parenthesized_expression "(this->new_section_name_)" ( (field_expression "this->new_section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) }) (else_clause "else {\n          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          (this->new_section_name_)._M_string_length = local_30;\n          local_34 = &local_2c;\n          if (__dest != (size_type *)0x0) {\n            local_34 = __dest;\n            local_2c = sVar9;\n          }\n        }" else (compound_statement "{\n          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;\n          (this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;\n          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;\n          (this->new_section_name_)._M_string_length = local_30;\n          local_34 = &local_2c;\n          if (__dest != (size_type *)0x0) {\n            local_34 = __dest;\n            local_2c = sVar9;\n          }\n        }" { (expression_statement "sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;" (assignment_expression "sVar9 = (this->new_section_name_).field_2._M_allocated_capacity" identifier = (field_expression "(this->new_section_name_).field_2._M_allocated_capacity" (field_expression "(this->new_section_name_).field_2" (parenthesized_expression "(this->new_section_name_)" ( (field_expression "this->new_section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(this->new_section_name_)._M_dataplus._M_p = (pointer)local_34;" (assignment_expression "(this->new_section_name_)._M_dataplus._M_p = (pointer)local_34" (field_expression "(this->new_section_name_)._M_dataplus._M_p" (field_expression "(this->new_section_name_)._M_dataplus" (parenthesized_expression "(this->new_section_name_)" ( (field_expression "this->new_section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)local_34" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "(this->new_section_name_).field_2._M_allocated_capacity = local_2c;" (assignment_expression "(this->new_section_name_).field_2._M_allocated_capacity = local_2c" (field_expression "(this->new_section_name_).field_2._M_allocated_capacity" (field_expression "(this->new_section_name_).field_2" (parenthesized_expression "(this->new_section_name_)" ( (field_expression "this->new_section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->new_section_name_)._M_string_length = local_30;" (assignment_expression "(this->new_section_name_)._M_string_length = local_30" (field_expression "(this->new_section_name_)._M_string_length" (parenthesized_expression "(this->new_section_name_)" ( (field_expression "this->new_section_name_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (if_statement "if (__dest != (size_type *)0x0) {\n            local_34 = __dest;\n            local_2c = sVar9;\n          }" if (parenthesized_expression "(__dest != (size_type *)0x0)" ( (binary_expression "__dest != (size_type *)0x0" identifier != (cast_expression "(size_type *)0x0" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_34 = __dest;\n            local_2c = sVar9;\n          }" { (expression_statement "local_34 = __dest;" (assignment_expression "local_34 = __dest" identifier = identifier) ;) (expression_statement "local_2c = sVar9;" (assignment_expression "local_2c = sVar9" identifier = identifier) ;) })) }))))) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)local_34 = 0;" (assignment_expression "*(undefined1 *)local_34 = 0" (pointer_expression "*(undefined1 *)local_34" * (cast_expression "(undefined1 *)local_34" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (local_34 != &local_2c) {\n          operator_delete(local_34);\n        }" if (parenthesized_expression "(local_34 != &local_2c)" ( (binary_expression "local_34 != &local_2c" identifier != (pointer_expression "&local_2c" & identifier)) )) (compound_statement "{\n          operator_delete(local_34);\n        }" { (expression_statement "operator_delete(local_34);" (call_expression "operator_delete(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) })) (if_statement "if (local_4c != &local_44) {\n          operator_delete(local_4c);\n        }" if (parenthesized_expression "(local_4c != &local_44)" ( (binary_expression "local_4c != &local_44" identifier != (pointer_expression "&local_44" & identifier)) )) (compound_statement "{\n          operator_delete(local_4c);\n        }" { (expression_statement "operator_delete(local_4c);" (call_expression "operator_delete(local_4c)" identifier (argument_list "(local_4c)" ( identifier ))) ;) })) (if_statement "if (((this->super_Output_section).flags_ & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe48,"set_name");\n        }" if (parenthesized_expression "(((this->super_Output_section).flags_ & 2) != 0)" ( (binary_expression "((this->super_Output_section).flags_ & 2) != 0" (parenthesized_expression "((this->super_Output_section).flags_ & 2)" ( (binary_expression "(this->super_Output_section).flags_ & 2" (field_expression "(this->super_Output_section).flags_" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe48,"set_name");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xe48,"set_name");" (call_expression "do_gold_unreachable("../../gold/output.h",0xe48,"set_name")" identifier (argument_list "("../../gold/output.h",0xe48,"set_name")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_name"" " string_content ") ))) ;) })) (expression_statement "bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;" (assignment_expression "bVar25 = (this->super_Output_section).super_Output_data.field_0x1c" identifier = (field_expression "(this->super_Output_section).super_Output_data.field_0x1c" (field_expression "(this->super_Output_section).super_Output_data" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((bVar25 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe49,"set_name");\n        }" if (parenthesized_expression "((bVar25 & 2) != 0)" ( (binary_expression "(bVar25 & 2) != 0" (parenthesized_expression "(bVar25 & 2)" ( (binary_expression "bVar25 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xe49,"set_name");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xe49,"set_name");" (call_expression "do_gold_unreachable("../../gold/output.h",0xe49,"set_name")" identifier (argument_list "("../../gold/output.h",0xe49,"set_name")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_name"" " string_content ") ))) ;) })) (expression_statement "(this->super_Output_section).name_ = (this->new_section_name_)._M_dataplus._M_p;" (assignment_expression "(this->super_Output_section).name_ = (this->new_section_name_)._M_dataplus._M_p" (field_expression "(this->super_Output_section).name_" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier) = (field_expression "(this->new_section_name_)._M_dataplus._M_p" (field_expression "(this->new_section_name_)._M_dataplus" (parenthesized_expression "(this->new_section_name_)" ( (field_expression "this->new_section_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;" (assignment_expression "*(undefined4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7" (pointer_expression "*(undefined4 *)((int)&(this->super_Output_section).flags_ + 4)" * (cast_expression "(undefined4 *)((int)&(this->super_Output_section).flags_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_section).flags_ + 4)" ( (binary_expression "(int)&(this->super_Output_section).flags_ + 4" (cast_expression "(int)&(this->super_Output_section).flags_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_section).flags_" & (field_expression "(this->super_Output_section).flags_" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)&(this->super_Output_section).flags_ = uVar6;" (assignment_expression "*(uint *)&(this->super_Output_section).flags_ = uVar6" (pointer_expression "*(uint *)&(this->super_Output_section).flags_" * (cast_expression "(uint *)&(this->super_Output_section).flags_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_section).flags_" & (field_expression "(this->super_Output_section).flags_" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) }))) (if_statement "if ((bVar25 & 8) == 0) {\n        *(ulong *)&(this->super_Output_section).super_Output_data.data_size_ = compressed_size;\n        *(undefined4 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = 0;\n        (this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;\n        return;\n      }" if (parenthesized_expression "((bVar25 & 8) == 0)" ( (binary_expression "(bVar25 & 8) == 0" (parenthesized_expression "(bVar25 & 8)" ( (binary_expression "bVar25 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(ulong *)&(this->super_Output_section).super_Output_data.data_size_ = compressed_size;\n        *(undefined4 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = 0;\n        (this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;\n        return;\n      }" { (expression_statement "*(ulong *)&(this->super_Output_section).super_Output_data.data_size_ = compressed_size;" (assignment_expression "*(ulong *)&(this->super_Output_section).super_Output_data.data_size_ = compressed_size" (pointer_expression "*(ulong *)&(this->super_Output_section).super_Output_data.data_size_" * (cast_expression "(ulong *)&(this->super_Output_section).super_Output_data.data_size_" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_section).super_Output_data.data_size_" & (field_expression "(this->super_Output_section).super_Output_data.data_size_" (field_expression "(this->super_Output_section).super_Output_data" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_section).super_Output_data.data_size_ + 4)" ( (binary_expression "(int)&(this->super_Output_section).super_Output_data.data_size_ + 4" (cast_expression "(int)&(this->super_Output_section).super_Output_data.data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_section).super_Output_data.data_size_" & (field_expression "(this->super_Output_section).super_Output_data.data_size_" (field_expression "(this->super_Output_section).super_Output_data" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "(this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;" (assignment_expression "(this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2" (field_expression "(this->super_Output_section).super_Output_data.field_0x1c" (field_expression "(this->super_Output_section).super_Output_data" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "bVar25 | 2" identifier | number_literal)) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0019ec27;" goto statement_identifier ;) })) (if_statement "if (this->data_ != (uchar *)0x0) {\n      operator_delete__(this->data_);\n    }" if (parenthesized_expression "(this->data_ != (uchar *)0x0)" ( (binary_expression "this->data_ != (uchar *)0x0" (field_expression "this->data_" identifier -> field_identifier) != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      operator_delete__(this->data_);\n    }" { (expression_statement "operator_delete__(this->data_);" (call_expression "operator_delete__(this->data_)" identifier (argument_list "(this->data_)" ( (field_expression "this->data_" identifier -> field_identifier) ))) ;) })) (expression_statement "this->data_ = (uchar *)0x0;" (assignment_expression "this->data_ = (uchar *)0x0" (field_expression "this->data_" identifier -> field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    iVar17 = 10;\n    pbVar18 = pbVar19;\n    pbVar20 = (byte *)"zlib-gabi";\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    bVar24 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) {\nLAB_0019e70c:\n      if (iVar5 == 0x20) {\n        iVar21 = 0xc;\n        iVar17 = 2;\n      }\n      else {\n        if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size");\n        }\n        iVar21 = 0x18;\n        iVar17 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar17 = 5;\n    pbVar18 = &DAT_002806eb;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar24 = *pbVar19 < *pbVar18;\n      bVar22 = *pbVar19 == *pbVar18;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar24 && !bVar22) == bVar24) goto LAB_0019e70c;\n  }" else (compound_statement "{\n    iVar17 = 10;\n    pbVar18 = pbVar19;\n    pbVar20 = (byte *)"zlib-gabi";\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    bVar24 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) {\nLAB_0019e70c:\n      if (iVar5 == 0x20) {\n        iVar21 = 0xc;\n        iVar17 = 2;\n      }\n      else {\n        if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size");\n        }\n        iVar21 = 0x18;\n        iVar17 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar17 = 5;\n    pbVar18 = &DAT_002806eb;\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar24 = *pbVar19 < *pbVar18;\n      bVar22 = *pbVar19 == *pbVar18;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar24 && !bVar22) == bVar24) goto LAB_0019e70c;\n  }" { (expression_statement "iVar17 = 10;" (assignment_expression "iVar17 = 10" identifier = number_literal) ;) (expression_statement "pbVar18 = pbVar19;" (assignment_expression "pbVar18 = pbVar19" identifier = identifier) ;) (expression_statement "pbVar20 = (byte *)"zlib-gabi";" (assignment_expression "pbVar20 = (byte *)"zlib-gabi"" identifier = (cast_expression "(byte *)"zlib-gabi"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""zlib-gabi"" " string_content "))) ;) (do_statement "do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);" do (compound_statement "{\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n    }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar22) {\nLAB_0019e70c:\n      if (iVar5 == 0x20) {\n        iVar21 = 0xc;\n        iVar17 = 2;\n      }\n      else {\n        if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size");\n        }\n        iVar21 = 0x18;\n        iVar17 = 2;\n      }\n      goto LAB_0019e72b;\n    }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\nLAB_0019e70c:\n      if (iVar5 == 0x20) {\n        iVar21 = 0xc;\n        iVar17 = 2;\n      }\n      else {\n        if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size");\n        }\n        iVar21 = 0x18;\n        iVar17 = 2;\n      }\n      goto LAB_0019e72b;\n    }" { (labeled_statement "LAB_0019e70c:\n      if (iVar5 == 0x20) {\n        iVar21 = 0xc;\n        iVar17 = 2;\n      }\n      else {\n        if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size");\n        }\n        iVar21 = 0x18;\n        iVar17 = 2;\n      }" statement_identifier : (if_statement "if (iVar5 == 0x20) {\n        iVar21 = 0xc;\n        iVar17 = 2;\n      }\n      else {\n        if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size");\n        }\n        iVar21 = 0x18;\n        iVar17 = 2;\n      }" if (parenthesized_expression "(iVar5 == 0x20)" ( (binary_expression "iVar5 == 0x20" identifier == number_literal) )) (compound_statement "{\n        iVar21 = 0xc;\n        iVar17 = 2;\n      }" { (expression_statement "iVar21 = 0xc;" (assignment_expression "iVar21 = 0xc" identifier = number_literal) ;) (expression_statement "iVar17 = 2;" (assignment_expression "iVar17 = 2" identifier = number_literal) ;) }) (else_clause "else {\n        if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size");\n        }\n        iVar21 = 0x18;\n        iVar17 = 2;\n      }" else (compound_statement "{\n        if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size");\n        }\n        iVar21 = 0x18;\n        iVar17 = 2;\n      }" { (if_statement "if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size");\n        }" if (parenthesized_expression "(iVar5 != 0x40)" ( (binary_expression "iVar5 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size");" (call_expression "do_gold_unreachable("../../gold/compressed_output.cc",0xf7,"set_final_data_size")" identifier (argument_list "("../../gold/compressed_output.cc",0xf7,"set_final_data_size")" ( (string_literal ""../../gold/compressed_output.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "iVar21 = 0x18;" (assignment_expression "iVar21 = 0x18" identifier = number_literal) ;) (expression_statement "iVar17 = 2;" (assignment_expression "iVar17 = 2" identifier = number_literal) ;) })))) (goto_statement "goto LAB_0019e72b;" goto statement_identifier ;) })) (expression_statement "iVar17 = 5;" (assignment_expression "iVar17 = 5" identifier = number_literal) ;) (expression_statement "pbVar18 = &DAT_002806eb;" (assignment_expression "pbVar18 = &DAT_002806eb" identifier = (pointer_expression "&DAT_002806eb" & identifier)) ;) (do_statement "do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar24 = *pbVar19 < *pbVar18;\n      bVar22 = *pbVar19 == *pbVar18;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);" do (compound_statement "{\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar24 = *pbVar19 < *pbVar18;\n      bVar22 = *pbVar19 == *pbVar18;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar19 < *pbVar18;" (assignment_expression "bVar24 = *pbVar19 < *pbVar18" identifier = (binary_expression "*pbVar19 < *pbVar18" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar22 = *pbVar19 == *pbVar18;" (assignment_expression "bVar22 = *pbVar19 == *pbVar18" identifier = (binary_expression "*pbVar19 == *pbVar18" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar22) == bVar24) goto LAB_0019e70c;" if (parenthesized_expression "((!bVar24 && !bVar22) == bVar24)" ( (binary_expression "(!bVar24 && !bVar22) == bVar24" (parenthesized_expression "(!bVar24 && !bVar22)" ( (binary_expression "!bVar24 && !bVar22" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0019e70c;" goto statement_identifier ;)) }))) (expression_statement "pcVar13 = (char *)gettext("not compressing section data: zlib error");" (assignment_expression "pcVar13 = (char *)gettext("not compressing section data: zlib error")" identifier = (cast_expression "(char *)gettext("not compressing section data: zlib error")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("not compressing section data: zlib error")" identifier (argument_list "("not compressing section data: zlib error")" ( (string_literal ""not compressing section data: zlib error"" " string_content ") ))))) ;) (expression_statement "gold_warning(pcVar13);" (call_expression "gold_warning(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) (if_statement "if (this->data_ != (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/compressed_output.cc",0x141,"set_final_data_size");\n  }" if (parenthesized_expression "(this->data_ != (uchar *)0x0)" ( (binary_expression "this->data_ != (uchar *)0x0" (field_expression "this->data_" identifier -> field_identifier) != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/compressed_output.cc",0x141,"set_final_data_size");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/compressed_output.cc",0x141,"set_final_data_size");" (call_expression "do_gold_unreachable("../../gold/compressed_output.cc",0x141,"set_final_data_size")" identifier (argument_list "("../../gold/compressed_output.cc",0x141,"set_final_data_size")" ( (string_literal ""../../gold/compressed_output.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "bVar25 = (this->super_Output_section).super_Output_data.field_0x1c;" (assignment_expression "bVar25 = (this->super_Output_section).super_Output_data.field_0x1c" identifier = (field_expression "(this->super_Output_section).super_Output_data.field_0x1c" (field_expression "(this->super_Output_section).super_Output_data" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (((bVar25 & 2) == 0) && ((bVar25 & 8) == 0)) {\n    *(uint *)&(this->super_Output_section).super_Output_data.data_size_ = uVar2;\n    (this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;\n    *(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = uVar3;\n    return;\n  }" if (parenthesized_expression "(((bVar25 & 2) == 0) && ((bVar25 & 8) == 0))" ( (binary_expression "((bVar25 & 2) == 0) && ((bVar25 & 8) == 0)" (parenthesized_expression "((bVar25 & 2) == 0)" ( (binary_expression "(bVar25 & 2) == 0" (parenthesized_expression "(bVar25 & 2)" ( (binary_expression "bVar25 & 2" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((bVar25 & 8) == 0)" ( (binary_expression "(bVar25 & 8) == 0" (parenthesized_expression "(bVar25 & 8)" ( (binary_expression "bVar25 & 8" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    *(uint *)&(this->super_Output_section).super_Output_data.data_size_ = uVar2;\n    (this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;\n    *(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = uVar3;\n    return;\n  }" { (expression_statement "*(uint *)&(this->super_Output_section).super_Output_data.data_size_ = uVar2;" (assignment_expression "*(uint *)&(this->super_Output_section).super_Output_data.data_size_ = uVar2" (pointer_expression "*(uint *)&(this->super_Output_section).super_Output_data.data_size_" * (cast_expression "(uint *)&(this->super_Output_section).super_Output_data.data_size_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_section).super_Output_data.data_size_" & (field_expression "(this->super_Output_section).super_Output_data.data_size_" (field_expression "(this->super_Output_section).super_Output_data" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = identifier) ;) (expression_statement "(this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2;" (assignment_expression "(this->super_Output_section).super_Output_data.field_0x1c = bVar25 | 2" (field_expression "(this->super_Output_section).super_Output_data.field_0x1c" (field_expression "(this->super_Output_section).super_Output_data" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "bVar25 | 2" identifier | number_literal)) ;) (expression_statement "*(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = uVar3;" (assignment_expression "*(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = uVar3" (pointer_expression "*(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4)" * (cast_expression "(uint *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_section).super_Output_data.data_size_ + 4)" ( (binary_expression "(int)&(this->super_Output_section).super_Output_data.data_size_ + 4" (cast_expression "(int)&(this->super_Output_section).super_Output_data.data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_section).super_Output_data.data_size_" & (field_expression "(this->super_Output_section).super_Output_data.data_size_" (field_expression "(this->super_Output_section).super_Output_data" (parenthesized_expression "(this->super_Output_section)" ( (field_expression "this->super_Output_section" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0019ec27:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/output.h",0x218,"set_data_size");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x218,"set_data_size");" (call_expression "do_gold_unreachable("../../gold/output.h",0x218,"set_data_size")" identifier (argument_list "("../../gold/output.h",0x218,"set_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_data_size"" " string_content ") ))) ;)) })))
(translation_unit "void FUN_0019e650(undefined **param_1)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  undefined **ppuVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  size_t sVar12;\n  undefined4 *puVar13;\n  undefined ***__dest;\n  int iVar14;\n  undefined *extraout_ECX;\n  undefined *puVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int iVar19;\n  bool bVar20;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  undefined8 uVar24;\n  uint local_68;\n  undefined **local_60;\n  undefined *local_50;\n  undefined2 *local_4c;\n  undefined4 local_48;\n  undefined2 local_44;\n  undefined1 local_42;\n  undefined ***local_34;\n  undefined *local_30;\n  undefined **local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar23 = 0;\n  ppuVar6 = &__DT_PLTGOT;\n  puVar2 = param_1[3];\n  uVar7 = (uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18;\n  puVar3 = param_1[4];\n  puVar15 = param_1[0x23];\n  if (puVar15 == (undefined *)0x0) {\n                    \n    FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }\n  FUN_000ef2d0(param_1);\n  bVar20 = false;\n  bVar22 = *(int *)(DAT_0038f378 + 0xc) == 0;\n  if (bVar22) goto LAB_0019ec43;\n  iVar14 = 9;\n  iVar4 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);\n  pbVar17 = *(byte **)(param_1[0x3a] + 0x99c);\n  pbVar16 = pbVar17;\n  pbVar18 = &DAT_002806f0;\n  do {\n    if (iVar14 == 0) break;\n    iVar14 = iVar14 + -1;\n    bVar20 = *pbVar16 < *pbVar18;\n    bVar22 = *pbVar16 == *pbVar18;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar21 = false;\n  bVar20 = (!bVar20 && !bVar22) == bVar20;\n  if (bVar20) {\n    iVar19 = 0xc;\n    iVar14 = 1;\nLAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;\n    puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);\n    param_1[0x3b] = puVar8;\n    if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }\n    iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');\n    if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }\n    param_1[0x3b] = (undefined *)0x0;\n  }\n  else {\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }\n  uVar11 = gettext("not compressing section data: zlib error");\n  FUN_000654e0(uVar11);\n  if (param_1[0x3b] != (undefined *)0x0) {\n                    \n    FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);\n  }\n  bVar23 = *(byte *)(param_1 + 7);\n  puVar15 = extraout_ECX;\n  if (((bVar23 & 2) == 0) && ((bVar23 & 8) == 0)) {\n    param_1[3] = puVar2;\n    *(byte *)(param_1 + 7) = bVar23 | 2;\n    param_1[4] = puVar3;\n    return;\n  }\nLAB_0019ec27:\n                    \n  FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15);\n}\n\n" (function_definition "void FUN_0019e650(undefined **param_1)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  undefined **ppuVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  size_t sVar12;\n  undefined4 *puVar13;\n  undefined ***__dest;\n  int iVar14;\n  undefined *extraout_ECX;\n  undefined *puVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int iVar19;\n  bool bVar20;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  undefined8 uVar24;\n  uint local_68;\n  undefined **local_60;\n  undefined *local_50;\n  undefined2 *local_4c;\n  undefined4 local_48;\n  undefined2 local_44;\n  undefined1 local_42;\n  undefined ***local_34;\n  undefined *local_30;\n  undefined **local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar23 = 0;\n  ppuVar6 = &__DT_PLTGOT;\n  puVar2 = param_1[3];\n  uVar7 = (uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18;\n  puVar3 = param_1[4];\n  puVar15 = param_1[0x23];\n  if (puVar15 == (undefined *)0x0) {\n                    \n    FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }\n  FUN_000ef2d0(param_1);\n  bVar20 = false;\n  bVar22 = *(int *)(DAT_0038f378 + 0xc) == 0;\n  if (bVar22) goto LAB_0019ec43;\n  iVar14 = 9;\n  iVar4 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);\n  pbVar17 = *(byte **)(param_1[0x3a] + 0x99c);\n  pbVar16 = pbVar17;\n  pbVar18 = &DAT_002806f0;\n  do {\n    if (iVar14 == 0) break;\n    iVar14 = iVar14 + -1;\n    bVar20 = *pbVar16 < *pbVar18;\n    bVar22 = *pbVar16 == *pbVar18;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar21 = false;\n  bVar20 = (!bVar20 && !bVar22) == bVar20;\n  if (bVar20) {\n    iVar19 = 0xc;\n    iVar14 = 1;\nLAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;\n    puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);\n    param_1[0x3b] = puVar8;\n    if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }\n    iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');\n    if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }\n    param_1[0x3b] = (undefined *)0x0;\n  }\n  else {\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }\n  uVar11 = gettext("not compressing section data: zlib error");\n  FUN_000654e0(uVar11);\n  if (param_1[0x3b] != (undefined *)0x0) {\n                    \n    FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);\n  }\n  bVar23 = *(byte *)(param_1 + 7);\n  puVar15 = extraout_ECX;\n  if (((bVar23 & 2) == 0) && ((bVar23 & 8) == 0)) {\n    param_1[3] = puVar2;\n    *(byte *)(param_1 + 7) = bVar23 | 2;\n    param_1[4] = puVar3;\n    return;\n  }\nLAB_0019ec27:\n                    \n  FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15);\n}" primitive_type (function_declarator "FUN_0019e650(undefined **param_1)" identifier (parameter_list "(undefined **param_1)" ( (parameter_declaration "undefined **param_1" type_identifier (pointer_declarator "**param_1" * (pointer_declarator "*param_1" * identifier))) ))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  undefined **ppuVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  size_t sVar12;\n  undefined4 *puVar13;\n  undefined ***__dest;\n  int iVar14;\n  undefined *extraout_ECX;\n  undefined *puVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int iVar19;\n  bool bVar20;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  undefined8 uVar24;\n  uint local_68;\n  undefined **local_60;\n  undefined *local_50;\n  undefined2 *local_4c;\n  undefined4 local_48;\n  undefined2 local_44;\n  undefined1 local_42;\n  undefined ***local_34;\n  undefined *local_30;\n  undefined **local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar23 = 0;\n  ppuVar6 = &__DT_PLTGOT;\n  puVar2 = param_1[3];\n  uVar7 = (uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18;\n  puVar3 = param_1[4];\n  puVar15 = param_1[0x23];\n  if (puVar15 == (undefined *)0x0) {\n                    \n    FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }\n  FUN_000ef2d0(param_1);\n  bVar20 = false;\n  bVar22 = *(int *)(DAT_0038f378 + 0xc) == 0;\n  if (bVar22) goto LAB_0019ec43;\n  iVar14 = 9;\n  iVar4 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);\n  pbVar17 = *(byte **)(param_1[0x3a] + 0x99c);\n  pbVar16 = pbVar17;\n  pbVar18 = &DAT_002806f0;\n  do {\n    if (iVar14 == 0) break;\n    iVar14 = iVar14 + -1;\n    bVar20 = *pbVar16 < *pbVar18;\n    bVar22 = *pbVar16 == *pbVar18;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar21 = false;\n  bVar20 = (!bVar20 && !bVar22) == bVar20;\n  if (bVar20) {\n    iVar19 = 0xc;\n    iVar14 = 1;\nLAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;\n    puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);\n    param_1[0x3b] = puVar8;\n    if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }\n    iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');\n    if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }\n    param_1[0x3b] = (undefined *)0x0;\n  }\n  else {\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }\n  uVar11 = gettext("not compressing section data: zlib error");\n  FUN_000654e0(uVar11);\n  if (param_1[0x3b] != (undefined *)0x0) {\n                    \n    FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);\n  }\n  bVar23 = *(byte *)(param_1 + 7);\n  puVar15 = extraout_ECX;\n  if (((bVar23 & 2) == 0) && ((bVar23 & 8) == 0)) {\n    param_1[3] = puVar2;\n    *(byte *)(param_1 + 7) = bVar23 | 2;\n    param_1[4] = puVar3;\n    return;\n  }\nLAB_0019ec27:\n                    \n  FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15);\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined **ppuVar5;" type_identifier (pointer_declarator "**ppuVar5" * (pointer_declarator "*ppuVar5" * identifier)) ;) (declaration "undefined **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined ***__dest;" type_identifier (pointer_declarator "***__dest" * (pointer_declarator "**__dest" * (pointer_declarator "*__dest" * identifier))) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "undefined8 uVar24;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "undefined **local_60;" type_identifier (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier)) ;) (declaration "undefined *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "undefined2 *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined2 local_44;" type_identifier identifier ;) (declaration "undefined1 local_42;" type_identifier identifier ;) (declaration "undefined ***local_34;" type_identifier (pointer_declarator "***local_34" * (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier))) ;) (declaration "undefined *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined **local_2c;" type_identifier (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier)) ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "ppuVar6 = &__DT_PLTGOT;" (assignment_expression "ppuVar6 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "puVar2 = param_1[3];" (assignment_expression "puVar2 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = (uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18;" (assignment_expression "uVar7 = (uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18" identifier = (binary_expression "(uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18" (binary_expression "(uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8" (binary_expression "(uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8" (binary_expression "(uint)puVar2 >> 0x18" (cast_expression "(uint)puVar2" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "((uint)puVar2 & 0xff0000) >> 8" (parenthesized_expression "((uint)puVar2 & 0xff0000)" ( (binary_expression "(uint)puVar2 & 0xff0000" (cast_expression "(uint)puVar2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((uint)puVar2 & 0xff00) << 8" (parenthesized_expression "((uint)puVar2 & 0xff00)" ( (binary_expression "(uint)puVar2 & 0xff00" (cast_expression "(uint)puVar2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(int)puVar2 << 0x18" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal))) ;) (expression_statement "puVar3 = param_1[4];" (assignment_expression "puVar3 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "puVar15 = param_1[0x23];" (assignment_expression "puVar15 = param_1[0x23]" identifier = (subscript_expression "param_1[0x23]" identifier [ number_literal ])) ;) (if_statement "if (puVar15 == (undefined *)0x0) {\n                    \n    FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }" if (parenthesized_expression "(puVar15 == (undefined *)0x0)" ( (binary_expression "puVar15 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }" { (expression_statement "FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");" (call_expression "FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer")" identifier (argument_list "("../../gold/output.h",0xe34,"postprocessing_buffer")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""postprocessing_buffer"" " string_content ") ))) ;) })) (expression_statement "FUN_000ef2d0(param_1);" (call_expression "FUN_000ef2d0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar22 = *(int *)(DAT_0038f378 + 0xc) == 0;" (assignment_expression "bVar22 = *(int *)(DAT_0038f378 + 0xc) == 0" identifier = (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) == number_literal)) ;) (if_statement "if (bVar22) goto LAB_0019ec43;" if (parenthesized_expression "(bVar22)" ( identifier )) (goto_statement "goto LAB_0019ec43;" goto statement_identifier ;)) (expression_statement "iVar14 = 9;" (assignment_expression "iVar14 = 9" identifier = number_literal) ;) (expression_statement "iVar4 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);" (assignment_expression "iVar4 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "pbVar17 = *(byte **)(param_1[0x3a] + 0x99c);" (assignment_expression "pbVar17 = *(byte **)(param_1[0x3a] + 0x99c)" identifier = (pointer_expression "*(byte **)(param_1[0x3a] + 0x99c)" * (cast_expression "(byte **)(param_1[0x3a] + 0x99c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[0x3a] + 0x99c)" ( (binary_expression "param_1[0x3a] + 0x99c" (subscript_expression "param_1[0x3a]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "pbVar16 = pbVar17;" (assignment_expression "pbVar16 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar18 = &DAT_002806f0;" (assignment_expression "pbVar18 = &DAT_002806f0" identifier = (pointer_expression "&DAT_002806f0" & identifier)) ;) (do_statement "do {\n    if (iVar14 == 0) break;\n    iVar14 = iVar14 + -1;\n    bVar20 = *pbVar16 < *pbVar18;\n    bVar22 = *pbVar16 == *pbVar18;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);" do (compound_statement "{\n    if (iVar14 == 0) break;\n    iVar14 = iVar14 + -1;\n    bVar20 = *pbVar16 < *pbVar18;\n    bVar22 = *pbVar16 == *pbVar18;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n  }" { (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar16 < *pbVar18;" (assignment_expression "bVar20 = *pbVar16 < *pbVar18" identifier = (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar22 = *pbVar16 == *pbVar18;" (assignment_expression "bVar22 = *pbVar16 == *pbVar18" identifier = (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar20 && !bVar22) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar22) == bVar20" identifier = (binary_expression "(!bVar20 && !bVar22) == bVar20" (parenthesized_expression "(!bVar20 && !bVar22)" ( (binary_expression "!bVar20 && !bVar22" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar20) {\n    iVar19 = 0xc;\n    iVar14 = 1;\nLAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;\n    puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);\n    param_1[0x3b] = puVar8;\n    if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }\n    iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');\n    if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }\n    param_1[0x3b] = (undefined *)0x0;\n  }\n  else {\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }" if (parenthesized_expression "(bVar20)" ( identifier )) (compound_statement "{\n    iVar19 = 0xc;\n    iVar14 = 1;\nLAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;\n    puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);\n    param_1[0x3b] = puVar8;\n    if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }\n    iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');\n    if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }\n    param_1[0x3b] = (undefined *)0x0;\n  }" { (expression_statement "iVar19 = 0xc;" (assignment_expression "iVar19 = 0xc" identifier = number_literal) ;) (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;" statement_identifier : (expression_statement "local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;" (assignment_expression "local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80" identifier = (binary_expression "puVar2 + (uint)puVar2 / 1000 + 0x80" (binary_expression "puVar2 + (uint)puVar2 / 1000" identifier + (binary_expression "(uint)puVar2 / 1000" (cast_expression "(uint)puVar2" ( (type_descriptor "uint" type_identifier) ) identifier) / number_literal)) + number_literal)) ;)) (expression_statement "puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);" (assignment_expression "puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19)" identifier = (cast_expression "(undefined *)FUN_001e5180(local_50 + iVar19)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5180(local_50 + iVar19)" identifier (argument_list "(local_50 + iVar19)" ( (binary_expression "local_50 + iVar19" identifier + identifier) ))))) ;) (expression_statement "param_1[0x3b] = puVar8;" (assignment_expression "param_1[0x3b] = puVar8" (subscript_expression "param_1[0x3b]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }" if (parenthesized_expression "(*(int *)(DAT_0038f378 + 8) == 0)" ( (binary_expression "*(int *)(DAT_0038f378 + 8) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }" { (expression_statement "FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",&DAT_0038f378)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , (pointer_expression "&DAT_0038f378" & identifier) ))) ;) })) (expression_statement "iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');" (assignment_expression "iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01')" identifier = (call_expression "compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01')" identifier (argument_list "(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01')" ( (binary_expression "puVar8 + iVar19" identifier + identifier) , (pointer_expression "&local_50" & identifier) , identifier , identifier , (binary_expression "(0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01'" (binary_expression "(0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b'" (parenthesized_expression "(0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830))" ( (binary_expression "0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)" number_literal < (pointer_expression "*(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)" * (cast_expression "(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 8) + 0x2830)" ( (binary_expression "*(int *)(DAT_0038f378 + 8) + 0x2830" (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) )))) + number_literal) ))))) )) * (char_literal "'\b'" ' escape_sequence ')) + (char_literal "'\x01'" ' escape_sequence ')) )))) ;) (if_statement "if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }" { (expression_statement "local_50 = local_50 + iVar19;" (assignment_expression "local_50 = local_50 + iVar19" identifier = (binary_expression "local_50 + iVar19" identifier + identifier)) ;) (expression_statement "puVar15 = param_1[0x15];" (assignment_expression "puVar15 = param_1[0x15]" identifier = (subscript_expression "param_1[0x15]" identifier [ number_literal ])) ;) (expression_statement "puVar8 = param_1[0x16];" (assignment_expression "puVar8 = param_1[0x16]" identifier = (subscript_expression "param_1[0x16]" identifier [ number_literal ])) ;) (if_statement "if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }" if (parenthesized_expression "(iVar14 == 2)" ( (binary_expression "iVar14 == 2" identifier == number_literal) )) (compound_statement "{\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }" { (expression_statement "ppuVar6 = (undefined **)0x2;" (assignment_expression "ppuVar6 = (undefined **)0x2" identifier = (cast_expression "(undefined **)0x2" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }" if (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }" { (labeled_statement "LAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);" statement_identifier : (expression_statement "FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",ppuVar6)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , identifier ))) ;)) })) (expression_statement "cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);" (assignment_expression "cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" identifier = (pointer_expression "*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" * (cast_expression "(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" ( (binary_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4" (pointer_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }" if (parenthesized_expression "(*(code **)(*param_1 + 0xc) == FUN_000a4920)" ( (binary_expression "*(code **)(*param_1 + 0xc) == FUN_000a4920" (pointer_expression "*(code **)(*param_1 + 0xc)" * (cast_expression "(code **)(*param_1 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0xc)" ( (binary_expression "*param_1 + 0xc" (pointer_expression "*param_1" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }" { (expression_statement "uVar24 = *(undefined8 *)(param_1 + 9);" (assignment_expression "uVar24 = *(undefined8 *)(param_1 + 9)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 9)" * (cast_expression "(undefined8 *)(param_1 + 9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 9)" ( (binary_expression "param_1 + 9" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }" else (compound_statement "{\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }" { (expression_statement "uVar24 = (**(code **)(*param_1 + 0xc))(param_1);" (assignment_expression "uVar24 = (**(code **)(*param_1 + 0xc))(param_1)" identifier = (call_expression "(**(code **)(*param_1 + 0xc))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 0xc))" ( (pointer_expression "**(code **)(*param_1 + 0xc)" * (pointer_expression "*(code **)(*param_1 + 0xc)" * (cast_expression "(code **)(*param_1 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0xc)" ( (binary_expression "*param_1 + 0xc" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) }))) (expression_statement "local_68 = (uint)((ulonglong)uVar24 >> 0x20);" (assignment_expression "local_68 = (uint)((ulonglong)uVar24 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar24 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar24 >> 0x20)" ( (binary_expression "(ulonglong)uVar24 >> 0x20" (cast_expression "(ulonglong)uVar24" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar10 = (uint)uVar24;" (assignment_expression "uVar10 = (uint)uVar24" identifier = (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }" if (parenthesized_expression "(iVar4 == 0x20)" ( (binary_expression "iVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }" { (expression_statement "puVar13 = (undefined4 *)param_1[0x3b];" (assignment_expression "puVar13 = (undefined4 *)param_1[0x3b]" identifier = (cast_expression "(undefined4 *)param_1[0x3b]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x3b]" identifier [ number_literal ]))) ;) (if_statement "if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }" { (expression_statement "*puVar13 = 1;" (assignment_expression "*puVar13 = 1" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13[2] = uVar10;" (assignment_expression "puVar13[2] = uVar10" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[1] = puVar2;" (assignment_expression "puVar13[1] = puVar2" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }" else (compound_statement "{\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }" { (expression_statement "*puVar13 = 0x1000000;" (assignment_expression "*puVar13 = 0x1000000" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;" (assignment_expression "puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar13[1] = uVar7;" (assignment_expression "puVar13[1] = uVar7" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }" else (compound_statement "{\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }" { (if_statement "if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }" if (parenthesized_expression "(iVar4 != 0x40)" ( (binary_expression "iVar4 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }" { (expression_statement "FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);" (call_expression "FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10)" identifier (argument_list "("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10)" ( (string_literal ""../../gold/compressed_output.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") , identifier ))) ;) })) (expression_statement "puVar13 = (undefined4 *)param_1[0x3b];" (assignment_expression "puVar13 = (undefined4 *)param_1[0x3b]" identifier = (cast_expression "(undefined4 *)param_1[0x3b]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x3b]" identifier [ number_literal ]))) ;) (if_statement "if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }" { (expression_statement "puVar13[4] = uVar10;" (assignment_expression "puVar13[4] = uVar10" (subscript_expression "puVar13[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar13 = 1;" (assignment_expression "*puVar13 = 1" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13[2] = puVar2;" (assignment_expression "puVar13[2] = puVar2" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = puVar3;" (assignment_expression "puVar13[3] = puVar3" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }" else (compound_statement "{\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }" { (expression_statement "*puVar13 = 0;" (assignment_expression "*puVar13 = 0" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;" (assignment_expression "puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = (binary_expression "(uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18" (binary_expression "(uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8" (binary_expression "(uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8" (binary_expression "(uint)puVar3 >> 0x18" (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "((uint)puVar3 & 0xff0000) >> 8" (parenthesized_expression "((uint)puVar3 & 0xff0000)" ( (binary_expression "(uint)puVar3 & 0xff0000" (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) >> number_literal)) | (binary_expression "((uint)puVar3 & 0xff00) << 8" (parenthesized_expression "((uint)puVar3 & 0xff00)" ( (binary_expression "(uint)puVar3 & 0xff00" (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) << number_literal)) | (binary_expression "(int)puVar3 << 0x18" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal))) ;) (expression_statement "puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;" (assignment_expression "puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18" (subscript_expression "puVar13[4]" identifier [ number_literal ]) = (binary_expression "local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18" (binary_expression "local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8" (binary_expression "local_68 >> 0x18 | (local_68 & 0xff0000) >> 8" (binary_expression "local_68 >> 0x18" identifier >> number_literal) | (binary_expression "(local_68 & 0xff0000) >> 8" (parenthesized_expression "(local_68 & 0xff0000)" ( (binary_expression "local_68 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(local_68 & 0xff00) << 8" (parenthesized_expression "(local_68 & 0xff00)" ( (binary_expression "local_68 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "local_68 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar13[3] = uVar7;" (assignment_expression "puVar13[3] = uVar7" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;" (assignment_expression "local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18" identifier = (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal))) ;) }))) (expression_statement "puVar13[5] = local_68;" (assignment_expression "puVar13[5] = local_68" (subscript_expression "puVar13[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[1] = 0;" (assignment_expression "puVar13[1] = 0" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "bVar23 = *(byte *)(param_1 + 7);" (assignment_expression "bVar23 = *(byte *)(param_1 + 7)" identifier = (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) ))))) ;) (expression_statement "param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);" (assignment_expression "param_1[0x15] = (undefined *)((uint)puVar15 | 0x800)" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) = (cast_expression "(undefined *)((uint)puVar15 | 0x800)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar15 | 0x800)" ( (binary_expression "(uint)puVar15 | 0x800" (cast_expression "(uint)puVar15" ( (type_descriptor "uint" type_identifier) ) identifier) | number_literal) )))) ;) (expression_statement "param_1[0x16] = puVar8;" (assignment_expression "param_1[0x16] = puVar8" (subscript_expression "param_1[0x16]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15 = local_50;" (assignment_expression "puVar15 = local_50" identifier = identifier) ;) (if_statement "if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;" if (parenthesized_expression "((bVar23 >> 1 & 1) != 0)" ( (binary_expression "(bVar23 >> 1 & 1) != 0" (parenthesized_expression "(bVar23 >> 1 & 1)" ( (binary_expression "bVar23 >> 1 & 1" (binary_expression "bVar23 >> 1" identifier >> number_literal) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0019ec27;" goto statement_identifier ;)) }) (else_clause "else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }" else (compound_statement "{\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }" { (expression_statement "*(undefined4 *)param_1[0x3b] = 0x42494c5a;" (assignment_expression "*(undefined4 *)param_1[0x3b] = 0x42494c5a" (pointer_expression "*(undefined4 *)param_1[0x3b]" * (cast_expression "(undefined4 *)param_1[0x3b]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x3b]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "puVar2 = param_1[0x3b];" (assignment_expression "puVar2 = param_1[0x3b]" identifier = (subscript_expression "param_1[0x3b]" identifier [ number_literal ])) ;) (expression_statement "puVar2[4] = (char)((uint)puVar3 >> 0x18);" (assignment_expression "puVar2[4] = (char)((uint)puVar3 >> 0x18)" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (cast_expression "(char)((uint)puVar3 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)puVar3 >> 0x18)" ( (binary_expression "(uint)puVar3 >> 0x18" (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar2[6] = (char)((uint)puVar3 >> 8);" (assignment_expression "puVar2[6] = (char)((uint)puVar3 >> 8)" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = (cast_expression "(char)((uint)puVar3 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)puVar3 >> 8)" ( (binary_expression "(uint)puVar3 >> 8" (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar2[5] = (char)((uint)puVar3 >> 0x10);" (assignment_expression "puVar2[5] = (char)((uint)puVar3 >> 0x10)" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = (cast_expression "(char)((uint)puVar3 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)puVar3 >> 0x10)" ( (binary_expression "(uint)puVar3 >> 0x10" (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar2[7] = (char)puVar3;" (assignment_expression "puVar2[7] = (char)puVar3" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = (cast_expression "(char)puVar3" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(uint *)(puVar2 + 8) = uVar7;" (assignment_expression "*(uint *)(puVar2 + 8) = uVar7" (pointer_expression "*(uint *)(puVar2 + 8)" * (cast_expression "(uint *)(puVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 8)" ( (binary_expression "puVar2 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2 = param_1[8];" (assignment_expression "puVar2 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "local_48 = 2;" (assignment_expression "local_48 = 2" identifier = number_literal) ;) (expression_statement "local_42 = 0;" (assignment_expression "local_42 = 0" identifier = number_literal) ;) (expression_statement "local_44 = 0x7a2e;" (assignment_expression "local_44 = 0x7a2e" identifier = number_literal) ;) (expression_statement "local_4c = &local_44;" (assignment_expression "local_4c = &local_44" identifier = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "sVar12 = strlen(puVar2 + 1);" (assignment_expression "sVar12 = strlen(puVar2 + 1)" identifier = (call_expression "strlen(puVar2 + 1)" identifier (argument_list "(puVar2 + 1)" ( (binary_expression "puVar2 + 1" identifier + number_literal) )))) ;) (expression_statement "puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);" (assignment_expression "puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12)" identifier = (cast_expression "(undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001f05c0(&local_4c,puVar2 + 1,sVar12)" identifier (argument_list "(&local_4c,puVar2 + 1,sVar12)" ( (pointer_expression "&local_4c" & identifier) , (binary_expression "puVar2 + 1" identifier + number_literal) , identifier ))))) ;) (if_statement "if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }" if (parenthesized_expression "((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2))" ( (binary_expression "(undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)" (cast_expression "(undefined ***)*puVar13" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*puVar13" * identifier)) == (cast_expression "(undefined ***)(puVar13 + 2)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar13 + 2)" ( (binary_expression "puVar13 + 2" identifier + number_literal) )))) )) (compound_statement "{\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }" { (expression_statement "local_2c = (undefined **)puVar13[2];" (assignment_expression "local_2c = (undefined **)puVar13[2]" identifier = (cast_expression "(undefined **)puVar13[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "local_28 = puVar13[3];" (assignment_expression "local_28 = puVar13[3]" identifier = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (expression_statement "local_24 = puVar13[4];" (assignment_expression "local_24 = puVar13[4]" identifier = (subscript_expression "puVar13[4]" identifier [ number_literal ])) ;) (expression_statement "local_20 = puVar13[5];" (assignment_expression "local_20 = puVar13[5]" identifier = (subscript_expression "puVar13[5]" identifier [ number_literal ])) ;) (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) }) (else_clause "else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }" else (compound_statement "{\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }" { (expression_statement "local_2c = (undefined **)puVar13[2];" (assignment_expression "local_2c = (undefined **)puVar13[2]" identifier = (cast_expression "(undefined **)puVar13[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "puVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "local_34 = (undefined ***)*puVar13;" (assignment_expression "local_34 = (undefined ***)*puVar13" identifier = (cast_expression "(undefined ***)*puVar13" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*puVar13" * identifier))) ;) }))) (expression_statement "local_30 = (undefined *)puVar13[1];" (assignment_expression "local_30 = (undefined *)puVar13[1]" identifier = (cast_expression "(undefined *)puVar13[1]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[1]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined1 *)(puVar13 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar13 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar13 + 2)" * (cast_expression "(undefined1 *)(puVar13 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 2)" ( (binary_expression "puVar13 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar13 = puVar13 + 2;" (assignment_expression "*puVar13 = puVar13 + 2" (pointer_expression "*puVar13" * identifier) = (binary_expression "puVar13 + 2" identifier + number_literal)) ;) (expression_statement "puVar13[1] = 0;" (assignment_expression "puVar13[1] = 0" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__dest = (undefined ***)param_1[0x3c];" (assignment_expression "__dest = (undefined ***)param_1[0x3c]" identifier = (cast_expression "(undefined ***)param_1[0x3c]" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "param_1[0x3c]" identifier [ number_literal ]))) ;) (if_statement "if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }" if (parenthesized_expression "(local_34 == &local_2c)" ( (binary_expression "local_34 == &local_2c" identifier == (pointer_expression "&local_2c" & identifier)) )) (compound_statement "{\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }" { (if_statement "if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }" if (parenthesized_expression "(local_30 != (undefined *)0x0)" ( (binary_expression "local_30 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }" { (if_statement "if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }" if (parenthesized_expression "(local_30 == (undefined *)0x1)" ( (binary_expression "local_30 == (undefined *)0x1" identifier == (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }" { (expression_statement "*(undefined1 *)__dest = local_2c._0_1_;" (assignment_expression "*(undefined1 *)__dest = local_2c._0_1_" (pointer_expression "*(undefined1 *)__dest" * (cast_expression "(undefined1 *)__dest" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "local_2c._0_1_" identifier . field_identifier)) ;) (expression_statement "__dest = (undefined ***)param_1[0x3c];" (assignment_expression "__dest = (undefined ***)param_1[0x3c]" identifier = (cast_expression "(undefined ***)param_1[0x3c]" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "param_1[0x3c]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }" else (compound_statement "{\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }" { (expression_statement "memcpy(__dest,&local_2c,(size_t)local_30);" (call_expression "memcpy(__dest,&local_2c,(size_t)local_30)" identifier (argument_list "(__dest,&local_2c,(size_t)local_30)" ( identifier , (pointer_expression "&local_2c" & identifier) , (cast_expression "(size_t)local_30" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "__dest = (undefined ***)param_1[0x3c];" (assignment_expression "__dest = (undefined ***)param_1[0x3c]" identifier = (cast_expression "(undefined ***)param_1[0x3c]" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "param_1[0x3c]" identifier [ number_literal ]))) ;) }))) })) (expression_statement "param_1[0x3d] = local_30;" (assignment_expression "param_1[0x3d] = local_30" (subscript_expression "param_1[0x3d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)__dest + (int)local_30) = 0;" (assignment_expression "*(undefined1 *)((int)__dest + (int)local_30) = 0" (pointer_expression "*(undefined1 *)((int)__dest + (int)local_30)" * (cast_expression "(undefined1 *)((int)__dest + (int)local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__dest + (int)local_30)" ( (binary_expression "(int)__dest + (int)local_30" (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = number_literal) ;) (expression_statement "ppuVar6 = param_1;" (assignment_expression "ppuVar6 = param_1" identifier = identifier) ;) }) (else_clause "else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }" else (compound_statement "{\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }" { (expression_statement "ppuVar6 = local_2c;" (assignment_expression "ppuVar6 = local_2c" identifier = identifier) ;) (if_statement "if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }" if (parenthesized_expression "(__dest == (undefined ***)(param_1 + 0x3e))" ( (binary_expression "__dest == (undefined ***)(param_1 + 0x3e)" identifier == (cast_expression "(undefined ***)(param_1 + 0x3e)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_1 + 0x3e)" ( (binary_expression "param_1 + 0x3e" identifier + number_literal) )))) )) (compound_statement "{\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }" { (expression_statement "param_1[0x3c] = (undefined *)local_34;" (assignment_expression "param_1[0x3c] = (undefined *)local_34" (subscript_expression "param_1[0x3c]" identifier [ number_literal ]) = (cast_expression "(undefined *)local_34" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "param_1[0x3d] = local_30;" (assignment_expression "param_1[0x3d] = local_30" (subscript_expression "param_1[0x3d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x3e] = (undefined *)local_2c;" (assignment_expression "param_1[0x3e] = (undefined *)local_2c" (subscript_expression "param_1[0x3e]" identifier [ number_literal ]) = (cast_expression "(undefined *)local_2c" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) }) (else_clause "else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }" else (compound_statement "{\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }" { (expression_statement "ppuVar5 = (undefined **)param_1[0x3e];" (assignment_expression "ppuVar5 = (undefined **)param_1[0x3e]" identifier = (cast_expression "(undefined **)param_1[0x3e]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_1[0x3e]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x3c] = (undefined *)local_34;" (assignment_expression "param_1[0x3c] = (undefined *)local_34" (subscript_expression "param_1[0x3c]" identifier [ number_literal ]) = (cast_expression "(undefined *)local_34" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "param_1[0x3e] = (undefined *)local_2c;" (assignment_expression "param_1[0x3e] = (undefined *)local_2c" (subscript_expression "param_1[0x3e]" identifier [ number_literal ]) = (cast_expression "(undefined *)local_2c" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "param_1[0x3d] = local_30;" (assignment_expression "param_1[0x3d] = local_30" (subscript_expression "param_1[0x3d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (if_statement "if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }" if (parenthesized_expression "(__dest != (undefined ***)0x0)" ( (binary_expression "__dest != (undefined ***)0x0" identifier != (cast_expression "(undefined ***)0x0" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }" { (expression_statement "ppuVar6 = ppuVar5;" (assignment_expression "ppuVar6 = ppuVar5" identifier = identifier) ;) (expression_statement "local_34 = __dest;" (assignment_expression "local_34 = __dest" identifier = identifier) ;) (expression_statement "local_2c = ppuVar5;" (assignment_expression "local_2c = ppuVar5" identifier = identifier) ;) })) }))) }))) (expression_statement "local_60 = &__DT_PLTGOT;" (assignment_expression "local_60 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined1 *)local_34 = 0;" (assignment_expression "*(undefined1 *)local_34 = 0" (pointer_expression "*(undefined1 *)local_34" * (cast_expression "(undefined1 *)local_34" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }" if (parenthesized_expression "(local_34 != &local_2c)" ( (binary_expression "local_34 != &local_2c" identifier != (pointer_expression "&local_2c" & identifier)) )) (compound_statement "{\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }" { (expression_statement "FUN_001e6db0(local_34);" (call_expression "FUN_001e6db0(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) (expression_statement "ppuVar6 = local_60;" (assignment_expression "ppuVar6 = local_60" identifier = identifier) ;) })) (if_statement "if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }" if (parenthesized_expression "(local_4c != &local_44)" ( (binary_expression "local_4c != &local_44" identifier != (pointer_expression "&local_44" & identifier)) )) (compound_statement "{\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }" { (expression_statement "FUN_001e6db0(local_4c);" (call_expression "FUN_001e6db0(local_4c)" identifier (argument_list "(local_4c)" ( identifier ))) ;) (expression_statement "ppuVar6 = local_60;" (assignment_expression "ppuVar6 = local_60" identifier = identifier) ;) })) (if_statement "if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }" if (parenthesized_expression "(((uint)param_1[0x15] & 2) != 0)" ( (binary_expression "((uint)param_1[0x15] & 2) != 0" (parenthesized_expression "((uint)param_1[0x15] & 2)" ( (binary_expression "(uint)param_1[0x15] & 2" (cast_expression "(uint)param_1[0x15]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[0x15]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }" { (expression_statement "FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);" (call_expression "FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c)" identifier (argument_list "("../../gold/output.h",0xe48,"set_name",&local_2c)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_name"" " string_content ") , (pointer_expression "&local_2c" & identifier) ))) ;) })) (expression_statement "bVar23 = *(byte *)(param_1 + 7);" (assignment_expression "bVar23 = *(byte *)(param_1 + 7)" identifier = (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) ))))) ;) (if_statement "if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }" if (parenthesized_expression "((bVar23 & 2) != 0)" ( (binary_expression "(bVar23 & 2) != 0" (parenthesized_expression "(bVar23 & 2)" ( (binary_expression "bVar23 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }" { (expression_statement "FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);" (call_expression "FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6)" identifier (argument_list "("../../gold/output.h",0xe49,"set_name",ppuVar6)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_name"" " string_content ") , identifier ))) ;) })) (expression_statement "param_1[8] = param_1[0x3c];" (assignment_expression "param_1[8] = param_1[0x3c]" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (subscript_expression "param_1[0x3c]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x16] = puVar8;" (assignment_expression "param_1[0x16] = puVar8" (subscript_expression "param_1[0x16]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x15] = puVar15;" (assignment_expression "param_1[0x15] = puVar15" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "puVar15 = local_50;" (assignment_expression "puVar15 = local_50" identifier = identifier) ;) (if_statement "if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }" if (parenthesized_expression "((bVar23 & 8) == 0)" ( (binary_expression "(bVar23 & 8) == 0" (parenthesized_expression "(bVar23 & 8)" ( (binary_expression "bVar23 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }" { (expression_statement "param_1[3] = local_50;" (assignment_expression "param_1[3] = local_50" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = (undefined *)0x0;" (assignment_expression "param_1[4] = (undefined *)0x0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(byte *)(param_1 + 7) = bVar23 | 2;" (assignment_expression "*(byte *)(param_1 + 7) = bVar23 | 2" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = (binary_expression "bVar23 | 2" identifier | number_literal)) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0019ec27;" goto statement_identifier ;) })) (if_statement "if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }" if (parenthesized_expression "(param_1[0x3b] != (undefined *)0x0)" ( (binary_expression "param_1[0x3b] != (undefined *)0x0" (subscript_expression "param_1[0x3b]" identifier [ number_literal ]) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_001e6d50(param_1[0x3b]);\n    }" { (expression_statement "FUN_001e6d50(param_1[0x3b]);" (call_expression "FUN_001e6d50(param_1[0x3b])" identifier (argument_list "(param_1[0x3b])" ( (subscript_expression "param_1[0x3b]" identifier [ number_literal ]) ))) ;) })) (expression_statement "param_1[0x3b] = (undefined *)0x0;" (assignment_expression "param_1[0x3b] = (undefined *)0x0" (subscript_expression "param_1[0x3b]" identifier [ number_literal ]) = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }" else (compound_statement "{\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }" { (expression_statement "iVar14 = 10;" (assignment_expression "iVar14 = 10" identifier = number_literal) ;) (expression_statement "pbVar16 = pbVar17;" (assignment_expression "pbVar16 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar18 = (byte *)"zlib-gabi";" (assignment_expression "pbVar18 = (byte *)"zlib-gabi"" identifier = (cast_expression "(byte *)"zlib-gabi"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""zlib-gabi"" " string_content "))) ;) (do_statement "do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);" do (compound_statement "{\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    }" { (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar16 < *pbVar18;" (assignment_expression "bVar21 = *pbVar16 < *pbVar18" identifier = (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar16 == *pbVar18;" (assignment_expression "bVar20 = *pbVar16 == *pbVar18" identifier = (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar21 && !bVar20) == bVar21;" (assignment_expression "bVar20 = (!bVar21 && !bVar20) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" ( (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }" if (parenthesized_expression "(bVar20)" ( identifier )) (compound_statement "{\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }" { (labeled_statement "LAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }" statement_identifier : (if_statement "if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }" if (parenthesized_expression "(iVar4 == 0x20)" ( (binary_expression "iVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }" { (expression_statement "iVar19 = 0xc;" (assignment_expression "iVar19 = 0xc" identifier = number_literal) ;) (expression_statement "iVar14 = 2;" (assignment_expression "iVar14 = 2" identifier = number_literal) ;) }) (else_clause "else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }" else (compound_statement "{\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }" { (if_statement "if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }" if (parenthesized_expression "(iVar4 != 0x40)" ( (binary_expression "iVar4 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }" { (expression_statement "FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);" (call_expression "FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT)" identifier (argument_list "("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT)" ( (string_literal ""../../gold/compressed_output.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") , (pointer_expression "&__DT_PLTGOT" & identifier) ))) ;) })) (expression_statement "iVar19 = 0x18;" (assignment_expression "iVar19 = 0x18" identifier = number_literal) ;) (expression_statement "iVar14 = 2;" (assignment_expression "iVar14 = 2" identifier = number_literal) ;) })))) (goto_statement "goto LAB_0019e72b;" goto statement_identifier ;) })) (expression_statement "iVar14 = 5;" (assignment_expression "iVar14 = 5" identifier = number_literal) ;) (expression_statement "pbVar16 = &DAT_002806eb;" (assignment_expression "pbVar16 = &DAT_002806eb" identifier = (pointer_expression "&DAT_002806eb" & identifier)) ;) (do_statement "do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);" do (compound_statement "{\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    }" { (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar17 < *pbVar16;" (assignment_expression "bVar22 = *pbVar17 < *pbVar16" identifier = (binary_expression "*pbVar17 < *pbVar16" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar20 = *pbVar17 == *pbVar16;" (assignment_expression "bVar20 = *pbVar17 == *pbVar16" identifier = (binary_expression "*pbVar17 == *pbVar16" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;" if (parenthesized_expression "((!bVar22 && !bVar20) == bVar22)" ( (binary_expression "(!bVar22 && !bVar20) == bVar22" (parenthesized_expression "(!bVar22 && !bVar20)" ( (binary_expression "!bVar22 && !bVar20" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0019e70c;" goto statement_identifier ;)) }))) (expression_statement "uVar11 = gettext("not compressing section data: zlib error");" (assignment_expression "uVar11 = gettext("not compressing section data: zlib error")" identifier = (call_expression "gettext("not compressing section data: zlib error")" identifier (argument_list "("not compressing section data: zlib error")" ( (string_literal ""not compressing section data: zlib error"" " string_content ") )))) ;) (expression_statement "FUN_000654e0(uVar11);" (call_expression "FUN_000654e0(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (if_statement "if (param_1[0x3b] != (undefined *)0x0) {\n                    \n    FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);\n  }" if (parenthesized_expression "(param_1[0x3b] != (undefined *)0x0)" ( (binary_expression "param_1[0x3b] != (undefined *)0x0" (subscript_expression "param_1[0x3b]" identifier [ number_literal ]) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);\n  }" { (expression_statement "FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);" (call_expression "FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1)" identifier (argument_list "("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1)" ( (string_literal ""../../gold/compressed_output.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") , identifier ))) ;) })) (expression_statement "bVar23 = *(byte *)(param_1 + 7);" (assignment_expression "bVar23 = *(byte *)(param_1 + 7)" identifier = (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) ))))) ;) (expression_statement "puVar15 = extraout_ECX;" (assignment_expression "puVar15 = extraout_ECX" identifier = identifier) ;) (if_statement "if (((bVar23 & 2) == 0) && ((bVar23 & 8) == 0)) {\n    param_1[3] = puVar2;\n    *(byte *)(param_1 + 7) = bVar23 | 2;\n    param_1[4] = puVar3;\n    return;\n  }" if (parenthesized_expression "(((bVar23 & 2) == 0) && ((bVar23 & 8) == 0))" ( (binary_expression "((bVar23 & 2) == 0) && ((bVar23 & 8) == 0)" (parenthesized_expression "((bVar23 & 2) == 0)" ( (binary_expression "(bVar23 & 2) == 0" (parenthesized_expression "(bVar23 & 2)" ( (binary_expression "bVar23 & 2" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((bVar23 & 8) == 0)" ( (binary_expression "(bVar23 & 8) == 0" (parenthesized_expression "(bVar23 & 8)" ( (binary_expression "bVar23 & 8" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    param_1[3] = puVar2;\n    *(byte *)(param_1 + 7) = bVar23 | 2;\n    param_1[4] = puVar3;\n    return;\n  }" { (expression_statement "param_1[3] = puVar2;" (assignment_expression "param_1[3] = puVar2" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(param_1 + 7) = bVar23 | 2;" (assignment_expression "*(byte *)(param_1 + 7) = bVar23 | 2" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = (binary_expression "bVar23 | 2" identifier | number_literal)) ;) (expression_statement "param_1[4] = puVar3;" (assignment_expression "param_1[4] = puVar3" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0019ec27:\n                    \n  FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15);" statement_identifier : (expression_statement "FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15);" (call_expression "FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15)" identifier (argument_list "("../../gold/output.h",0x218,"set_data_size",puVar15)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_data_size"" " string_content ") , identifier ))) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * IDENT))) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / LIT)) + LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression 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) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (pointer_expression & IDENT) , IDENT , IDENT , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) * (char_literal ' escape_sequence ')) + (char_literal ' escape_sequence ')) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) << LIT)) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (pointer_expression * IDENT))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ]))) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (return_statement return ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })))
(function_definition "void FUN_0019e650(undefined **param_1)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  undefined **ppuVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  size_t sVar12;\n  undefined4 *puVar13;\n  undefined ***__dest;\n  int iVar14;\n  undefined *extraout_ECX;\n  undefined *puVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int iVar19;\n  bool bVar20;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  undefined8 uVar24;\n  uint local_68;\n  undefined **local_60;\n  undefined *local_50;\n  undefined2 *local_4c;\n  undefined4 local_48;\n  undefined2 local_44;\n  undefined1 local_42;\n  undefined ***local_34;\n  undefined *local_30;\n  undefined **local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar23 = 0;\n  ppuVar6 = &__DT_PLTGOT;\n  puVar2 = param_1[3];\n  uVar7 = (uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18;\n  puVar3 = param_1[4];\n  puVar15 = param_1[0x23];\n  if (puVar15 == (undefined *)0x0) {\n                    \n    FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }\n  FUN_000ef2d0(param_1);\n  bVar20 = false;\n  bVar22 = *(int *)(DAT_0038f378 + 0xc) == 0;\n  if (bVar22) goto LAB_0019ec43;\n  iVar14 = 9;\n  iVar4 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);\n  pbVar17 = *(byte **)(param_1[0x3a] + 0x99c);\n  pbVar16 = pbVar17;\n  pbVar18 = &DAT_002806f0;\n  do {\n    if (iVar14 == 0) break;\n    iVar14 = iVar14 + -1;\n    bVar20 = *pbVar16 < *pbVar18;\n    bVar22 = *pbVar16 == *pbVar18;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar21 = false;\n  bVar20 = (!bVar20 && !bVar22) == bVar20;\n  if (bVar20) {\n    iVar19 = 0xc;\n    iVar14 = 1;\nLAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;\n    puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);\n    param_1[0x3b] = puVar8;\n    if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }\n    iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');\n    if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }\n    param_1[0x3b] = (undefined *)0x0;\n  }\n  else {\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }\n  uVar11 = gettext("not compressing section data: zlib error");\n  FUN_000654e0(uVar11);\n  if (param_1[0x3b] != (undefined *)0x0) {\n                    \n    FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);\n  }\n  bVar23 = *(byte *)(param_1 + 7);\n  puVar15 = extraout_ECX;\n  if (((bVar23 & 2) == 0) && ((bVar23 & 8) == 0)) {\n    param_1[3] = puVar2;\n    *(byte *)(param_1 + 7) = bVar23 | 2;\n    param_1[4] = puVar3;\n    return;\n  }\nLAB_0019ec27:\n                    \n  FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15);\n}" (primitive_type "void") (function_declarator "FUN_0019e650(undefined **param_1)" (identifier "FUN_0019e650") (parameter_list "(undefined **param_1)" (( "(") (parameter_declaration "undefined **param_1" (type_identifier "undefined") (pointer_declarator "**param_1" (* "*") (pointer_declarator "*param_1" (* "*") (identifier "param_1")))) () ")"))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  undefined **ppuVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  size_t sVar12;\n  undefined4 *puVar13;\n  undefined ***__dest;\n  int iVar14;\n  undefined *extraout_ECX;\n  undefined *puVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int iVar19;\n  bool bVar20;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  undefined8 uVar24;\n  uint local_68;\n  undefined **local_60;\n  undefined *local_50;\n  undefined2 *local_4c;\n  undefined4 local_48;\n  undefined2 local_44;\n  undefined1 local_42;\n  undefined ***local_34;\n  undefined *local_30;\n  undefined **local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar23 = 0;\n  ppuVar6 = &__DT_PLTGOT;\n  puVar2 = param_1[3];\n  uVar7 = (uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18;\n  puVar3 = param_1[4];\n  puVar15 = param_1[0x23];\n  if (puVar15 == (undefined *)0x0) {\n                    \n    FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }\n  FUN_000ef2d0(param_1);\n  bVar20 = false;\n  bVar22 = *(int *)(DAT_0038f378 + 0xc) == 0;\n  if (bVar22) goto LAB_0019ec43;\n  iVar14 = 9;\n  iVar4 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);\n  pbVar17 = *(byte **)(param_1[0x3a] + 0x99c);\n  pbVar16 = pbVar17;\n  pbVar18 = &DAT_002806f0;\n  do {\n    if (iVar14 == 0) break;\n    iVar14 = iVar14 + -1;\n    bVar20 = *pbVar16 < *pbVar18;\n    bVar22 = *pbVar16 == *pbVar18;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar21 = false;\n  bVar20 = (!bVar20 && !bVar22) == bVar20;\n  if (bVar20) {\n    iVar19 = 0xc;\n    iVar14 = 1;\nLAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;\n    puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);\n    param_1[0x3b] = puVar8;\n    if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }\n    iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');\n    if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }\n    param_1[0x3b] = (undefined *)0x0;\n  }\n  else {\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }\n  uVar11 = gettext("not compressing section data: zlib error");\n  FUN_000654e0(uVar11);\n  if (param_1[0x3b] != (undefined *)0x0) {\n                    \n    FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);\n  }\n  bVar23 = *(byte *)(param_1 + 7);\n  puVar15 = extraout_ECX;\n  if (((bVar23 & 2) == 0) && ((bVar23 & 8) == 0)) {\n    param_1[3] = puVar2;\n    *(byte *)(param_1 + 7) = bVar23 | 2;\n    param_1[4] = puVar3;\n    return;\n  }\nLAB_0019ec27:\n                    \n  FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15);\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined **ppuVar5;" (type_identifier "undefined") (pointer_declarator "**ppuVar5" (* "*") (pointer_declarator "*ppuVar5" (* "*") (identifier "ppuVar5"))) (; ";")) (declaration "undefined **ppuVar6;" (type_identifier "undefined") (pointer_declarator "**ppuVar6" (* "*") (pointer_declarator "*ppuVar6" (* "*") (identifier "ppuVar6"))) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "size_t sVar12;" (primitive_type "size_t") (identifier "sVar12") (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined ***__dest;" (type_identifier "undefined") (pointer_declarator "***__dest" (* "*") (pointer_declarator "**__dest" (* "*") (pointer_declarator "*__dest" (* "*") (identifier "__dest")))) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "undefined *extraout_ECX;" (type_identifier "undefined") (pointer_declarator "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (; ";")) (declaration "undefined *puVar15;" (type_identifier "undefined") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "bool bVar20;" (primitive_type "bool") (identifier "bVar20") (; ";")) (declaration "bool bVar21;" (primitive_type "bool") (identifier "bVar21") (; ";")) (declaration "bool bVar22;" (primitive_type "bool") (identifier "bVar22") (; ";")) (declaration "byte bVar23;" (type_identifier "byte") (identifier "bVar23") (; ";")) (declaration "undefined8 uVar24;" (type_identifier "undefined8") (identifier "uVar24") (; ";")) (declaration "uint local_68;" (type_identifier "uint") (identifier "local_68") (; ";")) (declaration "undefined **local_60;" (type_identifier "undefined") (pointer_declarator "**local_60" (* "*") (pointer_declarator "*local_60" (* "*") (identifier "local_60"))) (; ";")) (declaration "undefined *local_50;" (type_identifier "undefined") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "undefined2 *local_4c;" (type_identifier "undefined2") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined2 local_44;" (type_identifier "undefined2") (identifier "local_44") (; ";")) (declaration "undefined1 local_42;" (type_identifier "undefined1") (identifier "local_42") (; ";")) (declaration "undefined ***local_34;" (type_identifier "undefined") (pointer_declarator "***local_34" (* "*") (pointer_declarator "**local_34" (* "*") (pointer_declarator "*local_34" (* "*") (identifier "local_34")))) (; ";")) (declaration "undefined *local_30;" (type_identifier "undefined") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "undefined **local_2c;" (type_identifier "undefined") (pointer_declarator "**local_2c" (* "*") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c"))) (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" (identifier "bVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "ppuVar6 = &__DT_PLTGOT;" (assignment_expression "ppuVar6 = &__DT_PLTGOT" (identifier "ppuVar6") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "puVar2 = param_1[3];" (assignment_expression "puVar2 = param_1[3]" (identifier "puVar2") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar7 = (uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18;" (assignment_expression "uVar7 = (uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18" (identifier "uVar7") (= "=") (binary_expression "(uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |\n          (int)puVar2 << 0x18" (binary_expression "(uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8" (binary_expression "(uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8" (binary_expression "(uint)puVar2 >> 0x18" (cast_expression "(uint)puVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar2")) (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "((uint)puVar2 & 0xff0000) >> 8" (parenthesized_expression "((uint)puVar2 & 0xff0000)" (( "(") (binary_expression "(uint)puVar2 & 0xff0000" (cast_expression "(uint)puVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar2")) (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "((uint)puVar2 & 0xff00) << 8" (parenthesized_expression "((uint)puVar2 & 0xff00)" (( "(") (binary_expression "(uint)puVar2 & 0xff00" (cast_expression "(uint)puVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar2")) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(int)puVar2 << 0x18" (cast_expression "(int)puVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar2")) (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "puVar3 = param_1[4];" (assignment_expression "puVar3 = param_1[4]" (identifier "puVar3") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar15 = param_1[0x23];" (assignment_expression "puVar15 = param_1[0x23]" (identifier "puVar15") (= "=") (subscript_expression "param_1[0x23]" (identifier "param_1") ([ "[") (number_literal "0x23") (] "]"))) (; ";")) (if_statement "if (puVar15 == (undefined *)0x0) {\n                    \n    FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }" (if "if") (parenthesized_expression "(puVar15 == (undefined *)0x0)" (( "(") (binary_expression "puVar15 == (undefined *)0x0" (identifier "puVar15") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");\n  }" ({ "{") (expression_statement "FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");" (call_expression "FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer")" (identifier "FUN_00069d00") (argument_list "("../../gold/output.h",0xe34,"postprocessing_buffer")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xe34") (, ",") (string_literal ""postprocessing_buffer"" (" """) (string_content "postprocessing_buffer") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000ef2d0(param_1);" (call_expression "FUN_000ef2d0(param_1)" (identifier "FUN_000ef2d0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" (identifier "bVar20") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = *(int *)(DAT_0038f378 + 0xc) == 0;" (assignment_expression "bVar22 = *(int *)(DAT_0038f378 + 0xc) == 0" (identifier "bVar22") (= "=") (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 0xc)" (( "(") (binary_expression "DAT_0038f378 + 0xc" (identifier "DAT_0038f378") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar22) goto LAB_0019ec43;" (if "if") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (goto_statement "goto LAB_0019ec43;" (goto "goto") (statement_identifier "LAB_0019ec43") (; ";"))) (expression_statement "iVar14 = 9;" (assignment_expression "iVar14 = 9" (identifier "iVar14") (= "=") (number_literal "9")) (; ";")) (expression_statement "iVar4 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);" (assignment_expression "iVar4 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" (identifier "iVar4") (= "=") (pointer_expression "**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" (* "*") (pointer_expression "*(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" (* "*") (cast_expression "(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 0xc)" (( "(") (binary_expression "DAT_0038f378 + 0xc" (identifier "DAT_0038f378") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "pbVar17 = *(byte **)(param_1[0x3a] + 0x99c);" (assignment_expression "pbVar17 = *(byte **)(param_1[0x3a] + 0x99c)" (identifier "pbVar17") (= "=") (pointer_expression "*(byte **)(param_1[0x3a] + 0x99c)" (* "*") (cast_expression "(byte **)(param_1[0x3a] + 0x99c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[0x3a] + 0x99c)" (( "(") (binary_expression "param_1[0x3a] + 0x99c" (subscript_expression "param_1[0x3a]" (identifier "param_1") ([ "[") (number_literal "0x3a") (] "]")) (+ "+") (number_literal "0x99c")) () ")"))))) (; ";")) (expression_statement "pbVar16 = pbVar17;" (assignment_expression "pbVar16 = pbVar17" (identifier "pbVar16") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "pbVar18 = &DAT_002806f0;" (assignment_expression "pbVar18 = &DAT_002806f0" (identifier "pbVar18") (= "=") (pointer_expression "&DAT_002806f0" (& "&") (identifier "DAT_002806f0"))) (; ";")) (do_statement "do {\n    if (iVar14 == 0) break;\n    iVar14 = iVar14 + -1;\n    bVar20 = *pbVar16 < *pbVar18;\n    bVar22 = *pbVar16 == *pbVar18;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);" (do "do") (compound_statement "{\n    if (iVar14 == 0) break;\n    iVar14 = iVar14 + -1;\n    bVar20 = *pbVar16 < *pbVar18;\n    bVar22 = *pbVar16 == *pbVar18;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n  }" ({ "{") (if_statement "if (iVar14 == 0) break;" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" (identifier "iVar14") (= "=") (binary_expression "iVar14 + -1" (identifier "iVar14") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar20 = *pbVar16 < *pbVar18;" (assignment_expression "bVar20 = *pbVar16 < *pbVar18" (identifier "bVar20") (= "=") (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar22 = *pbVar16 == *pbVar18;" (assignment_expression "bVar22 = *pbVar16 == *pbVar18" (identifier "bVar22") (= "=") (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar23 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar23 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" (identifier "bVar21") (= "=") (false "false")) (; ";")) (expression_statement "bVar20 = (!bVar20 && !bVar22) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar22) == bVar20" (identifier "bVar20") (= "=") (binary_expression "(!bVar20 && !bVar22) == bVar20" (parenthesized_expression "(!bVar20 && !bVar22)" (( "(") (binary_expression "!bVar20 && !bVar22" (unary_expression "!bVar20" (! "!") (identifier "bVar20")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (== "==") (identifier "bVar20"))) (; ";")) (if_statement "if (bVar20) {\n    iVar19 = 0xc;\n    iVar14 = 1;\nLAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;\n    puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);\n    param_1[0x3b] = puVar8;\n    if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }\n    iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');\n    if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }\n    param_1[0x3b] = (undefined *)0x0;\n  }\n  else {\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }" (if "if") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (compound_statement "{\n    iVar19 = 0xc;\n    iVar14 = 1;\nLAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;\n    puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);\n    param_1[0x3b] = puVar8;\n    if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }\n    iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');\n    if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }\n    if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }\n    param_1[0x3b] = (undefined *)0x0;\n  }" ({ "{") (expression_statement "iVar19 = 0xc;" (assignment_expression "iVar19 = 0xc" (identifier "iVar19") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" (identifier "iVar14") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0019e72b:\n    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;" (statement_identifier "LAB_0019e72b") (: ":") (expression_statement "local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;" (assignment_expression "local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80" (identifier "local_50") (= "=") (binary_expression "puVar2 + (uint)puVar2 / 1000 + 0x80" (binary_expression "puVar2 + (uint)puVar2 / 1000" (identifier "puVar2") (+ "+") (binary_expression "(uint)puVar2 / 1000" (cast_expression "(uint)puVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar2")) (/ "/") (number_literal "1000"))) (+ "+") (number_literal "0x80"))) (; ";"))) (expression_statement "puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);" (assignment_expression "puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19)" (identifier "puVar8") (= "=") (cast_expression "(undefined *)FUN_001e5180(local_50 + iVar19)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5180(local_50 + iVar19)" (identifier "FUN_001e5180") (argument_list "(local_50 + iVar19)" (( "(") (binary_expression "local_50 + iVar19" (identifier "local_50") (+ "+") (identifier "iVar19")) () ")"))))) (; ";")) (expression_statement "param_1[0x3b] = puVar8;" (assignment_expression "param_1[0x3b] = puVar8" (subscript_expression "param_1[0x3b]" (identifier "param_1") ([ "[") (number_literal "0x3b") (] "]")) (= "=") (identifier "puVar8")) (; ";")) (if_statement "if (*(int *)(DAT_0038f378 + 8) == 0) {\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }" (if "if") (parenthesized_expression "(*(int *)(DAT_0038f378 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 8) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 8)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 8)" (( "(") (binary_expression "DAT_0038f378 + 8" (identifier "DAT_0038f378") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);\n    }" ({ "{") (expression_statement "FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378)" (identifier "FUN_00069d00") (argument_list "("../../gold/parameters.h",0x5c,"options",&DAT_0038f378)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (pointer_expression "&DAT_0038f378" (& "&") (identifier "DAT_0038f378")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');" (assignment_expression "iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01')" (identifier "iVar9") (= "=") (call_expression "compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01')" (identifier "compress2") (argument_list "(puVar8 + iVar19,&local_50,puVar15,puVar2,\n                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01')" (( "(") (binary_expression "puVar8 + iVar19" (identifier "puVar8") (+ "+") (identifier "iVar19")) (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) (, ",") (identifier "puVar15") (, ",") (identifier "puVar2") (, ",") (binary_expression "(0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01'" (binary_expression "(0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b'" (parenthesized_expression "(0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830))" (( "(") (binary_expression "0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)" (number_literal "0") (< "<") (pointer_expression "*(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)" (* "*") (cast_expression "(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0038f378 + 8) + 0x2830)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 8) + 0x2830" (pointer_expression "*(int *)(DAT_0038f378 + 8)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 8)" (( "(") (binary_expression "DAT_0038f378 + 8" (identifier "DAT_0038f378") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2830")) () ")"))))) () ")")) (* "*") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) (+ "+") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_50 = local_50 + iVar19;\n      puVar15 = param_1[0x15];\n      puVar8 = param_1[0x16];\n      if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }\n      puVar15 = local_50;\n      if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }\n      goto LAB_0019ec27;\n    }" ({ "{") (expression_statement "local_50 = local_50 + iVar19;" (assignment_expression "local_50 = local_50 + iVar19" (identifier "local_50") (= "=") (binary_expression "local_50 + iVar19" (identifier "local_50") (+ "+") (identifier "iVar19"))) (; ";")) (expression_statement "puVar15 = param_1[0x15];" (assignment_expression "puVar15 = param_1[0x15]" (identifier "puVar15") (= "=") (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (expression_statement "puVar8 = param_1[0x16];" (assignment_expression "puVar8 = param_1[0x16]" (identifier "puVar8") (= "=") (subscript_expression "param_1[0x16]" (identifier "param_1") ([ "[") (number_literal "0x16") (] "]"))) (; ";")) (if_statement "if (iVar14 == 2) {\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }\n      else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }" (if "if") (parenthesized_expression "(iVar14 == 2)" (( "(") (binary_expression "iVar14 == 2" (identifier "iVar14") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        ppuVar6 = (undefined **)0x2;\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }\n        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);\n        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }\n        local_68 = (uint)((ulonglong)uVar24 >> 0x20);\n        uVar10 = (uint)uVar24;\n        if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);\n        param_1[0x16] = puVar8;\n        puVar15 = local_50;\n        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;\n      }" ({ "{") (expression_statement "ppuVar6 = (undefined **)0x2;" (assignment_expression "ppuVar6 = (undefined **)0x2" (identifier "ppuVar6") (= "=") (cast_expression "(undefined **)0x2" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x2"))) (; ";")) (if_statement "if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }" (if "if") (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 0xc)" (( "(") (binary_expression "DAT_0038f378 + 0xc" (identifier "DAT_0038f378") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);\n        }" ({ "{") (labeled_statement "LAB_0019ec43:\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);" (statement_identifier "LAB_0019ec43") (: ":") (expression_statement "FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6)" (identifier "FUN_00069d00") (argument_list "("../../gold/parameters.h",0x69,"target",ppuVar6)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) (, ",") (identifier "ppuVar6") () ")"))) (; ";"))) (} "}"))) (expression_statement "cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);" (assignment_expression "cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" (* "*") (cast_expression "(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4)" (( "(") (binary_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4" (pointer_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" (* "*") (cast_expression "(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 0xc)" (( "(") (binary_expression "DAT_0038f378 + 0xc" (identifier "DAT_0038f378") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }\n        else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }" (if "if") (parenthesized_expression "(*(code **)(*param_1 + 0xc) == FUN_000a4920)" (( "(") (binary_expression "*(code **)(*param_1 + 0xc) == FUN_000a4920" (pointer_expression "*(code **)(*param_1 + 0xc)" (* "*") (cast_expression "(code **)(*param_1 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0xc)" (( "(") (binary_expression "*param_1 + 0xc" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0xc")) () ")")))) (== "==") (identifier "FUN_000a4920")) () ")")) (compound_statement "{\n          uVar24 = *(undefined8 *)(param_1 + 9);\n        }" ({ "{") (expression_statement "uVar24 = *(undefined8 *)(param_1 + 9);" (assignment_expression "uVar24 = *(undefined8 *)(param_1 + 9)" (identifier "uVar24") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 9)" (* "*") (cast_expression "(undefined8 *)(param_1 + 9)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 9)" (( "(") (binary_expression "param_1 + 9" (identifier "param_1") (+ "+") (number_literal "9")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }" (else "else") (compound_statement "{\n          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);\n        }" ({ "{") (expression_statement "uVar24 = (**(code **)(*param_1 + 0xc))(param_1);" (assignment_expression "uVar24 = (**(code **)(*param_1 + 0xc))(param_1)" (identifier "uVar24") (= "=") (call_expression "(**(code **)(*param_1 + 0xc))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 0xc))" (( "(") (pointer_expression "**(code **)(*param_1 + 0xc)" (* "*") (pointer_expression "*(code **)(*param_1 + 0xc)" (* "*") (cast_expression "(code **)(*param_1 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0xc)" (( "(") (binary_expression "*param_1 + 0xc" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (} "}")))) (expression_statement "local_68 = (uint)((ulonglong)uVar24 >> 0x20);" (assignment_expression "local_68 = (uint)((ulonglong)uVar24 >> 0x20)" (identifier "local_68") (= "=") (call_expression "(uint)((ulonglong)uVar24 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar24 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar24 >> 0x20" (cast_expression "(ulonglong)uVar24" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar24")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar10 = (uint)uVar24;" (assignment_expression "uVar10 = (uint)uVar24" (identifier "uVar10") (= "=") (cast_expression "(uint)uVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar24"))) (; ";")) (if_statement "if (iVar4 == 0x20) {\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }\n        else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }" (if "if") (parenthesized_expression "(iVar4 == 0x20)" (( "(") (binary_expression "iVar4 == 0x20" (identifier "iVar4") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }\n        }" ({ "{") (expression_statement "puVar13 = (undefined4 *)param_1[0x3b];" (assignment_expression "puVar13 = (undefined4 *)param_1[0x3b]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)param_1[0x3b]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x3b]" (identifier "param_1") ([ "[") (number_literal "0x3b") (] "]")))) (; ";")) (if_statement "if (cVar1 == '\0') {\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }\n          else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            *puVar13 = 1;\n            puVar13[2] = uVar10;\n            puVar13[1] = puVar2;\n          }" ({ "{") (expression_statement "*puVar13 = 1;" (assignment_expression "*puVar13 = 1" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar13[2] = uVar10;" (assignment_expression "puVar13[2] = uVar10" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar13[1] = puVar2;" (assignment_expression "puVar13[1] = puVar2" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar2")) (; ";")) (} "}")) (else_clause "else {\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }" (else "else") (compound_statement "{\n            *puVar13 = 0x1000000;\n            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;\n            puVar13[1] = uVar7;\n          }" ({ "{") (expression_statement "*puVar13 = 0x1000000;" (assignment_expression "*puVar13 = 0x1000000" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (number_literal "0x1000000")) (; ";")) (expression_statement "puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18;" (assignment_expression "puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                         uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" (identifier "uVar10") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" (( "(") (binary_expression "uVar10 & 0xff0000" (identifier "uVar10") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" (( "(") (binary_expression "uVar10 & 0xff00" (identifier "uVar10") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar10 << 0x18" (identifier "uVar10") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "puVar13[1] = uVar7;" (assignment_expression "puVar13[1] = uVar7" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }" (else "else") (compound_statement "{\n          if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }\n          puVar13 = (undefined4 *)param_1[0x3b];\n          if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }\n          puVar13[5] = local_68;\n          puVar13[1] = 0;\n        }" ({ "{") (if_statement "if (iVar4 != 0x40) {\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }" (if "if") (parenthesized_expression "(iVar4 != 0x40)" (( "(") (binary_expression "iVar4 != 0x40" (identifier "iVar4") (!= "!=") (number_literal "0x40")) () ")")) (compound_statement "{\n                    \n            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);\n          }" ({ "{") (expression_statement "FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);" (call_expression "FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10)" (identifier "FUN_00069d00") (argument_list "("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10)" (( "(") (string_literal ""../../gold/compressed_output.cc"" (" """) (string_content "../../gold/compressed_output.cc") (" """)) (, ",") (number_literal "0x12f") (, ",") (string_literal ""set_final_data_size"" (" """) (string_content "set_final_data_size") (" """)) (, ",") (identifier "uVar10") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar13 = (undefined4 *)param_1[0x3b];" (assignment_expression "puVar13 = (undefined4 *)param_1[0x3b]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)param_1[0x3b]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x3b]" (identifier "param_1") ([ "[") (number_literal "0x3b") (] "]")))) (; ";")) (if_statement "if (cVar1 == '\0') {\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }\n          else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            puVar13[4] = uVar10;\n            *puVar13 = 1;\n            puVar13[2] = puVar2;\n            puVar13[3] = puVar3;\n          }" ({ "{") (expression_statement "puVar13[4] = uVar10;" (assignment_expression "puVar13[4] = uVar10" (subscript_expression "puVar13[4]" (identifier "puVar13") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "*puVar13 = 1;" (assignment_expression "*puVar13 = 1" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar13[2] = puVar2;" (assignment_expression "puVar13[2] = puVar2" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "puVar13[3] = puVar3;" (assignment_expression "puVar13[3] = puVar3" (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "puVar3")) (; ";")) (} "}")) (else_clause "else {\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }" (else "else") (compound_statement "{\n            *puVar13 = 0;\n            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;\n            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;\n            puVar13[3] = uVar7;\n            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;\n          }" ({ "{") (expression_statement "*puVar13 = 0;" (assignment_expression "*puVar13 = 0" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;" (assignment_expression "puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18" (binary_expression "(uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |\n                         ((uint)puVar3 & 0xff00) << 8" (binary_expression "(uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8" (binary_expression "(uint)puVar3 >> 0x18" (cast_expression "(uint)puVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar3")) (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "((uint)puVar3 & 0xff0000) >> 8" (parenthesized_expression "((uint)puVar3 & 0xff0000)" (( "(") (binary_expression "(uint)puVar3 & 0xff0000" (cast_expression "(uint)puVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar3")) (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "((uint)puVar3 & 0xff00) << 8" (parenthesized_expression "((uint)puVar3 & 0xff00)" (( "(") (binary_expression "(uint)puVar3 & 0xff00" (cast_expression "(uint)puVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar3")) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(int)puVar3 << 0x18" (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3")) (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18;" (assignment_expression "puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18" (subscript_expression "puVar13[4]" (identifier "puVar13") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |\n                         local_68 << 0x18" (binary_expression "local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8" (binary_expression "local_68 >> 0x18 | (local_68 & 0xff0000) >> 8" (binary_expression "local_68 >> 0x18" (identifier "local_68") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(local_68 & 0xff0000) >> 8" (parenthesized_expression "(local_68 & 0xff0000)" (( "(") (binary_expression "local_68 & 0xff0000" (identifier "local_68") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(local_68 & 0xff00) << 8" (parenthesized_expression "(local_68 & 0xff00)" (( "(") (binary_expression "local_68 & 0xff00" (identifier "local_68") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "local_68 << 0x18" (identifier "local_68") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "puVar13[3] = uVar7;" (assignment_expression "puVar13[3] = uVar7" (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18;" (assignment_expression "local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18" (identifier "local_68") (= "=") (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |\n                       uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" (identifier "uVar10") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" (( "(") (binary_expression "uVar10 & 0xff0000" (identifier "uVar10") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" (( "(") (binary_expression "uVar10 & 0xff00" (identifier "uVar10") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar10 << 0x18" (identifier "uVar10") (<< "<<") (number_literal "0x18")))) (; ";")) (} "}")))) (expression_statement "puVar13[5] = local_68;" (assignment_expression "puVar13[5] = local_68" (subscript_expression "puVar13[5]" (identifier "puVar13") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_68")) (; ";")) (expression_statement "puVar13[1] = 0;" (assignment_expression "puVar13[1] = 0" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "bVar23 = *(byte *)(param_1 + 7);" (assignment_expression "bVar23 = *(byte *)(param_1 + 7)" (identifier "bVar23") (= "=") (pointer_expression "*(byte *)(param_1 + 7)" (* "*") (cast_expression "(byte *)(param_1 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);" (assignment_expression "param_1[0x15] = (undefined *)((uint)puVar15 | 0x800)" (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]")) (= "=") (cast_expression "(undefined *)((uint)puVar15 | 0x800)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)puVar15 | 0x800)" (( "(") (binary_expression "(uint)puVar15 | 0x800" (cast_expression "(uint)puVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar15")) (| "|") (number_literal "0x800")) () ")")))) (; ";")) (expression_statement "param_1[0x16] = puVar8;" (assignment_expression "param_1[0x16] = puVar8" (subscript_expression "param_1[0x16]" (identifier "param_1") ([ "[") (number_literal "0x16") (] "]")) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "puVar15 = local_50;" (assignment_expression "puVar15 = local_50" (identifier "puVar15") (= "=") (identifier "local_50")) (; ";")) (if_statement "if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;" (if "if") (parenthesized_expression "((bVar23 >> 1 & 1) != 0)" (( "(") (binary_expression "(bVar23 >> 1 & 1) != 0" (parenthesized_expression "(bVar23 >> 1 & 1)" (( "(") (binary_expression "bVar23 >> 1 & 1" (binary_expression "bVar23 >> 1" (identifier "bVar23") (>> ">>") (number_literal "1")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0019ec27;" (goto "goto") (statement_identifier "LAB_0019ec27") (; ";"))) (} "}")) (else_clause "else {\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }" (else "else") (compound_statement "{\n        *(undefined4 *)param_1[0x3b] = 0x42494c5a;\n        puVar2 = param_1[0x3b];\n        puVar2[4] = (char)((uint)puVar3 >> 0x18);\n        puVar2[6] = (char)((uint)puVar3 >> 8);\n        puVar2[5] = (char)((uint)puVar3 >> 0x10);\n        puVar2[7] = (char)puVar3;\n        *(uint *)(puVar2 + 8) = uVar7;\n        puVar2 = param_1[8];\n        local_48 = 2;\n        local_42 = 0;\n        local_44 = 0x7a2e;\n        local_4c = &local_44;\n        sVar12 = strlen(puVar2 + 1);\n                    \n        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);\n        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }\n        local_30 = (undefined *)puVar13[1];\n        *(undefined1 *)(puVar13 + 2) = 0;\n        *puVar13 = puVar13 + 2;\n        puVar13[1] = 0;\n        __dest = (undefined ***)param_1[0x3c];\n        if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }\n        local_60 = &__DT_PLTGOT;\n        local_30 = (undefined *)0x0;\n        *(undefined1 *)local_34 = 0;\n        if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }\n        if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }\n        if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }\n        bVar23 = *(byte *)(param_1 + 7);\n        if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }\n        param_1[8] = param_1[0x3c];\n        param_1[0x16] = puVar8;\n        param_1[0x15] = puVar15;\n      }" ({ "{") (expression_statement "*(undefined4 *)param_1[0x3b] = 0x42494c5a;" (assignment_expression "*(undefined4 *)param_1[0x3b] = 0x42494c5a" (pointer_expression "*(undefined4 *)param_1[0x3b]" (* "*") (cast_expression "(undefined4 *)param_1[0x3b]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x3b]" (identifier "param_1") ([ "[") (number_literal "0x3b") (] "]")))) (= "=") (number_literal "0x42494c5a")) (; ";")) (expression_statement "puVar2 = param_1[0x3b];" (assignment_expression "puVar2 = param_1[0x3b]" (identifier "puVar2") (= "=") (subscript_expression "param_1[0x3b]" (identifier "param_1") ([ "[") (number_literal "0x3b") (] "]"))) (; ";")) (expression_statement "puVar2[4] = (char)((uint)puVar3 >> 0x18);" (assignment_expression "puVar2[4] = (char)((uint)puVar3 >> 0x18)" (subscript_expression "puVar2[4]" (identifier "puVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(char)((uint)puVar3 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)puVar3 >> 0x18)" (( "(") (binary_expression "(uint)puVar3 >> 0x18" (cast_expression "(uint)puVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar3")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar2[6] = (char)((uint)puVar3 >> 8);" (assignment_expression "puVar2[6] = (char)((uint)puVar3 >> 8)" (subscript_expression "puVar2[6]" (identifier "puVar2") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(char)((uint)puVar3 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)puVar3 >> 8)" (( "(") (binary_expression "(uint)puVar3 >> 8" (cast_expression "(uint)puVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar3")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "puVar2[5] = (char)((uint)puVar3 >> 0x10);" (assignment_expression "puVar2[5] = (char)((uint)puVar3 >> 0x10)" (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(char)((uint)puVar3 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)puVar3 >> 0x10)" (( "(") (binary_expression "(uint)puVar3 >> 0x10" (cast_expression "(uint)puVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar3")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "puVar2[7] = (char)puVar3;" (assignment_expression "puVar2[7] = (char)puVar3" (subscript_expression "puVar2[7]" (identifier "puVar2") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(char)puVar3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "puVar3"))) (; ";")) (expression_statement "*(uint *)(puVar2 + 8) = uVar7;" (assignment_expression "*(uint *)(puVar2 + 8) = uVar7" (pointer_expression "*(uint *)(puVar2 + 8)" (* "*") (cast_expression "(uint *)(puVar2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 8)" (( "(") (binary_expression "puVar2 + 8" (identifier "puVar2") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "puVar2 = param_1[8];" (assignment_expression "puVar2 = param_1[8]" (identifier "puVar2") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_48 = 2;" (assignment_expression "local_48 = 2" (identifier "local_48") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_42 = 0;" (assignment_expression "local_42 = 0" (identifier "local_42") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44 = 0x7a2e;" (assignment_expression "local_44 = 0x7a2e" (identifier "local_44") (= "=") (number_literal "0x7a2e")) (; ";")) (expression_statement "local_4c = &local_44;" (assignment_expression "local_4c = &local_44" (identifier "local_4c") (= "=") (pointer_expression "&local_44" (& "&") (identifier "local_44"))) (; ";")) (expression_statement "sVar12 = strlen(puVar2 + 1);" (assignment_expression "sVar12 = strlen(puVar2 + 1)" (identifier "sVar12") (= "=") (call_expression "strlen(puVar2 + 1)" (identifier "strlen") (argument_list "(puVar2 + 1)" (( "(") (binary_expression "puVar2 + 1" (identifier "puVar2") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);" (assignment_expression "puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001f05c0(&local_4c,puVar2 + 1,sVar12)" (identifier "FUN_001f05c0") (argument_list "(&local_4c,puVar2 + 1,sVar12)" (( "(") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")) (, ",") (binary_expression "puVar2 + 1" (identifier "puVar2") (+ "+") (number_literal "1")) (, ",") (identifier "sVar12") () ")"))))) (; ";")) (if_statement "if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }\n        else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }" (if "if") (parenthesized_expression "((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2))" (( "(") (binary_expression "(undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)" (cast_expression "(undefined ***)*puVar13" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (== "==") (cast_expression "(undefined ***)(puVar13 + 2)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar13 + 2)" (( "(") (binary_expression "puVar13 + 2" (identifier "puVar13") (+ "+") (number_literal "2")) () ")")))) () ")")) (compound_statement "{\n          local_2c = (undefined **)puVar13[2];\n          local_28 = puVar13[3];\n          local_24 = puVar13[4];\n          local_20 = puVar13[5];\n          local_34 = &local_2c;\n        }" ({ "{") (expression_statement "local_2c = (undefined **)puVar13[2];" (assignment_expression "local_2c = (undefined **)puVar13[2]" (identifier "local_2c") (= "=") (cast_expression "(undefined **)puVar13[2]" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_28 = puVar13[3];" (assignment_expression "local_28 = puVar13[3]" (identifier "local_28") (= "=") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_24 = puVar13[4];" (assignment_expression "local_24 = puVar13[4]" (identifier "local_24") (= "=") (subscript_expression "puVar13[4]" (identifier "puVar13") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_20 = puVar13[5];" (assignment_expression "local_20 = puVar13[5]" (identifier "local_20") (= "=") (subscript_expression "puVar13[5]" (identifier "puVar13") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" (identifier "local_34") (= "=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) (; ";")) (} "}")) (else_clause "else {\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }" (else "else") (compound_statement "{\n          local_2c = (undefined **)puVar13[2];\n          local_34 = (undefined ***)*puVar13;\n        }" ({ "{") (expression_statement "local_2c = (undefined **)puVar13[2];" (assignment_expression "local_2c = (undefined **)puVar13[2]" (identifier "local_2c") (= "=") (cast_expression "(undefined **)puVar13[2]" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_34 = (undefined ***)*puVar13;" (assignment_expression "local_34 = (undefined ***)*puVar13" (identifier "local_34") (= "=") (cast_expression "(undefined ***)*puVar13" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")))) (; ";")) (} "}")))) (expression_statement "local_30 = (undefined *)puVar13[1];" (assignment_expression "local_30 = (undefined *)puVar13[1]" (identifier "local_30") (= "=") (cast_expression "(undefined *)puVar13[1]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "*(undefined1 *)(puVar13 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar13 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar13 + 2)" (* "*") (cast_expression "(undefined1 *)(puVar13 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 2)" (( "(") (binary_expression "puVar13 + 2" (identifier "puVar13") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar13 = puVar13 + 2;" (assignment_expression "*puVar13 = puVar13 + 2" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (binary_expression "puVar13 + 2" (identifier "puVar13") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar13[1] = 0;" (assignment_expression "puVar13[1] = 0" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "__dest = (undefined ***)param_1[0x3c];" (assignment_expression "__dest = (undefined ***)param_1[0x3c]" (identifier "__dest") (= "=") (cast_expression "(undefined ***)param_1[0x3c]" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "param_1[0x3c]" (identifier "param_1") ([ "[") (number_literal "0x3c") (] "]")))) (; ";")) (if_statement "if (local_34 == &local_2c) {\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }\n        else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(local_34 == &local_2c)" (( "(") (binary_expression "local_34 == &local_2c" (identifier "local_34") (== "==") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) () ")")) (compound_statement "{\n          if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }\n          param_1[0x3d] = local_30;\n          *(undefined1 *)((int)__dest + (int)local_30) = 0;\n          ppuVar6 = param_1;\n        }" ({ "{") (if_statement "if (local_30 != (undefined *)0x0) {\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }" (if "if") (parenthesized_expression "(local_30 != (undefined *)0x0)" (( "(") (binary_expression "local_30 != (undefined *)0x0" (identifier "local_30") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }\n          }" ({ "{") (if_statement "if (local_30 == (undefined *)0x1) {\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }\n            else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }" (if "if") (parenthesized_expression "(local_30 == (undefined *)0x1)" (( "(") (binary_expression "local_30 == (undefined *)0x1" (identifier "local_30") (== "==") (cast_expression "(undefined *)0x1" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n              *(undefined1 *)__dest = local_2c._0_1_;\n              __dest = (undefined ***)param_1[0x3c];\n            }" ({ "{") (expression_statement "*(undefined1 *)__dest = local_2c._0_1_;" (assignment_expression "*(undefined1 *)__dest = local_2c._0_1_" (pointer_expression "*(undefined1 *)__dest" (* "*") (cast_expression "(undefined1 *)__dest" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__dest"))) (= "=") (field_expression "local_2c._0_1_" (identifier "local_2c") (. ".") (field_identifier "_0_1_"))) (; ";")) (expression_statement "__dest = (undefined ***)param_1[0x3c];" (assignment_expression "__dest = (undefined ***)param_1[0x3c]" (identifier "__dest") (= "=") (cast_expression "(undefined ***)param_1[0x3c]" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "param_1[0x3c]" (identifier "param_1") ([ "[") (number_literal "0x3c") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }" (else "else") (compound_statement "{\n              memcpy(__dest,&local_2c,(size_t)local_30);\n              __dest = (undefined ***)param_1[0x3c];\n            }" ({ "{") (expression_statement "memcpy(__dest,&local_2c,(size_t)local_30);" (call_expression "memcpy(__dest,&local_2c,(size_t)local_30)" (identifier "memcpy") (argument_list "(__dest,&local_2c,(size_t)local_30)" (( "(") (identifier "__dest") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (cast_expression "(size_t)local_30" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "local_30")) () ")"))) (; ";")) (expression_statement "__dest = (undefined ***)param_1[0x3c];" (assignment_expression "__dest = (undefined ***)param_1[0x3c]" (identifier "__dest") (= "=") (cast_expression "(undefined ***)param_1[0x3c]" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "param_1[0x3c]" (identifier "param_1") ([ "[") (number_literal "0x3c") (] "]")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "param_1[0x3d] = local_30;" (assignment_expression "param_1[0x3d] = local_30" (subscript_expression "param_1[0x3d]" (identifier "param_1") ([ "[") (number_literal "0x3d") (] "]")) (= "=") (identifier "local_30")) (; ";")) (expression_statement "*(undefined1 *)((int)__dest + (int)local_30) = 0;" (assignment_expression "*(undefined1 *)((int)__dest + (int)local_30) = 0" (pointer_expression "*(undefined1 *)((int)__dest + (int)local_30)" (* "*") (cast_expression "(undefined1 *)((int)__dest + (int)local_30)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__dest + (int)local_30)" (( "(") (binary_expression "(int)__dest + (int)local_30" (cast_expression "(int)__dest" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__dest")) (+ "+") (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "ppuVar6 = param_1;" (assignment_expression "ppuVar6 = param_1" (identifier "ppuVar6") (= "=") (identifier "param_1")) (; ";")) (} "}")) (else_clause "else {\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          ppuVar6 = local_2c;\n          if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }\n        }" ({ "{") (expression_statement "ppuVar6 = local_2c;" (assignment_expression "ppuVar6 = local_2c" (identifier "ppuVar6") (= "=") (identifier "local_2c")) (; ";")) (if_statement "if (__dest == (undefined ***)(param_1 + 0x3e)) {\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }\n          else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }" (if "if") (parenthesized_expression "(__dest == (undefined ***)(param_1 + 0x3e))" (( "(") (binary_expression "__dest == (undefined ***)(param_1 + 0x3e)" (identifier "__dest") (== "==") (cast_expression "(undefined ***)(param_1 + 0x3e)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(param_1 + 0x3e)" (( "(") (binary_expression "param_1 + 0x3e" (identifier "param_1") (+ "+") (number_literal "0x3e")) () ")")))) () ")")) (compound_statement "{\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3d] = local_30;\n            param_1[0x3e] = (undefined *)local_2c;\n            local_34 = &local_2c;\n          }" ({ "{") (expression_statement "param_1[0x3c] = (undefined *)local_34;" (assignment_expression "param_1[0x3c] = (undefined *)local_34" (subscript_expression "param_1[0x3c]" (identifier "param_1") ([ "[") (number_literal "0x3c") (] "]")) (= "=") (cast_expression "(undefined *)local_34" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_34"))) (; ";")) (expression_statement "param_1[0x3d] = local_30;" (assignment_expression "param_1[0x3d] = local_30" (subscript_expression "param_1[0x3d]" (identifier "param_1") ([ "[") (number_literal "0x3d") (] "]")) (= "=") (identifier "local_30")) (; ";")) (expression_statement "param_1[0x3e] = (undefined *)local_2c;" (assignment_expression "param_1[0x3e] = (undefined *)local_2c" (subscript_expression "param_1[0x3e]" (identifier "param_1") ([ "[") (number_literal "0x3e") (] "]")) (= "=") (cast_expression "(undefined *)local_2c" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_2c"))) (; ";")) (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" (identifier "local_34") (= "=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) (; ";")) (} "}")) (else_clause "else {\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }" (else "else") (compound_statement "{\n            ppuVar5 = (undefined **)param_1[0x3e];\n            param_1[0x3c] = (undefined *)local_34;\n            param_1[0x3e] = (undefined *)local_2c;\n            param_1[0x3d] = local_30;\n            local_34 = &local_2c;\n            if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }\n          }" ({ "{") (expression_statement "ppuVar5 = (undefined **)param_1[0x3e];" (assignment_expression "ppuVar5 = (undefined **)param_1[0x3e]" (identifier "ppuVar5") (= "=") (cast_expression "(undefined **)param_1[0x3e]" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "param_1[0x3e]" (identifier "param_1") ([ "[") (number_literal "0x3e") (] "]")))) (; ";")) (expression_statement "param_1[0x3c] = (undefined *)local_34;" (assignment_expression "param_1[0x3c] = (undefined *)local_34" (subscript_expression "param_1[0x3c]" (identifier "param_1") ([ "[") (number_literal "0x3c") (] "]")) (= "=") (cast_expression "(undefined *)local_34" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_34"))) (; ";")) (expression_statement "param_1[0x3e] = (undefined *)local_2c;" (assignment_expression "param_1[0x3e] = (undefined *)local_2c" (subscript_expression "param_1[0x3e]" (identifier "param_1") ([ "[") (number_literal "0x3e") (] "]")) (= "=") (cast_expression "(undefined *)local_2c" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_2c"))) (; ";")) (expression_statement "param_1[0x3d] = local_30;" (assignment_expression "param_1[0x3d] = local_30" (subscript_expression "param_1[0x3d]" (identifier "param_1") ([ "[") (number_literal "0x3d") (] "]")) (= "=") (identifier "local_30")) (; ";")) (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" (identifier "local_34") (= "=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) (; ";")) (if_statement "if (__dest != (undefined ***)0x0) {\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }" (if "if") (parenthesized_expression "(__dest != (undefined ***)0x0)" (( "(") (binary_expression "__dest != (undefined ***)0x0" (identifier "__dest") (!= "!=") (cast_expression "(undefined ***)0x0" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              ppuVar6 = ppuVar5;\n              local_34 = __dest;\n              local_2c = ppuVar5;\n            }" ({ "{") (expression_statement "ppuVar6 = ppuVar5;" (assignment_expression "ppuVar6 = ppuVar5" (identifier "ppuVar6") (= "=") (identifier "ppuVar5")) (; ";")) (expression_statement "local_34 = __dest;" (assignment_expression "local_34 = __dest" (identifier "local_34") (= "=") (identifier "__dest")) (; ";")) (expression_statement "local_2c = ppuVar5;" (assignment_expression "local_2c = ppuVar5" (identifier "local_2c") (= "=") (identifier "ppuVar5")) (; ";")) (} "}"))) (} "}")))) (} "}")))) (expression_statement "local_60 = &__DT_PLTGOT;" (assignment_expression "local_60 = &__DT_PLTGOT" (identifier "local_60") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" (identifier "local_30") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined1 *)local_34 = 0;" (assignment_expression "*(undefined1 *)local_34 = 0" (pointer_expression "*(undefined1 *)local_34" (* "*") (cast_expression "(undefined1 *)local_34" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_34"))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_34 != &local_2c) {\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }" (if "if") (parenthesized_expression "(local_34 != &local_2c)" (( "(") (binary_expression "local_34 != &local_2c" (identifier "local_34") (!= "!=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) () ")")) (compound_statement "{\n          FUN_001e6db0(local_34);\n          ppuVar6 = local_60;\n        }" ({ "{") (expression_statement "FUN_001e6db0(local_34);" (call_expression "FUN_001e6db0(local_34)" (identifier "FUN_001e6db0") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))) (; ";")) (expression_statement "ppuVar6 = local_60;" (assignment_expression "ppuVar6 = local_60" (identifier "ppuVar6") (= "=") (identifier "local_60")) (; ";")) (} "}"))) (if_statement "if (local_4c != &local_44) {\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }" (if "if") (parenthesized_expression "(local_4c != &local_44)" (( "(") (binary_expression "local_4c != &local_44" (identifier "local_4c") (!= "!=") (pointer_expression "&local_44" (& "&") (identifier "local_44"))) () ")")) (compound_statement "{\n          FUN_001e6db0(local_4c);\n          ppuVar6 = local_60;\n        }" ({ "{") (expression_statement "FUN_001e6db0(local_4c);" (call_expression "FUN_001e6db0(local_4c)" (identifier "FUN_001e6db0") (argument_list "(local_4c)" (( "(") (identifier "local_4c") () ")"))) (; ";")) (expression_statement "ppuVar6 = local_60;" (assignment_expression "ppuVar6 = local_60" (identifier "ppuVar6") (= "=") (identifier "local_60")) (; ";")) (} "}"))) (if_statement "if (((uint)param_1[0x15] & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }" (if "if") (parenthesized_expression "(((uint)param_1[0x15] & 2) != 0)" (( "(") (binary_expression "((uint)param_1[0x15] & 2) != 0" (parenthesized_expression "((uint)param_1[0x15] & 2)" (( "(") (binary_expression "(uint)param_1[0x15] & 2" (cast_expression "(uint)param_1[0x15]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]"))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);\n        }" ({ "{") (expression_statement "FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);" (call_expression "FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c)" (identifier "FUN_00069d00") (argument_list "("../../gold/output.h",0xe48,"set_name",&local_2c)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xe48") (, ",") (string_literal ""set_name"" (" """) (string_content "set_name") (" """)) (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (} "}"))) (expression_statement "bVar23 = *(byte *)(param_1 + 7);" (assignment_expression "bVar23 = *(byte *)(param_1 + 7)" (identifier "bVar23") (= "=") (pointer_expression "*(byte *)(param_1 + 7)" (* "*") (cast_expression "(byte *)(param_1 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (if_statement "if ((bVar23 & 2) != 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }" (if "if") (parenthesized_expression "((bVar23 & 2) != 0)" (( "(") (binary_expression "(bVar23 & 2) != 0" (parenthesized_expression "(bVar23 & 2)" (( "(") (binary_expression "bVar23 & 2" (identifier "bVar23") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);\n        }" ({ "{") (expression_statement "FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);" (call_expression "FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6)" (identifier "FUN_00069d00") (argument_list "("../../gold/output.h",0xe49,"set_name",ppuVar6)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xe49") (, ",") (string_literal ""set_name"" (" """) (string_content "set_name") (" """)) (, ",") (identifier "ppuVar6") () ")"))) (; ";")) (} "}"))) (expression_statement "param_1[8] = param_1[0x3c];" (assignment_expression "param_1[8] = param_1[0x3c]" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "param_1[0x3c]" (identifier "param_1") ([ "[") (number_literal "0x3c") (] "]"))) (; ";")) (expression_statement "param_1[0x16] = puVar8;" (assignment_expression "param_1[0x16] = puVar8" (subscript_expression "param_1[0x16]" (identifier "param_1") ([ "[") (number_literal "0x16") (] "]")) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "param_1[0x15] = puVar15;" (assignment_expression "param_1[0x15] = puVar15" (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "puVar15")) (; ";")) (} "}")))) (expression_statement "puVar15 = local_50;" (assignment_expression "puVar15 = local_50" (identifier "puVar15") (= "=") (identifier "local_50")) (; ";")) (if_statement "if ((bVar23 & 8) == 0) {\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }" (if "if") (parenthesized_expression "((bVar23 & 8) == 0)" (( "(") (binary_expression "(bVar23 & 8) == 0" (parenthesized_expression "(bVar23 & 8)" (( "(") (binary_expression "bVar23 & 8" (identifier "bVar23") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_1[3] = local_50;\n        param_1[4] = (undefined *)0x0;\n        *(byte *)(param_1 + 7) = bVar23 | 2;\n        return;\n      }" ({ "{") (expression_statement "param_1[3] = local_50;" (assignment_expression "param_1[3] = local_50" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_50")) (; ";")) (expression_statement "param_1[4] = (undefined *)0x0;" (assignment_expression "param_1[4] = (undefined *)0x0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(byte *)(param_1 + 7) = bVar23 | 2;" (assignment_expression "*(byte *)(param_1 + 7) = bVar23 | 2" (pointer_expression "*(byte *)(param_1 + 7)" (* "*") (cast_expression "(byte *)(param_1 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "bVar23 | 2" (identifier "bVar23") (| "|") (number_literal "2"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_0019ec27;" (goto "goto") (statement_identifier "LAB_0019ec27") (; ";")) (} "}"))) (if_statement "if (param_1[0x3b] != (undefined *)0x0) {\n      FUN_001e6d50(param_1[0x3b]);\n    }" (if "if") (parenthesized_expression "(param_1[0x3b] != (undefined *)0x0)" (( "(") (binary_expression "param_1[0x3b] != (undefined *)0x0" (subscript_expression "param_1[0x3b]" (identifier "param_1") ([ "[") (number_literal "0x3b") (] "]")) (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_001e6d50(param_1[0x3b]);\n    }" ({ "{") (expression_statement "FUN_001e6d50(param_1[0x3b]);" (call_expression "FUN_001e6d50(param_1[0x3b])" (identifier "FUN_001e6d50") (argument_list "(param_1[0x3b])" (( "(") (subscript_expression "param_1[0x3b]" (identifier "param_1") ([ "[") (number_literal "0x3b") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "param_1[0x3b] = (undefined *)0x0;" (assignment_expression "param_1[0x3b] = (undefined *)0x0" (subscript_expression "param_1[0x3b]" (identifier "param_1") ([ "[") (number_literal "0x3b") (] "]")) (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }" (else "else") (compound_statement "{\n    iVar14 = 10;\n    pbVar16 = pbVar17;\n    pbVar18 = (byte *)"zlib-gabi";\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    bVar22 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }\n    iVar14 = 5;\n    pbVar16 = &DAT_002806eb;\n    do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;\n  }" ({ "{") (expression_statement "iVar14 = 10;" (assignment_expression "iVar14 = 10" (identifier "iVar14") (= "=") (number_literal "10")) (; ";")) (expression_statement "pbVar16 = pbVar17;" (assignment_expression "pbVar16 = pbVar17" (identifier "pbVar16") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "pbVar18 = (byte *)"zlib-gabi";" (assignment_expression "pbVar18 = (byte *)"zlib-gabi"" (identifier "pbVar18") (= "=") (cast_expression "(byte *)"zlib-gabi"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""zlib-gabi"" (" """) (string_content "zlib-gabi") (" """)))) (; ";")) (do_statement "do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);" (do "do") (compound_statement "{\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar21 = *pbVar16 < *pbVar18;\n      bVar20 = *pbVar16 == *pbVar18;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar14 == 0) break;" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" (identifier "iVar14") (= "=") (binary_expression "iVar14 + -1" (identifier "iVar14") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar21 = *pbVar16 < *pbVar18;" (assignment_expression "bVar21 = *pbVar16 < *pbVar18" (identifier "bVar21") (= "=") (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar20 = *pbVar16 == *pbVar18;" (assignment_expression "bVar20 = *pbVar16 == *pbVar18" (identifier "bVar20") (= "=") (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar23 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar23 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (; ";")) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "bVar20 = (!bVar21 && !bVar20) == bVar21;" (assignment_expression "bVar20 = (!bVar21 && !bVar20) == bVar21" (identifier "bVar20") (= "=") (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" (( "(") (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" (! "!") (identifier "bVar21")) (&& "&&") (unary_expression "!bVar20" (! "!") (identifier "bVar20"))) () ")")) (== "==") (identifier "bVar21"))) (; ";")) (if_statement "if (bVar20) {\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }" (if "if") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (compound_statement "{\nLAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }\n      goto LAB_0019e72b;\n    }" ({ "{") (labeled_statement "LAB_0019e70c:\n      if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }" (statement_identifier "LAB_0019e70c") (: ":") (if_statement "if (iVar4 == 0x20) {\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }\n      else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }" (if "if") (parenthesized_expression "(iVar4 == 0x20)" (( "(") (binary_expression "iVar4 == 0x20" (identifier "iVar4") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n        iVar19 = 0xc;\n        iVar14 = 2;\n      }" ({ "{") (expression_statement "iVar19 = 0xc;" (assignment_expression "iVar19 = 0xc" (identifier "iVar19") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "iVar14 = 2;" (assignment_expression "iVar14 = 2" (identifier "iVar14") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }" (else "else") (compound_statement "{\n        if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }\n        iVar19 = 0x18;\n        iVar14 = 2;\n      }" ({ "{") (if_statement "if (iVar4 != 0x40) {\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }" (if "if") (parenthesized_expression "(iVar4 != 0x40)" (( "(") (binary_expression "iVar4 != 0x40" (identifier "iVar4") (!= "!=") (number_literal "0x40")) () ")")) (compound_statement "{\n                    \n          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);\n        }" ({ "{") (expression_statement "FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);" (call_expression "FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT)" (identifier "FUN_00069d00") (argument_list "("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT)" (( "(") (string_literal ""../../gold/compressed_output.cc"" (" """) (string_content "../../gold/compressed_output.cc") (" """)) (, ",") (number_literal "0xf7") (, ",") (string_literal ""set_final_data_size"" (" """) (string_content "set_final_data_size") (" """)) (, ",") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar19 = 0x18;" (assignment_expression "iVar19 = 0x18" (identifier "iVar19") (= "=") (number_literal "0x18")) (; ";")) (expression_statement "iVar14 = 2;" (assignment_expression "iVar14 = 2" (identifier "iVar14") (= "=") (number_literal "2")) (; ";")) (} "}"))))) (goto_statement "goto LAB_0019e72b;" (goto "goto") (statement_identifier "LAB_0019e72b") (; ";")) (} "}"))) (expression_statement "iVar14 = 5;" (assignment_expression "iVar14 = 5" (identifier "iVar14") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar16 = &DAT_002806eb;" (assignment_expression "pbVar16 = &DAT_002806eb" (identifier "pbVar16") (= "=") (pointer_expression "&DAT_002806eb" (& "&") (identifier "DAT_002806eb"))) (; ";")) (do_statement "do {\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    } while (bVar20);" (do "do") (compound_statement "{\n      if (iVar14 == 0) break;\n      iVar14 = iVar14 + -1;\n      bVar22 = *pbVar17 < *pbVar16;\n      bVar20 = *pbVar17 == *pbVar16;\n      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar14 == 0) break;" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" (identifier "iVar14") (= "=") (binary_expression "iVar14 + -1" (identifier "iVar14") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar17 < *pbVar16;" (assignment_expression "bVar22 = *pbVar17 < *pbVar16" (identifier "bVar22") (= "=") (binary_expression "*pbVar17 < *pbVar16" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "bVar20 = *pbVar17 == *pbVar16;" (assignment_expression "bVar20 = *pbVar17 == *pbVar16" (identifier "bVar20") (= "=") (binary_expression "*pbVar17 == *pbVar16" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar23 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar23 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (; ";")) (if_statement "if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;" (if "if") (parenthesized_expression "((!bVar22 && !bVar20) == bVar22)" (( "(") (binary_expression "(!bVar22 && !bVar20) == bVar22" (parenthesized_expression "(!bVar22 && !bVar20)" (( "(") (binary_expression "!bVar22 && !bVar20" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar20" (! "!") (identifier "bVar20"))) () ")")) (== "==") (identifier "bVar22")) () ")")) (goto_statement "goto LAB_0019e70c;" (goto "goto") (statement_identifier "LAB_0019e70c") (; ";"))) (} "}")))) (expression_statement "uVar11 = gettext("not compressing section data: zlib error");" (assignment_expression "uVar11 = gettext("not compressing section data: zlib error")" (identifier "uVar11") (= "=") (call_expression "gettext("not compressing section data: zlib error")" (identifier "gettext") (argument_list "("not compressing section data: zlib error")" (( "(") (string_literal ""not compressing section data: zlib error"" (" """) (string_content "not compressing section data: zlib error") (" """)) () ")")))) (; ";")) (expression_statement "FUN_000654e0(uVar11);" (call_expression "FUN_000654e0(uVar11)" (identifier "FUN_000654e0") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")"))) (; ";")) (if_statement "if (param_1[0x3b] != (undefined *)0x0) {\n                    \n    FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);\n  }" (if "if") (parenthesized_expression "(param_1[0x3b] != (undefined *)0x0)" (( "(") (binary_expression "param_1[0x3b] != (undefined *)0x0" (subscript_expression "param_1[0x3b]" (identifier "param_1") ([ "[") (number_literal "0x3b") (] "]")) (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);\n  }" ({ "{") (expression_statement "FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);" (call_expression "FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1)" (identifier "FUN_00069d00") (argument_list "("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1)" (( "(") (string_literal ""../../gold/compressed_output.cc"" (" """) (string_content "../../gold/compressed_output.cc") (" """)) (, ",") (number_literal "0x141") (, ",") (string_literal ""set_final_data_size"" (" """) (string_content "set_final_data_size") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "bVar23 = *(byte *)(param_1 + 7);" (assignment_expression "bVar23 = *(byte *)(param_1 + 7)" (identifier "bVar23") (= "=") (pointer_expression "*(byte *)(param_1 + 7)" (* "*") (cast_expression "(byte *)(param_1 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "puVar15 = extraout_ECX;" (assignment_expression "puVar15 = extraout_ECX" (identifier "puVar15") (= "=") (identifier "extraout_ECX")) (; ";")) (if_statement "if (((bVar23 & 2) == 0) && ((bVar23 & 8) == 0)) {\n    param_1[3] = puVar2;\n    *(byte *)(param_1 + 7) = bVar23 | 2;\n    param_1[4] = puVar3;\n    return;\n  }" (if "if") (parenthesized_expression "(((bVar23 & 2) == 0) && ((bVar23 & 8) == 0))" (( "(") (binary_expression "((bVar23 & 2) == 0) && ((bVar23 & 8) == 0)" (parenthesized_expression "((bVar23 & 2) == 0)" (( "(") (binary_expression "(bVar23 & 2) == 0" (parenthesized_expression "(bVar23 & 2)" (( "(") (binary_expression "bVar23 & 2" (identifier "bVar23") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((bVar23 & 8) == 0)" (( "(") (binary_expression "(bVar23 & 8) == 0" (parenthesized_expression "(bVar23 & 8)" (( "(") (binary_expression "bVar23 & 8" (identifier "bVar23") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    param_1[3] = puVar2;\n    *(byte *)(param_1 + 7) = bVar23 | 2;\n    param_1[4] = puVar3;\n    return;\n  }" ({ "{") (expression_statement "param_1[3] = puVar2;" (assignment_expression "param_1[3] = puVar2" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(byte *)(param_1 + 7) = bVar23 | 2;" (assignment_expression "*(byte *)(param_1 + 7) = bVar23 | 2" (pointer_expression "*(byte *)(param_1 + 7)" (* "*") (cast_expression "(byte *)(param_1 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "bVar23 | 2" (identifier "bVar23") (| "|") (number_literal "2"))) (; ";")) (expression_statement "param_1[4] = puVar3;" (assignment_expression "param_1[4] = puVar3" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "puVar3")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_0019ec27:\n                    \n  FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15);" (statement_identifier "LAB_0019ec27") (: ":") (expression_statement "FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15);" (call_expression "FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15)" (identifier "FUN_00069d00") (argument_list "("../../gold/output.h",0x218,"set_data_size",puVar15)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x218") (, ",") (string_literal ""set_data_size"" (" """) (string_content "set_data_size") (" """)) (, ",") (identifier "puVar15") () ")"))) (; ";"))) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void set_final_data_size(Output_compressed_section * this) */

void __thiscall
gold::type_1::function_1(type_1 *this)

{
  char var_18;
  type_2 var_1;
  type_2 var_20;
  type_3 *var_2;
  int var_17;
  type_2 var_22;
  type_4 uVar7;
  type_5 *var_15;
  type_6 sVar9;
  type_2 uVar10;
  type_3 *var_13;
  int var_14;
  char *pcVar13;
  size_t sVar14;
  type_4 *var_27;
  type_6 *var_35;
  type_2 var_19;
  int var_5;
  type_2 extraout_EDX;
  type_7 *var_6;
  type_7 *var_40;
  type_7 *var_7;
  int var_11;
  bool var_8;
  bool var_39;
  bool var_41;
  type_7 var_23;
  type_2 var_21;
  type_8 var_10;
  type_9 *var_37;
  type_4 local_48;
  type_9 local_44;
  type_10 local_42;
  type_6 *var_28;
  size_t var_29;
  type_6 local_2c;
  type_4 local_28;
  type_4 local_24;
  type_4 local_20;
  
  var_23 = 0;
  var_1 = (type_2)(this->super_Output_section).super_Output_data.data_size_;
  uVar10 = var_1 >> 0x18 | (var_1 & 0xff0000) >> 8 | (var_1 & 0xff00) << 8 | var_1 << 0x18;
  var_20 = *(type_2 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4);
  var_2 = (this->super_Output_section).postprocessing_buffer_;
  if (var_2 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/output.h",0xe34,"postprocessing_buffer");
  }
  Output_section::var_4(&this->super_Output_section);
  var_8 = false;
  var_41 = parameters->target_ == (type_11 *)0x0;
  if (var_41) goto LAB_0019ec43;
  var_5 = 9;
  var_17 = **(int **)(parameters->target_ + 4);
  var_40 = (type_7 *)(this->options_->compress_debug_sections_).value;
  var_6 = var_40;
  var_7 = &DAT_002806f0;
  do {
    if (var_5 == 0) break;
    var_5 = var_5 + -1;
    var_8 = *var_6 < *var_7;
    var_41 = *var_6 == *var_7;
    var_6 = var_6 + (type_2)var_23 * -2 + 1;
    var_7 = var_7 + (type_2)var_23 * -2 + 1;
  } while (var_41);
  var_39 = false;
  var_8 = (!var_8 && !var_41) == var_8;
  if (var_8) {
    var_11 = 0xc;
    var_5 = 1;
LAB_0019e72b:
    var_10 = var_1 + 0x80 + var_1 / 1000;
    var_13 = (type_3 *)var_9(var_10 + var_11);
    this->data_ = var_13;
    if (parameters->options_ == (type_12 *)0x0) {
                    /* WARNING: Subroutine does not return */
      var_3("../../gold/parameters.h",0x5c,"options");
    }
    var_14 = var_12(var_13 + var_11,&var_10,var_2,var_1,
                       (0 < (parameters->options_->optimize_).value) * '\b' + '\x01');
    if (var_14 == 0) {
      var_10 = var_10 + var_11;
      var_22 = (type_2)(this->super_Output_section).flags_;
      uVar7 = *(type_4 *)((int)&(this->super_Output_section).flags_ + 4);
      if (var_5 == 2) {
        if (parameters->target_ == (type_11 *)0x0) {
LAB_0019ec43:
                    /* WARNING: Subroutine does not return */
          var_3("../../gold/parameters.h",0x69,"target");
        }
        var_18 = *(char *)(*(int *)(parameters->target_ + 4) + 4);
        var_15 = (this->super_Output_section).super_Output_data._vptr_Output_data[3];
        if (var_15 == var_16::do_addralign) {
          var_21 = *(type_2 *)((int)&(this->super_Output_section).addralign_ + 4);
          var_19 = (type_2)(this->super_Output_section).addralign_;
        }
        else {
          var_19 = (*var_15)(this);
          var_21 = extraout_EDX;
        }
        if (var_17 == 0x20) {
          var_2 = this->data_;
          if (var_18 == '\0') {
            var_2[0] = '\x01';
            var_2[1] = '\0';
            var_2[2] = '\0';
            var_2[3] = '\0';
            *(type_2 *)(var_2 + 8) = var_19;
            *(type_2 *)(var_2 + 4) = var_1;
          }
          else {
            var_2[0] = '\0';
            var_2[1] = '\0';
            var_2[2] = '\0';
            var_2[3] = '\x01';
            *(type_2 *)(var_2 + 8) =
                 var_19 >> 0x18 | (var_19 & 0xff0000) >> 8 | (var_19 & 0xff00) << 8 | var_19 << 0x18
            ;
            *(type_2 *)(var_2 + 4) = uVar10;
          }
        }
        else {
          if (var_17 != 0x40) {
                    /* WARNING: Subroutine does not return */
            var_3("../../gold/compressed_output.cc",0x12f,"set_final_data_size");
          }
          var_2 = this->data_;
          if (var_18 == '\0') {
            *(type_2 *)(var_2 + 0x10) = var_19;
            var_2[0] = '\x01';
            var_2[1] = '\0';
            var_2[2] = '\0';
            var_2[3] = '\0';
            *(type_2 *)(var_2 + 8) = var_1;
            *(type_2 *)(var_2 + 0xc) = var_20;
          }
          else {
            var_2[0] = '\0';
            var_2[1] = '\0';
            var_2[2] = '\0';
            var_2[3] = '\0';
            *(type_2 *)(var_2 + 8) =
                 var_20 >> 0x18 | (var_20 & 0xff0000) >> 8 | (var_20 & 0xff00) << 8 | var_20 << 0x18;
            *(type_2 *)(var_2 + 0x10) =
                 var_21 >> 0x18 | (var_21 & 0xff0000) >> 8 | (var_21 & 0xff00) << 8 |
                 var_21 << 0x18;
            *(type_2 *)(var_2 + 0xc) = uVar10;
            var_21 = var_19 >> 0x18 | (var_19 & 0xff0000) >> 8 | (var_19 & 0xff00) << 8 |
                       var_19 << 0x18;
          }
          *(type_2 *)(var_2 + 0x14) = var_21;
          var_2[4] = '\0';
          var_2[5] = '\0';
          var_2[6] = '\0';
          var_2[7] = '\0';
        }
        var_23 = (this->super_Output_section).super_Output_data.field_0x1c;
        *(type_2 *)&(this->super_Output_section).flags_ = var_22 | 0x800;
        *(type_4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;
        if ((var_23 >> 1 & 1) != 0) goto LAB_0019ec27;
      }
      else {
        var_24(this->data_,"ZLIB",4);
        var_2 = this->data_;
        var_2[4] = (type_3)(var_20 >> 0x18);
        var_2[6] = (type_3)(var_20 >> 8);
        var_2[5] = (type_3)(var_20 >> 0x10);
        var_2[7] = (type_3)var_20;
        *(type_2 *)(var_2 + 8) = uVar10;
        local_48 = 2;
        local_42 = 0;
        pcVar13 = (this->super_Output_section).name_ + 1;
        local_44 = 0x7a2e;
        var_37 = &local_44;
        sVar14 = var_25(pcVar13);
                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */
        var_27 = (type_4 *)std::string::var_26((type_13 *)&var_37,pcVar13,sVar14);
        if ((type_6 *)*var_27 == var_27 + 2) {
          local_2c = var_27[2];
          local_28 = var_27[3];
          local_24 = var_27[4];
          local_20 = var_27[5];
          var_28 = &local_2c;
        }
        else {
          local_2c = var_27[2];
          var_28 = (type_6 *)*var_27;
        }
        var_29 = var_27[1];
        *(type_10 *)(var_27 + 2) = 0;
        *var_27 = var_27 + 2;
        var_27[1] = 0;
        var_35 = (type_6 *)(this->new_section_name_)._M_dataplus._M_p;
        if (var_28 == &local_2c) {
          if (var_29 != 0) {
            if (var_29 == 1) {
              *(type_10 *)var_35 = (type_10)local_2c;
              var_35 = (type_6 *)(this->new_section_name_)._M_dataplus._M_p;
            }
            else {
              var_30(var_35,&local_2c,var_29);
              var_35 = (type_6 *)(this->new_section_name_)._M_dataplus._M_p;
            }
          }
          (this->new_section_name_)._M_string_length = var_29;
          *(type_10 *)((int)var_35 + var_29) = 0;
        }
        else if ((anon_union_16_2_edb7204a_for_basic_string<var_32,_std::char_traits<var_32>,_std::var_31<var_32>var_33>var_34
                  *)var_35 == &(this->new_section_name_).field_2) {
          (this->new_section_name_)._M_dataplus._M_p = (type_14)var_28;
          (this->new_section_name_)._M_string_length = var_29;
          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;
          var_28 = &local_2c;
        }
        else {
          sVar9 = (this->new_section_name_).field_2._M_allocated_capacity;
          (this->new_section_name_)._M_dataplus._M_p = (type_14)var_28;
          (this->new_section_name_).field_2._M_allocated_capacity = local_2c;
          (this->new_section_name_)._M_string_length = var_29;
          var_28 = &local_2c;
          if (var_35 != (type_6 *)0x0) {
            var_28 = var_35;
            local_2c = sVar9;
          }
        }
        var_29 = 0;
        *(type_10 *)var_28 = 0;
        if (var_28 != &local_2c) {
          var_36(var_28);
        }
        if (var_37 != &local_44) {
          var_36(var_37);
        }
        if (((this->super_Output_section).flags_ & 2) != 0) {
                    /* WARNING: Subroutine does not return */
          var_3("../../gold/output.h",0xe48,"set_name");
        }
        var_23 = (this->super_Output_section).super_Output_data.field_0x1c;
        if ((var_23 & 2) != 0) {
                    /* WARNING: Subroutine does not return */
          var_3("../../gold/output.h",0xe49,"set_name");
        }
        (this->super_Output_section).name_ = (this->new_section_name_)._M_dataplus._M_p;
        *(type_4 *)((int)&(this->super_Output_section).flags_ + 4) = uVar7;
        *(type_2 *)&(this->super_Output_section).flags_ = var_22;
      }
      if ((var_23 & 8) == 0) {
        *(type_8 *)&(this->super_Output_section).super_Output_data.data_size_ = var_10;
        *(type_4 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = 0;
        (this->super_Output_section).super_Output_data.field_0x1c = var_23 | 2;
        return;
      }
      goto LAB_0019ec27;
    }
    if (this->data_ != (type_3 *)0x0) {
      var_38(this->data_);
    }
    this->data_ = (type_3 *)0x0;
  }
  else {
    var_5 = 10;
    var_6 = var_40;
    var_7 = (type_7 *)"zlib-gabi";
    do {
      if (var_5 == 0) break;
      var_5 = var_5 + -1;
      var_39 = *var_6 < *var_7;
      var_8 = *var_6 == *var_7;
      var_6 = var_6 + (type_2)var_23 * -2 + 1;
      var_7 = var_7 + (type_2)var_23 * -2 + 1;
    } while (var_8);
    var_41 = false;
    var_8 = (!var_39 && !var_8) == var_39;
    if (var_8) {
LAB_0019e70c:
      if (var_17 == 0x20) {
        var_11 = 0xc;
        var_5 = 2;
      }
      else {
        if (var_17 != 0x40) {
                    /* WARNING: Subroutine does not return */
          var_3("../../gold/compressed_output.cc",0xf7,"set_final_data_size");
        }
        var_11 = 0x18;
        var_5 = 2;
      }
      goto LAB_0019e72b;
    }
    var_5 = 5;
    var_6 = &DAT_002806eb;
    do {
      if (var_5 == 0) break;
      var_5 = var_5 + -1;
      var_41 = *var_40 < *var_6;
      var_8 = *var_40 == *var_6;
      var_40 = var_40 + (type_2)var_23 * -2 + 1;
      var_6 = var_6 + (type_2)var_23 * -2 + 1;
    } while (var_8);
    if ((!var_41 && !var_8) == var_41) goto LAB_0019e70c;
  }
  pcVar13 = (char *)var_42("not compressing section data: zlib error");
  var_43(pcVar13);
  if (this->data_ != (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/compressed_output.cc",0x141,"set_final_data_size");
  }
  var_23 = (this->super_Output_section).super_Output_data.field_0x1c;
  if (((var_23 & 2) == 0) && ((var_23 & 8) == 0)) {
    *(type_2 *)&(this->super_Output_section).super_Output_data.data_size_ = var_1;
    (this->super_Output_section).super_Output_data.field_0x1c = var_23 | 2;
    *(type_2 *)((int)&(this->super_Output_section).super_Output_data.data_size_ + 4) = var_20;
    return;
  }
LAB_0019ec27:
                    /* WARNING: Subroutine does not return */
  var_3("../../gold/output.h",0x218,"set_data_size");
}


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

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

void MASKED(undefined **param_1)

{
  char cVar1;
  undefined *puVar2;
  undefined *puVar3;
  int iVar4;
  undefined **ppuVar5;
  undefined **ppuVar6;
  uint uVar7;
  undefined *puVar8;
  int iVar9;
  uint uVar10;
  undefined4 uVar11;
  size_t sVar12;
  undefined4 *puVar13;
  undefined ***__dest;
  int iVar14;
  undefined *extraout_ECX;
  undefined *puVar15;
  byte *pbVar16;
  byte *pbVar17;
  byte *pbVar18;
  int iVar19;
  bool bVar20;
  bool bVar21;
  bool bVar22;
  byte bVar23;
  undefined8 uVar24;
  uint local_68;
  undefined **local_60;
  undefined *local_50;
  undefined2 *local_4c;
  undefined4 local_48;
  undefined2 local_44;
  undefined1 local_42;
  undefined ***local_34;
  undefined *local_30;
  undefined **local_2c;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  
  bVar23 = 0;
  ppuVar6 = &__DT_PLTGOT;
  puVar2 = param_1[3];
  uVar7 = (uint)puVar2 >> 0x18 | ((uint)puVar2 & 0xff0000) >> 8 | ((uint)puVar2 & 0xff00) << 8 |
          (int)puVar2 << 0x18;
  puVar3 = param_1[4];
  puVar15 = param_1[0x23];
  if (puVar15 == (undefined *)0x0) {
                    /* WARNING: Subroutine does not return */
    FUN_00069d00("../../gold/output.h",0xe34,"postprocessing_buffer");
  }
  FUN_000ef2d0(param_1);
  bVar20 = false;
  bVar22 = *(int *)(DAT_0038f378 + 0xc) == 0;
  if (bVar22) goto LAB_0019ec43;
  iVar14 = 9;
  iVar4 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);
  pbVar17 = *(byte **)(param_1[0x3a] + 0x99c);
  pbVar16 = pbVar17;
  pbVar18 = &DAT_002806f0;
  do {
    if (iVar14 == 0) break;
    iVar14 = iVar14 + -1;
    bVar20 = *pbVar16 < *pbVar18;
    bVar22 = *pbVar16 == *pbVar18;
    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;
    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;
  } while (bVar22);
  bVar21 = false;
  bVar20 = (!bVar20 && !bVar22) == bVar20;
  if (bVar20) {
    iVar19 = 0xc;
    iVar14 = 1;
LAB_0019e72b:
    local_50 = puVar2 + (uint)puVar2 / 1000 + 0x80;
    puVar8 = (undefined *)FUN_001e5180(local_50 + iVar19);
    param_1[0x3b] = puVar8;
    if (*(int *)(DAT_0038f378 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_00069d00("../../gold/parameters.h",0x5c,"options",&DAT_0038f378);
    }
    iVar9 = compress2(puVar8 + iVar19,&local_50,puVar15,puVar2,
                      (0 < *(int *)(*(int *)(DAT_0038f378 + 8) + 0x2830)) * '\b' + '\x01');
    if (iVar9 == 0) {
      local_50 = local_50 + iVar19;
      puVar15 = param_1[0x15];
      puVar8 = param_1[0x16];
      if (iVar14 == 2) {
        ppuVar6 = (undefined **)0x2;
        if (*(int *)(DAT_0038f378 + 0xc) == 0) {
LAB_0019ec43:
                    /* WARNING: Subroutine does not return */
          FUN_00069d00("../../gold/parameters.h",0x69,"target",ppuVar6);
        }
        cVar1 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 4);
        if (*(code **)(*param_1 + 0xc) == FUN_000a4920) {
          uVar24 = *(undefined8 *)(param_1 + 9);
        }
        else {
          uVar24 = (**(code **)(*param_1 + 0xc))(param_1);
        }
        local_68 = (uint)((ulonglong)uVar24 >> 0x20);
        uVar10 = (uint)uVar24;
        if (iVar4 == 0x20) {
          puVar13 = (undefined4 *)param_1[0x3b];
          if (cVar1 == '\0') {
            *puVar13 = 1;
            puVar13[2] = uVar10;
            puVar13[1] = puVar2;
          }
          else {
            *puVar13 = 0x1000000;
            puVar13[2] = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |
                         uVar10 << 0x18;
            puVar13[1] = uVar7;
          }
        }
        else {
          if (iVar4 != 0x40) {
                    /* WARNING: Subroutine does not return */
            FUN_00069d00("../../gold/compressed_output.cc",0x12f,"set_final_data_size",uVar10);
          }
          puVar13 = (undefined4 *)param_1[0x3b];
          if (cVar1 == '\0') {
            puVar13[4] = uVar10;
            *puVar13 = 1;
            puVar13[2] = puVar2;
            puVar13[3] = puVar3;
          }
          else {
            *puVar13 = 0;
            puVar13[2] = (uint)puVar3 >> 0x18 | ((uint)puVar3 & 0xff0000) >> 8 |
                         ((uint)puVar3 & 0xff00) << 8 | (int)puVar3 << 0x18;
            puVar13[4] = local_68 >> 0x18 | (local_68 & 0xff0000) >> 8 | (local_68 & 0xff00) << 8 |
                         local_68 << 0x18;
            puVar13[3] = uVar7;
            local_68 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 |
                       uVar10 << 0x18;
          }
          puVar13[5] = local_68;
          puVar13[1] = 0;
        }
        bVar23 = *(byte *)(param_1 + 7);
        param_1[0x15] = (undefined *)((uint)puVar15 | 0x800);
        param_1[0x16] = puVar8;
        puVar15 = local_50;
        if ((bVar23 >> 1 & 1) != 0) goto LAB_0019ec27;
      }
      else {
        *(undefined4 *)param_1[0x3b] = 0x42494c5a;
        puVar2 = param_1[0x3b];
        puVar2[4] = (char)((uint)puVar3 >> 0x18);
        puVar2[6] = (char)((uint)puVar3 >> 8);
        puVar2[5] = (char)((uint)puVar3 >> 0x10);
        puVar2[7] = (char)puVar3;
        *(uint *)(puVar2 + 8) = uVar7;
        puVar2 = param_1[8];
        local_48 = 2;
        local_42 = 0;
        local_44 = 0x7a2e;
        local_4c = &local_44;
        sVar12 = strlen(puVar2 + 1);
                    /* try { // try from 0019e9d8 to 0019e9dc has its CatchHandler @ 0019ed1d */
        puVar13 = (undefined4 *)FUN_001f05c0(&local_4c,puVar2 + 1,sVar12);
        if ((undefined ***)*puVar13 == (undefined ***)(puVar13 + 2)) {
          local_2c = (undefined **)puVar13[2];
          local_28 = puVar13[3];
          local_24 = puVar13[4];
          local_20 = puVar13[5];
          local_34 = &local_2c;
        }
        else {
          local_2c = (undefined **)puVar13[2];
          local_34 = (undefined ***)*puVar13;
        }
        local_30 = (undefined *)puVar13[1];
        *(undefined1 *)(puVar13 + 2) = 0;
        *puVar13 = puVar13 + 2;
        puVar13[1] = 0;
        __dest = (undefined ***)param_1[0x3c];
        if (local_34 == &local_2c) {
          if (local_30 != (undefined *)0x0) {
            if (local_30 == (undefined *)0x1) {
              *(undefined1 *)__dest = local_2c._0_1_;
              __dest = (undefined ***)param_1[0x3c];
            }
            else {
              memcpy(__dest,&local_2c,(size_t)local_30);
              __dest = (undefined ***)param_1[0x3c];
            }
          }
          param_1[0x3d] = local_30;
          *(undefined1 *)((int)__dest + (int)local_30) = 0;
          ppuVar6 = param_1;
        }
        else {
          ppuVar6 = local_2c;
          if (__dest == (undefined ***)(param_1 + 0x3e)) {
            param_1[0x3c] = (undefined *)local_34;
            param_1[0x3d] = local_30;
            param_1[0x3e] = (undefined *)local_2c;
            local_34 = &local_2c;
          }
          else {
            ppuVar5 = (undefined **)param_1[0x3e];
            param_1[0x3c] = (undefined *)local_34;
            param_1[0x3e] = (undefined *)local_2c;
            param_1[0x3d] = local_30;
            local_34 = &local_2c;
            if (__dest != (undefined ***)0x0) {
              ppuVar6 = ppuVar5;
              local_34 = __dest;
              local_2c = ppuVar5;
            }
          }
        }
        local_60 = &__DT_PLTGOT;
        local_30 = (undefined *)0x0;
        *(undefined1 *)local_34 = 0;
        if (local_34 != &local_2c) {
          FUN_001e6db0(local_34);
          ppuVar6 = local_60;
        }
        if (local_4c != &local_44) {
          FUN_001e6db0(local_4c);
          ppuVar6 = local_60;
        }
        if (((uint)param_1[0x15] & 2) != 0) {
                    /* WARNING: Subroutine does not return */
          FUN_00069d00("../../gold/output.h",0xe48,"set_name",&local_2c);
        }
        bVar23 = *(byte *)(param_1 + 7);
        if ((bVar23 & 2) != 0) {
                    /* WARNING: Subroutine does not return */
          FUN_00069d00("../../gold/output.h",0xe49,"set_name",ppuVar6);
        }
        param_1[8] = param_1[0x3c];
        param_1[0x16] = puVar8;
        param_1[0x15] = puVar15;
      }
      puVar15 = local_50;
      if ((bVar23 & 8) == 0) {
        param_1[3] = local_50;
        param_1[4] = (undefined *)0x0;
        *(byte *)(param_1 + 7) = bVar23 | 2;
        return;
      }
      goto LAB_0019ec27;
    }
    if (param_1[0x3b] != (undefined *)0x0) {
      FUN_001e6d50(param_1[0x3b]);
    }
    param_1[0x3b] = (undefined *)0x0;
  }
  else {
    iVar14 = 10;
    pbVar16 = pbVar17;
    pbVar18 = (byte *)"zlib-gabi";
    do {
      if (iVar14 == 0) break;
      iVar14 = iVar14 + -1;
      bVar21 = *pbVar16 < *pbVar18;
      bVar20 = *pbVar16 == *pbVar18;
      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;
      pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;
    } while (bVar20);
    bVar22 = false;
    bVar20 = (!bVar21 && !bVar20) == bVar21;
    if (bVar20) {
LAB_0019e70c:
      if (iVar4 == 0x20) {
        iVar19 = 0xc;
        iVar14 = 2;
      }
      else {
        if (iVar4 != 0x40) {
                    /* WARNING: Subroutine does not return */
          FUN_00069d00("../../gold/compressed_output.cc",0xf7,"set_final_data_size",&__DT_PLTGOT);
        }
        iVar19 = 0x18;
        iVar14 = 2;
      }
      goto LAB_0019e72b;
    }
    iVar14 = 5;
    pbVar16 = &DAT_002806eb;
    do {
      if (iVar14 == 0) break;
      iVar14 = iVar14 + -1;
      bVar22 = *pbVar17 < *pbVar16;
      bVar20 = *pbVar17 == *pbVar16;
      pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;
      pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;
    } while (bVar20);
    if ((!bVar22 && !bVar20) == bVar22) goto LAB_0019e70c;
  }
  uVar11 = gettext("not compressing section data: zlib error");
  FUN_000654e0(uVar11);
  if (param_1[0x3b] != (undefined *)0x0) {
                    /* WARNING: Subroutine does not return */
    FUN_00069d00("../../gold/compressed_output.cc",0x141,"set_final_data_size",param_1);
  }
  bVar23 = *(byte *)(param_1 + 7);
  puVar15 = extraout_ECX;
  if (((bVar23 & 2) == 0) && ((bVar23 & 8) == 0)) {
    param_1[3] = puVar2;
    *(byte *)(param_1 + 7) = bVar23 | 2;
    param_1[4] = puVar3;
    return;
  }
LAB_0019ec27:
                    /* WARNING: Subroutine does not return */
  FUN_00069d00("../../gold/output.h",0x218,"set_data_size",puVar15);
}

