
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: bool read_section(Dwarf_pubnames_table * this, Relobj * object, uchar *
   symtab, off_t symtab_size) */

bool __thiscall
gold::Dwarf_pubnames_table::read_section
          (Dwarf_pubnames_table *this,Relobj *object,uchar *symtab,off_t symtab_size)

{
  uint *puVar1;
  byte *pbVar2;
  int iVar3;
  code *pcVar4;
  undefined4 uVar5;
  char *pcVar6;
  char cVar7;
  uchar *puVar8;
  undefined4 *puVar9;
  int iVar10;
  code *pcVar11;
  undefined4 extraout_ECX;
  undefined4 uVar12;
  undefined4 extraout_ECX_00;
  undefined4 extraout_EDX;
  undefined4 extraout_EDX_00;
  undefined1 *puVar13;
  int *piVar14;
  byte *pbVar15;
  uint uVar16;
  byte *pbVar17;
  int iVar18;
  undefined1 uVar19;
  bool bVar20;
  undefined1 uVar21;
  bool bVar22;
  byte bVar23;
  uint auStack_94 [10];
  undefined1 auStack_6c [8];
  uint local_64 [2];
  section_size_type *local_5c [6];
  off_t local_44;
  int local_38;
  section_size_type buffer_size;
  undefined1 local_2c [24];
  undefined4 uStack_14;
  
  bVar23 = 0;
  uStack_14 = 0x173989;
  local_44._0_4_ = (undefined4)symtab_size;
  if (this->is_pubtypes_ == false) {
    pcVar6 = "gnu_pubnames";
    local_5c[4] = (section_size_type *)0x25568b;
  }
  else {
    pcVar6 = "gnu_pubtypes";
    local_5c[4] = (section_size_type *)0x255698;
  }
  local_5c[3] = (section_size_type *)(pcVar6 + 4);
  if (1 < (object->super_Object).shnum_) {
    local_64[1] = 1;
    local_5c[0] = &buffer_size;
    local_5c[1] = (section_size_type *)0x255d66;
    local_5c[2] = (section_size_type *)local_2c;
    local_5c[5] = (section_size_type *)0x255d6e;
    puVar13 = auStack_6c;
    do {
      uVar19 = puVar13 < (undefined1 *)0x4;
      uVar21 = puVar13 == (undefined1 *)0x4;
      iVar10 = **(int **)(puVar13 + 0x74);
      *(undefined4 *)(puVar13 + -8) = *(undefined4 *)(puVar13 + 0xc);
      *(undefined4 *)(puVar13 + -0xc) = *(undefined4 *)(puVar13 + 0x74);
      *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x10);
      pcVar11 = *(code **)(iVar10 + 0x40);
      *(undefined4 *)(puVar13 + -0x14) = 0x173a20;
      local_44 = symtab_size;
      (*pcVar11)();
      iVar10 = 7;
      pbVar2 = *(byte **)(puVar13 + 0x34);
      pbVar15 = *(byte **)(puVar13 + 0x10);
      pbVar17 = pbVar2;
      do {
        if (iVar10 == 0) break;
        iVar10 = iVar10 + -1;
        uVar19 = *pbVar15 < *pbVar17;
        uVar21 = *pbVar15 == *pbVar17;
        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;
        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;
      } while ((bool)uVar21);
      pbVar15 = pbVar2 + 7;
      bVar20 = false;
      bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;
      if (bVar22) {
LAB_00173a59:
        *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x18);
        *(byte **)(puVar13 + -0x14) = pbVar15;
        *(undefined4 *)(puVar13 + -0x18) = 0x173a66;
        iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));
        if (iVar10 == 0) {
          piVar14 = *(int **)(puVar13 + 0x70);
        }
        else {
          *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x1c);
          *(byte **)(puVar13 + -0x14) = pbVar15;
          *(undefined4 *)(puVar13 + -0x18) = 0x173a7a;
          iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));
          if (iVar10 != 0) goto LAB_00173a85;
          piVar14 = *(int **)(puVar13 + 0x70);
          *(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d) = 1;
        }
        if (pbVar2 != *(byte **)(puVar13 + 0x14)) {
          *(byte **)(puVar13 + -0x14) = pbVar2;
          *(undefined4 *)(puVar13 + -0x18) = 0x173af5;
          operator_delete(*(void **)(puVar13 + -0x14));
        }
        if (*(int *)(puVar13 + 8) == 0) {
          return false;
        }
        *(undefined4 *)(puVar13 + -0x14) = 0;
        *(int *)(puVar13 + -0x18) = *(int *)(puVar13 + 0x6c) + 0xc;
        *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(puVar13 + 0xc);
        *(int *)(puVar13 + -0x20) = *(int *)(puVar13 + 8);
        *(int **)(puVar13 + -0x24) = piVar14;
        *(undefined4 *)(puVar13 + -0x28) = 0x173b1b;
        puVar8 = Object::decompressed_section_contents
                           (*(Object **)(puVar13 + -0x24),*(uint *)(puVar13 + -0x20),
                            *(section_size_type **)(puVar13 + -0x1c),*(bool **)(puVar13 + -0x18),
                            *(uint64_t **)(puVar13 + -0x14));
        *(uchar **)(*(int *)(puVar13 + 0x6c) + 4) = puVar8;
        if (puVar8 == (uchar *)0x0) {
          return false;
        }
        *(uchar **)(*(int *)(puVar13 + 0x6c) + 8) = puVar8 + *(int *)(puVar13 + 0x34);
        iVar10 = *piVar14;
        pcVar11 = *(code **)(iVar10 + 0x18);
        if (pcVar11 != Object::do_is_incremental) {
          *(int **)(puVar13 + -0x14) = piVar14;
          *(undefined4 *)(puVar13 + -0x18) = 0x173d4d;
          cVar7 = (*pcVar11)();
          if (cVar7 != '\0') {
            return (bool)cVar7;
          }
          iVar10 = *piVar14;
        }
        uVar16 = piVar14[10];
        iVar18 = 0;
        if (uVar16 == 0) goto LAB_00173b9d;
        uVar16 = 0;
        goto LAB_00173b74;
      }
      iVar10 = 8;
      pbVar15 = *(byte **)(puVar13 + 0x20);
      pbVar17 = pbVar2;
      do {
        if (iVar10 == 0) break;
        iVar10 = iVar10 + -1;
        bVar20 = *pbVar15 < *pbVar17;
        bVar22 = *pbVar15 == *pbVar17;
        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;
        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;
      } while (bVar22);
      pbVar15 = pbVar2 + 8;
      if ((!bVar20 && !bVar22) == bVar20) goto LAB_00173a59;
LAB_00173a85:
      symtab_size = local_44;
      if (pbVar2 != *(byte **)(puVar13 + 0x14)) {
        *(byte **)(puVar13 + -0x14) = pbVar2;
        *(undefined4 *)(puVar13 + -0x18) = 0x173a94;
        operator_delete(*(void **)(puVar13 + -0x14));
        symtab_size = local_44;
      }
      piVar14 = (int *)(puVar13 + 0x70);
      *(int *)(puVar13 + 8) = *(int *)(puVar13 + 8) + 1;
      puVar1 = (uint *)(puVar13 + 8);
      puVar13 = puVar13 + -4;
    } while (*puVar1 < *(uint *)(*piVar14 + 0x28));
  }
  return false;
LAB_00173b74:
  do {
    *(uint *)(puVar13 + -0x10) = uVar16;
    *(int **)(puVar13 + -0x14) = piVar14;
    pcVar11 = *(code **)(iVar10 + 0x50);
    *(undefined4 *)(puVar13 + -0x18) = 0x173b7c;
    iVar18 = (*pcVar11)();
    if ((iVar18 == 9) || (iVar18 == 4)) {
      iVar10 = *piVar14;
      *(uint *)(puVar13 + -0x10) = uVar16;
      *(int **)(puVar13 + -0x14) = piVar14;
      pcVar11 = *(code **)(iVar10 + 0x58);
      *(undefined4 *)(puVar13 + -0x18) = 0x173b91;
      iVar10 = (*pcVar11)();
      if (*(int *)(puVar13 + 8) == iVar10) {
        iVar10 = *piVar14;
        goto LAB_00173b9d;
      }
    }
    uVar16 = uVar16 + 1;
    iVar10 = *piVar14;
  } while (uVar16 < (uint)piVar14[10]);
  uVar16 = 0;
LAB_00173b9d:
  pcVar11 = *(code **)(iVar10 + 8);
  *(code **)(puVar13 + 8) = Relobj::elfsize;
  if (pcVar11 == Relobj::elfsize) {
    *(int **)(puVar13 + -0x14) = piVar14;
    pcVar11 = *(code **)(iVar10 + 0xe4);
    *(undefined4 *)(puVar13 + -0x18) = 0x173bbc;
    iVar10 = (*pcVar11)();
    pcVar11 = *(code **)(puVar13 + 8);
  }
  else {
    *(int **)(puVar13 + -0x14) = piVar14;
    *(undefined4 *)(puVar13 + -0x18) = 0x173d66;
    iVar10 = (*pcVar11)();
    pcVar11 = *(code **)(puVar13 + 8);
  }
  iVar3 = *piVar14;
  if (iVar10 == 0x20) {
    pcVar11 = *(code **)(iVar3 + 0xc);
    if (pcVar11 == Relobj::is_big_endian) {
      *(int **)(puVar13 + -0x14) = piVar14;
      pcVar11 = *(code **)(iVar3 + 0xe8);
      *(undefined4 *)(puVar13 + -0x18) = 0x173cce;
      cVar7 = (*pcVar11)();
      uVar12 = extraout_ECX;
    }
    else {
      *(int **)(puVar13 + -0x14) = piVar14;
      *(undefined4 *)(puVar13 + -0x18) = 0x173d94;
      cVar7 = (*pcVar11)();
      uVar12 = extraout_ECX_00;
    }
    if (cVar7 != '\0') {
      *(undefined4 *)(puVar13 + -8) = uVar12;
      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";
      *(undefined4 *)(puVar13 + -0x10) = 0x68;
      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";
                    /* WARNING: Subroutine does not return */
      *(undefined4 *)(puVar13 + -0x18) = 0x173db2;
      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),
                          *(char **)(puVar13 + -0xc));
    }
    *(undefined4 *)(puVar13 + -0x14) = 0x28;
    *(undefined4 *)(puVar13 + -0x18) = 0x173ce3;
    puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14));
    uVar12 = *(undefined4 *)(puVar13 + 0x28);
    *puVar9 = &PTR__Sized_elf_reloc_mapper_00335b08;
    uVar5 = *(undefined4 *)(puVar13 + 0x74);
    puVar9[1] = piVar14;
    puVar9[2] = uVar5;
    uVar5 = *(undefined4 *)(puVar13 + 0x24);
    puVar9[4] = uVar12;
    puVar9[3] = uVar5;
    pcVar11 = Sized_elf_reloc_mapper<32,_false>::do_initialize;
    puVar9[5] = 0;
    puVar9[6] = 0;
    puVar9[7] = 0;
    puVar9[8] = 0;
    puVar9[9] = 0;
  }
  else {
    pcVar4 = *(code **)(iVar3 + 8);
    if (pcVar4 == pcVar11) {
      *(int **)(puVar13 + -0x14) = piVar14;
      pcVar11 = *(code **)(iVar3 + 0xe4);
      *(undefined4 *)(puVar13 + -0x18) = 0x173be4;
      iVar10 = (*pcVar11)();
    }
    else {
      *(int **)(puVar13 + -0x14) = piVar14;
      *(undefined4 *)(puVar13 + -0x18) = 0x173d86;
      iVar10 = (*pcVar4)();
    }
    if (iVar10 != 0x40) {
      *(int *)(puVar13 + -8) = iVar10;
      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";
      *(undefined4 *)(puVar13 + -0x10) = 0x8b;
      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";
                    /* WARNING: Subroutine does not return */
      *(undefined **)(puVar13 + -0x18) = &UNK_00173de1;
      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),
                          *(char **)(puVar13 + -0xc));
    }
    iVar10 = *piVar14;
    pcVar11 = *(code **)(iVar10 + 0xc);
    if (pcVar11 == Relobj::is_big_endian) {
      *(int **)(puVar13 + -0x14) = piVar14;
      pcVar11 = *(code **)(iVar10 + 0xe8);
      *(undefined4 *)(puVar13 + -0x18) = 0x173c0e;
      cVar7 = (*pcVar11)();
      uVar12 = extraout_EDX;
    }
    else {
      *(int **)(puVar13 + -0x14) = piVar14;
      *(undefined4 *)(puVar13 + -0x18) = 0x173d78;
      cVar7 = (*pcVar11)();
      uVar12 = extraout_EDX_00;
    }
    if (cVar7 != '\0') {
      *(undefined4 *)(puVar13 + -8) = uVar12;
      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";
      *(undefined4 *)(puVar13 + -0x10) = 0x7d;
      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";
                    /* WARNING: Subroutine does not return */
      *(undefined4 *)(puVar13 + -0x18) = 0x173dc8;
      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),
                          *(char **)(puVar13 + -0xc));
    }
    *(undefined4 *)(puVar13 + -0x14) = 0x28;
    *(undefined4 *)(puVar13 + -0x18) = 0x173c23;
    puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14));
    uVar12 = *(undefined4 *)(puVar13 + 0x28);
    *puVar9 = &PTR__Sized_elf_reloc_mapper_00335b30;
    uVar5 = *(undefined4 *)(puVar13 + 0x74);
    puVar9[1] = piVar14;
    puVar9[2] = uVar5;
    uVar5 = *(undefined4 *)(puVar13 + 0x24);
    puVar9[4] = uVar12;
    puVar9[5] = 0;
    puVar9[6] = 0;
    puVar9[7] = 0;
    puVar9[8] = 0;
    puVar9[9] = 0;
    puVar9[3] = uVar5;
    pcVar11 = Sized_elf_reloc_mapper<64,_false>::do_initialize;
  }
  *(undefined4 **)(*(int *)(puVar13 + 0x6c) + 0x30) = puVar9;
  *(int *)(puVar13 + -0xc) = iVar18;
  *(uint *)(puVar13 + -0x10) = uVar16;
  *(undefined4 **)(puVar13 + -0x14) = puVar9;
  *(undefined4 *)(puVar13 + -0x18) = 0x173c81;
  (*pcVar11)();
  *(int *)(*(int *)(puVar13 + 0x6c) + 0x34) = iVar18;
  return true;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4
FUN_00173980(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)

{
  uint *puVar1;
  byte *pbVar2;
  int iVar3;
  code *pcVar4;
  undefined4 uVar5;
  char cVar6;
  undefined4 *puVar7;
  undefined4 uVar8;
  int iVar9;
  code *pcVar10;
  undefined4 extraout_ECX;
  undefined4 extraout_ECX_00;
  undefined4 extraout_EDX;
  undefined4 extraout_EDX_00;
  undefined1 *puVar11;
  int *piVar12;
  byte *pbVar13;
  uint uVar14;
  byte *pbVar15;
  int iVar16;
  undefined1 uVar17;
  bool bVar18;
  undefined1 uVar19;
  bool bVar20;
  byte bVar21;
  int aiStack_94 [10];
  undefined1 auStack_6c [8];
  uint local_64 [2];
  char *local_5c [9];
  int local_38;
  undefined1 local_34 [8];
  undefined1 local_2c [24];
  undefined4 uStack_14;
  
  bVar21 = 0;
  uStack_14 = 0x173989;
  local_5c[6] = (char *)param_4;
  local_5c[7] = (char *)param_5;
  if (*(char *)(param_1 + 0x1c) == '\0') {
    local_5c[3] = "gnu_pubnames";
    local_5c[4] = "gnu_pubnames";
  }
  else {
    local_5c[3] = "gnu_pubtypes";
    local_5c[4] = "gnu_pubtypes";
  }
  local_5c[3] = local_5c[3] + 4;
  if (1 < *(uint *)(param_2 + 0x28)) {
    local_64[1] = 1;
    local_5c[0] = local_34;
    local_5c[1] = ".debug_";
    local_5c[2] = local_2c;
    local_5c[5] = ".zdebug_";
    puVar11 = auStack_6c;
    do {
      uVar17 = puVar11 < (undefined1 *)0x4;
      uVar19 = puVar11 == (undefined1 *)0x4;
      iVar9 = **(int **)(puVar11 + 0x74);
      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);
      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);
      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);
      pcVar10 = *(code **)(iVar9 + 0x40);
      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;
      (*pcVar10)();
      iVar9 = 7;
      pbVar2 = *(byte **)(puVar11 + 0x34);
      pbVar13 = *(byte **)(puVar11 + 0x10);
      pbVar15 = pbVar2;
      do {
        if (iVar9 == 0) break;
        iVar9 = iVar9 + -1;
        uVar17 = *pbVar13 < *pbVar15;
        uVar19 = *pbVar13 == *pbVar15;
        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;
        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;
      } while ((bool)uVar19);
      pbVar13 = pbVar2 + 7;
      bVar18 = false;
      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;
      if (bVar20) {
LAB_00173a59:
        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);
        *(byte **)(puVar11 + -0x14) = pbVar13;
        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;
        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));
        if (iVar9 == 0) {
          piVar12 = *(int **)(puVar11 + 0x70);
        }
        else {
          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);
          *(byte **)(puVar11 + -0x14) = pbVar13;
          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;
          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));
          if (iVar9 != 0) goto LAB_00173a85;
          piVar12 = *(int **)(puVar11 + 0x70);
          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;
        }
        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {
          *(byte **)(puVar11 + -0x14) = pbVar2;
          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;
          FUN_001ac470();
        }
        if (*(int *)(puVar11 + 8) == 0) {
          return 0;
        }
        *(undefined4 *)(puVar11 + -0x14) = 0;
        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;
        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);
        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);
        *(int **)(puVar11 + -0x24) = piVar12;
        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;
        iVar9 = FUN_000bf200();
        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;
        if (iVar9 == 0) {
          return 0;
        }
        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);
        iVar9 = *piVar12;
        pcVar10 = *(code **)(iVar9 + 0x18);
        if (pcVar10 != FUN_000944b0) {
          *(int **)(puVar11 + -0x14) = piVar12;
          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;
          uVar8 = (*pcVar10)();
          if ((char)uVar8 != '\0') {
            return uVar8;
          }
          iVar9 = *piVar12;
        }
        uVar14 = piVar12[10];
        iVar16 = 0;
        if (uVar14 == 0) goto LAB_00173b9d;
        uVar14 = 0;
        goto LAB_00173b74;
      }
      iVar9 = 8;
      pbVar13 = *(byte **)(puVar11 + 0x20);
      pbVar15 = pbVar2;
      do {
        if (iVar9 == 0) break;
        iVar9 = iVar9 + -1;
        bVar18 = *pbVar13 < *pbVar15;
        bVar20 = *pbVar13 == *pbVar15;
        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;
        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;
      } while (bVar20);
      pbVar13 = pbVar2 + 8;
      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;
LAB_00173a85:
      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {
        *(byte **)(puVar11 + -0x14) = pbVar2;
        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;
        FUN_001ac470();
      }
      piVar12 = (int *)(puVar11 + 0x70);
      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;
      puVar1 = (uint *)(puVar11 + 8);
      puVar11 = puVar11 + -4;
    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));
  }
  return 0;
LAB_00173b74:
  do {
    *(uint *)(puVar11 + -0x10) = uVar14;
    *(int **)(puVar11 + -0x14) = piVar12;
    pcVar10 = *(code **)(iVar9 + 0x50);
    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;
    iVar16 = (*pcVar10)();
    if ((iVar16 == 9) || (iVar16 == 4)) {
      iVar9 = *piVar12;
      *(uint *)(puVar11 + -0x10) = uVar14;
      *(int **)(puVar11 + -0x14) = piVar12;
      pcVar10 = *(code **)(iVar9 + 0x58);
      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;
      iVar9 = (*pcVar10)();
      if (*(int *)(puVar11 + 8) == iVar9) {
        iVar9 = *piVar12;
        goto LAB_00173b9d;
      }
    }
    uVar14 = uVar14 + 1;
    iVar9 = *piVar12;
  } while (uVar14 < (uint)piVar12[10]);
  uVar14 = 0;
LAB_00173b9d:
  pcVar10 = *(code **)(iVar9 + 8);
  *(code **)(puVar11 + 8) = FUN_00094510;
  if (pcVar10 == FUN_00094510) {
    *(int **)(puVar11 + -0x14) = piVar12;
    pcVar10 = *(code **)(iVar9 + 0xe4);
    *(undefined4 *)(puVar11 + -0x18) = 0x173bbc;
    iVar9 = (*pcVar10)();
    pcVar10 = *(code **)(puVar11 + 8);
  }
  else {
    *(int **)(puVar11 + -0x14) = piVar12;
    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;
    iVar9 = (*pcVar10)();
    pcVar10 = *(code **)(puVar11 + 8);
  }
  iVar3 = *piVar12;
  if (iVar9 == 0x20) {
    pcVar10 = *(code **)(iVar3 + 0xc);
    if (pcVar10 == FUN_00094520) {
      *(int **)(puVar11 + -0x14) = piVar12;
      pcVar10 = *(code **)(iVar3 + 0xe8);
      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;
      cVar6 = (*pcVar10)();
      uVar8 = extraout_ECX;
    }
    else {
      *(int **)(puVar11 + -0x14) = piVar12;
      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;
      cVar6 = (*pcVar10)();
      uVar8 = extraout_ECX_00;
    }
    if (cVar6 != '\0') {
      *(undefined4 *)(puVar11 + -8) = uVar8;
      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";
      *(undefined4 *)(puVar11 + -0x10) = 0x68;
      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";
                    /* WARNING: Subroutine does not return */
      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;
      FUN_0008b620();
    }
    *(undefined4 *)(puVar11 + -0x14) = 0x28;
    *(undefined4 *)(puVar11 + -0x18) = 0x173ce3;
    puVar7 = (undefined4 *)FUN_001aa8c0();
    uVar8 = *(undefined4 *)(puVar11 + 0x28);
    *puVar7 = &PTR_FUN_00335b08;
    uVar5 = *(undefined4 *)(puVar11 + 0x74);
    puVar7[1] = piVar12;
    puVar7[2] = uVar5;
    uVar5 = *(undefined4 *)(puVar11 + 0x24);
    puVar7[4] = uVar8;
    puVar7[3] = uVar5;
    pcVar10 = FUN_001776a0;
    puVar7[5] = 0;
    puVar7[6] = 0;
    puVar7[7] = 0;
    puVar7[8] = 0;
    puVar7[9] = 0;
  }
  else {
    pcVar4 = *(code **)(iVar3 + 8);
    if (pcVar4 == pcVar10) {
      *(int **)(puVar11 + -0x14) = piVar12;
      pcVar10 = *(code **)(iVar3 + 0xe4);
      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;
      iVar9 = (*pcVar10)();
    }
    else {
      *(int **)(puVar11 + -0x14) = piVar12;
      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;
      iVar9 = (*pcVar4)();
    }
    if (iVar9 != 0x40) {
      *(int *)(puVar11 + -8) = iVar9;
      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";
      *(undefined4 *)(puVar11 + -0x10) = 0x8b;
      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";
                    /* WARNING: Subroutine does not return */
      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;
      FUN_0008b620();
    }
    iVar9 = *piVar12;
    pcVar10 = *(code **)(iVar9 + 0xc);
    if (pcVar10 == FUN_00094520) {
      *(int **)(puVar11 + -0x14) = piVar12;
      pcVar10 = *(code **)(iVar9 + 0xe8);
      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;
      cVar6 = (*pcVar10)();
      uVar8 = extraout_EDX;
    }
    else {
      *(int **)(puVar11 + -0x14) = piVar12;
      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;
      cVar6 = (*pcVar10)();
      uVar8 = extraout_EDX_00;
    }
    if (cVar6 != '\0') {
      *(undefined4 *)(puVar11 + -8) = uVar8;
      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";
      *(undefined4 *)(puVar11 + -0x10) = 0x7d;
      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";
                    /* WARNING: Subroutine does not return */
      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;
      FUN_0008b620();
    }
    *(undefined4 *)(puVar11 + -0x14) = 0x28;
    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;
    puVar7 = (undefined4 *)FUN_001aa8c0();
    uVar8 = *(undefined4 *)(puVar11 + 0x28);
    *puVar7 = &PTR_FUN_00335b30;
    uVar5 = *(undefined4 *)(puVar11 + 0x74);
    puVar7[1] = piVar12;
    puVar7[2] = uVar5;
    uVar5 = *(undefined4 *)(puVar11 + 0x24);
    puVar7[4] = uVar8;
    puVar7[5] = 0;
    puVar7[6] = 0;
    puVar7[7] = 0;
    puVar7[8] = 0;
    puVar7[9] = 0;
    puVar7[3] = uVar5;
    pcVar10 = FUN_00177610;
  }
  *(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30) = puVar7;
  *(int *)(puVar11 + -0xc) = iVar16;
  *(uint *)(puVar11 + -0x10) = uVar14;
  *(undefined4 **)(puVar11 + -0x14) = puVar7;
  *(undefined4 *)(puVar11 + -0x18) = 0x173c81;
  (*pcVar10)();
  *(int *)(*(int *)(puVar11 + 0x6c) + 0x34) = iVar16;
  return 1;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00035680
ADD EBX,0x1cb677
SUB ESP,0x5c
MOV EAX,dword ptr [ESP + 0x7c]
MOV EDX,dword ptr [ESP + 0x80]
MOV EBP,dword ptr [ESP + 0x74]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0x2c],EDX
CMP byte ptr [EAX + 0x1c],0x0
JNZ 0x00173ac0
LEA EAX,[EBX + 0xfff1668f]
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[EBX + 0xfff1668b]
MOV dword ptr [ESP + 0x20],EAX
CMP dword ptr [EBP + 0x28],0x1
JBE 0x00173aad
LEA EAX,[ESP + 0x38]
MOV dword ptr [ESP + 0xc],0x1
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBX + 0xfff16d66]
MOV dword ptr [ESP + 0x14],EAX
LEA EAX,[ESP + 0x40]
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0xfff16d6e]
MOV dword ptr [ESP + 0x24],EAX
MOV dword ptr [ESP + 0x74],EBP
LEA ESI,[ESI]
SUB ESP,0x4
MOV EAX,dword ptr [ESP + 0x78]
MOV EAX,dword ptr [EAX]
PUSH dword ptr [ESP + 0x10]
PUSH dword ptr [ESP + 0x7c]
PUSH dword ptr [ESP + 0x1c]
CALL dword ptr [EAX + 0x40]
MOV ECX,0x7
MOV EBP,dword ptr [ESP + 0x44]
MOV ESI,dword ptr [ESP + 0x20]
MOV EDI,EBP
CMPSB.REPE ES:EDI,ESI
LEA ESI,[EBP + 0x7]
SETA AL
SBB AL,0x0
ADD ESP,0xc
TEST AL,AL
JZ 0x00173a59
MOV ESI,dword ptr [ESP + 0x24]
MOV ECX,0x8
MOV EDI,EBP
CMPSB.REPE ES:EDI,ESI
LEA ESI,[EBP + 0x8]
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00173a85
SUB ESP,0x8
PUSH dword ptr [ESP + 0x24]
PUSH ESI
CALL 0x00028b10
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00173ae0
SUB ESP,0x8
PUSH dword ptr [ESP + 0x28]
PUSH ESI
CALL 0x00028b10
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00173ca0
CMP EBP,dword ptr [ESP + 0x18]
JZ 0x00173a97
SUB ESP,0xc
PUSH EBP
CALL 0x001ac470
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x74]
ADD dword ptr [ESP + 0xc],0x1
MOV EAX,dword ptr [ESP + 0xc]
CMP EAX,dword ptr [EDX + 0x28]
JC 0x00173a08
XOR EAX,EAX
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBX + 0xfff1669c]
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[EBX + 0xfff16698]
MOV dword ptr [ESP + 0x20],EAX
JMP 0x001739cb
MOV EDX,EBP
MOV EBP,dword ptr [ESP + 0x74]
CMP EDX,dword ptr [ESP + 0x18]
JZ 0x00173af8
SUB ESP,0xc
PUSH EDX
CALL 0x001ac470
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
TEST EDX,EDX
JZ 0x00173aad
SUB ESP,0xc
PUSH 0x0
MOV EAX,dword ptr [ESP + 0x80]
ADD EAX,0xc
PUSH EAX
PUSH dword ptr [ESP + 0x24]
PUSH EDX
PUSH EBP
CALL 0x000bf200
MOV EDX,dword ptr [ESP + 0x90]
ADD ESP,0x20
MOV dword ptr [EDX + 0x4],EAX
TEST EAX,EAX
JZ 0x00173aad
MOV ECX,dword ptr [ESP + 0x70]
ADD EAX,dword ptr [ESP + 0x38]
MOV dword ptr [ECX + 0x8],EAX
MOV EAX,dword ptr [EBP]
LEA ECX,[EBX + 0xffd554b0]
MOV EDX,dword ptr [EAX + 0x18]
CMP EDX,ECX
JNZ 0x00173d47
MOV ESI,dword ptr [EBP + 0x28]
XOR EDI,EDI
TEST ESI,ESI
JZ 0x00173b9d
XOR ESI,ESI
JMP 0x00173b74
CMP EAX,0x4
JZ 0x00173b86
ADD ESI,0x1
MOV EAX,dword ptr [EBP]
CMP ESI,dword ptr [EBP + 0x28]
JNC 0x00173d40
SUB ESP,0x8
PUSH ESI
PUSH EBP
CALL dword ptr [EAX + 0x50]
MOV EDI,EAX
ADD ESP,0x10
CMP EAX,0x9
JNZ 0x00173b60
SUB ESP,0x8
MOV EAX,dword ptr [EBP]
PUSH ESI
PUSH EBP
CALL dword ptr [EAX + 0x58]
ADD ESP,0x10
CMP dword ptr [ESP + 0xc],EAX
JNZ 0x00173b65
MOV EAX,dword ptr [EBP]
MOV EDX,dword ptr [EAX + 0x8]
LEA ECX,[EBX + 0xffd55510]
MOV dword ptr [ESP + 0xc],ECX
CMP EDX,ECX
JNZ 0x00173d60
SUB ESP,0xc
PUSH EBP
CALL dword ptr [EAX + 0xe4]
MOV ECX,dword ptr [ESP + 0x1c]
ADD ESP,0x10
MOV EDX,dword ptr [EBP]
CMP EAX,0x20
JZ 0x00173cb3
MOV EAX,dword ptr [EDX + 0x8]
CMP EAX,ECX
JNZ 0x00173d80
SUB ESP,0xc
PUSH EBP
CALL dword ptr [EDX + 0xe4]
ADD ESP,0x10
CMP EAX,0x40
JNZ 0x00173dc8
MOV EAX,dword ptr [EBP]
LEA ECX,[EBX + 0xffd55520]
MOV EDX,dword ptr [EAX + 0xc]
CMP EDX,ECX
JNZ 0x00173d72
SUB ESP,0xc
PUSH EBP
CALL dword ptr [EAX + 0xe8]
ADD ESP,0x10
TEST AL,AL
JNZ 0x00173db2
SUB ESP,0xc
PUSH 0x28
CALL 0x001aa8c0
LEA EDX,[EBX + 0xffff6b30]
MOV ECX,dword ptr [ESP + 0x3c]
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [ESP + 0x88]
MOV dword ptr [EAX + 0x4],EBP
MOV dword ptr [EAX + 0x8],EDX
MOV EDX,dword ptr [ESP + 0x38]
ADD ESP,0x10
MOV dword ptr [EAX + 0x10],ECX
MOV dword ptr [EAX + 0x14],0x0
MOV dword ptr [EAX + 0x18],0x0
MOV dword ptr [EAX + 0x1c],0x0
MOV dword ptr [EAX + 0x20],0x0
MOV dword ptr [EAX + 0x24],0x0
MOV dword ptr [EAX + 0xc],EDX
LEA EDX,[EBX + 0xffe38610]
MOV ECX,dword ptr [ESP + 0x70]
SUB ESP,0x4
MOV dword ptr [ECX + 0x30],EAX
PUSH EDI
PUSH ESI
PUSH EAX
CALL EDX
MOV EAX,dword ptr [ESP + 0x80]
ADD ESP,0x10
MOV dword ptr [EAX + 0x34],EDI
MOV EAX,0x1
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x70]
MOV EDX,EBP
MOV EBP,dword ptr [ESP + 0x74]
MOV byte ptr [EAX + 0x1d],0x1
JMP 0x00173ae6
MOV EAX,dword ptr [EDX + 0xc]
LEA ECX,[EBX + 0xffd55520]
CMP EAX,ECX
JNZ 0x00173d8e
SUB ESP,0xc
PUSH EBP
CALL dword ptr [EDX + 0xe8]
ADD ESP,0x10
TEST AL,AL
JNZ 0x00173d9c
SUB ESP,0xc
PUSH 0x28
CALL 0x001aa8c0
LEA EDX,[EBX + 0xffff6b08]
MOV ECX,dword ptr [ESP + 0x3c]
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [ESP + 0x88]
MOV dword ptr [EAX + 0x4],EBP
MOV dword ptr [EAX + 0x8],EDX
MOV EDX,dword ptr [ESP + 0x38]
ADD ESP,0x10
MOV dword ptr [EAX + 0x10],ECX
MOV dword ptr [EAX + 0xc],EDX
LEA EDX,[EBX + 0xffe386a0]
MOV dword ptr [EAX + 0x14],0x0
MOV dword ptr [EAX + 0x18],0x0
MOV dword ptr [EAX + 0x1c],0x0
MOV dword ptr [EAX + 0x20],0x0
MOV dword ptr [EAX + 0x24],0x0
JMP 0x00173c72
XOR ESI,ESI
JMP 0x00173b9d
SUB ESP,0xc
PUSH EBP
CALL EDX
ADD ESP,0x10
TEST AL,AL
JNZ 0x00173aaf
MOV EAX,dword ptr [EBP]
JMP 0x00173b4b
SUB ESP,0xc
PUSH EBP
CALL EDX
MOV ECX,dword ptr [ESP + 0x1c]
ADD ESP,0x10
JMP 0x00173bc3
SUB ESP,0xc
PUSH EBP
CALL EDX
ADD ESP,0x10
JMP 0x00173c11
SUB ESP,0xc
PUSH EBP
CALL EAX
ADD ESP,0x10
JMP 0x00173be7
SUB ESP,0xc
PUSH EBP
CALL EAX
ADD ESP,0x10
JMP 0x00173cd1
LEA EAX,[EBX + 0xfff28a1c]
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xfff28763]
PUSH 0x68
PUSH EAX
CALL 0x0008b620
LEA EAX,[EBX + 0xfff28a1c]
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xfff28763]
PUSH 0x7d
PUSH EAX
CALL 0x0008b620
PUSH EAX
LEA EAX,[EBX + 0xfff28a1c]
PUSH EAX
LEA EAX,[EBX + 0xfff28763]
PUSH 0x8b
PUSH EAX
CALL 0x0008b620
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4\nFUN_00173980(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  uint *puVar1;\n  byte *pbVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined4 uVar5;\n  char cVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  code *pcVar10;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined1 *puVar11;\n  int *piVar12;\n  byte *pbVar13;\n  uint uVar14;\n  byte *pbVar15;\n  int iVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  byte bVar21;\n  int aiStack_94 [10];\n  undefined1 auStack_6c [8];\n  uint local_64 [2];\n  char *local_5c [9];\n  int local_38;\n  undefined1 local_34 [8];\n  undefined1 local_2c [24];\n  undefined4 uStack_14;\n  \n  bVar21 = 0;\n  uStack_14 = 0x173989;\n  local_5c[6] = (char *)param_4;\n  local_5c[7] = (char *)param_5;\n  if (*(char *)(param_1 + 0x1c) == '\0') {\n    local_5c[3] = "gnu_pubnames";\n    local_5c[4] = "gnu_pubnames";\n  }\n  else {\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }\n  local_5c[3] = local_5c[3] + 4;\n  if (1 < *(uint *)(param_2 + 0x28)) {\n    local_64[1] = 1;\n    local_5c[0] = local_34;\n    local_5c[1] = ".debug_";\n    local_5c[2] = local_2c;\n    local_5c[5] = ".zdebug_";\n    puVar11 = auStack_6c;\n    do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));\n  }\n  return 0;\nLAB_00173b74:\n  do {\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  } while (uVar14 < (uint)piVar12[10]);\n  uVar14 = 0;\nLAB_00173b9d:\n  pcVar10 = *(code **)(iVar9 + 8);\n  *(code **)(puVar11 + 8) = FUN_00094510;\n  if (pcVar10 == FUN_00094510) {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xe4);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173bbc;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  else {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  iVar3 = *piVar12;\n  if (iVar9 == 0x20) {\n    pcVar10 = *(code **)(iVar3 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173ce3;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b08;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_001776a0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n  }\n  else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }\n  *(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30) = puVar7;\n  *(int *)(puVar11 + -0xc) = iVar16;\n  *(uint *)(puVar11 + -0x10) = uVar14;\n  *(undefined4 **)(puVar11 + -0x14) = puVar7;\n  *(undefined4 *)(puVar11 + -0x18) = 0x173c81;\n  (*pcVar10)();\n  *(int *)(*(int *)(puVar11 + 0x6c) + 0x34) = iVar16;\n  return 1;\n}\n\n" comment (function_definition "undefined4\nFUN_00173980(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  uint *puVar1;\n  byte *pbVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined4 uVar5;\n  char cVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  code *pcVar10;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined1 *puVar11;\n  int *piVar12;\n  byte *pbVar13;\n  uint uVar14;\n  byte *pbVar15;\n  int iVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  byte bVar21;\n  int aiStack_94 [10];\n  undefined1 auStack_6c [8];\n  uint local_64 [2];\n  char *local_5c [9];\n  int local_38;\n  undefined1 local_34 [8];\n  undefined1 local_2c [24];\n  undefined4 uStack_14;\n  \n  bVar21 = 0;\n  uStack_14 = 0x173989;\n  local_5c[6] = (char *)param_4;\n  local_5c[7] = (char *)param_5;\n  if (*(char *)(param_1 + 0x1c) == '\0') {\n    local_5c[3] = "gnu_pubnames";\n    local_5c[4] = "gnu_pubnames";\n  }\n  else {\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }\n  local_5c[3] = local_5c[3] + 4;\n  if (1 < *(uint *)(param_2 + 0x28)) {\n    local_64[1] = 1;\n    local_5c[0] = local_34;\n    local_5c[1] = ".debug_";\n    local_5c[2] = local_2c;\n    local_5c[5] = ".zdebug_";\n    puVar11 = auStack_6c;\n    do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));\n  }\n  return 0;\nLAB_00173b74:\n  do {\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  } while (uVar14 < (uint)piVar12[10]);\n  uVar14 = 0;\nLAB_00173b9d:\n  pcVar10 = *(code **)(iVar9 + 8);\n  *(code **)(puVar11 + 8) = FUN_00094510;\n  if (pcVar10 == FUN_00094510) {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xe4);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173bbc;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  else {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  iVar3 = *piVar12;\n  if (iVar9 == 0x20) {\n    pcVar10 = *(code **)(iVar3 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173ce3;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b08;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_001776a0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n  }\n  else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }\n  *(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30) = puVar7;\n  *(int *)(puVar11 + -0xc) = iVar16;\n  *(uint *)(puVar11 + -0x10) = uVar14;\n  *(undefined4 **)(puVar11 + -0x14) = puVar7;\n  *(undefined4 *)(puVar11 + -0x18) = 0x173c81;\n  (*pcVar10)();\n  *(int *)(*(int *)(puVar11 + 0x6c) + 0x34) = iVar16;\n  return 1;\n}" type_identifier (function_declarator "FUN_00173980(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)" identifier (parameter_list "(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  uint *puVar1;\n  byte *pbVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined4 uVar5;\n  char cVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  code *pcVar10;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined1 *puVar11;\n  int *piVar12;\n  byte *pbVar13;\n  uint uVar14;\n  byte *pbVar15;\n  int iVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  byte bVar21;\n  int aiStack_94 [10];\n  undefined1 auStack_6c [8];\n  uint local_64 [2];\n  char *local_5c [9];\n  int local_38;\n  undefined1 local_34 [8];\n  undefined1 local_2c [24];\n  undefined4 uStack_14;\n  \n  bVar21 = 0;\n  uStack_14 = 0x173989;\n  local_5c[6] = (char *)param_4;\n  local_5c[7] = (char *)param_5;\n  if (*(char *)(param_1 + 0x1c) == '\0') {\n    local_5c[3] = "gnu_pubnames";\n    local_5c[4] = "gnu_pubnames";\n  }\n  else {\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }\n  local_5c[3] = local_5c[3] + 4;\n  if (1 < *(uint *)(param_2 + 0x28)) {\n    local_64[1] = 1;\n    local_5c[0] = local_34;\n    local_5c[1] = ".debug_";\n    local_5c[2] = local_2c;\n    local_5c[5] = ".zdebug_";\n    puVar11 = auStack_6c;\n    do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));\n  }\n  return 0;\nLAB_00173b74:\n  do {\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  } while (uVar14 < (uint)piVar12[10]);\n  uVar14 = 0;\nLAB_00173b9d:\n  pcVar10 = *(code **)(iVar9 + 8);\n  *(code **)(puVar11 + 8) = FUN_00094510;\n  if (pcVar10 == FUN_00094510) {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xe4);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173bbc;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  else {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  iVar3 = *piVar12;\n  if (iVar9 == 0x20) {\n    pcVar10 = *(code **)(iVar3 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173ce3;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b08;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_001776a0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n  }\n  else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }\n  *(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30) = puVar7;\n  *(int *)(puVar11 + -0xc) = iVar16;\n  *(uint *)(puVar11 + -0x10) = uVar14;\n  *(undefined4 **)(puVar11 + -0x14) = puVar7;\n  *(undefined4 *)(puVar11 + -0x18) = 0x173c81;\n  (*pcVar10)();\n  *(int *)(*(int *)(puVar11 + 0x6c) + 0x34) = iVar16;\n  return 1;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined1 uVar17;" type_identifier identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "undefined1 uVar19;" type_identifier identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "int aiStack_94 [10];" primitive_type (array_declarator "aiStack_94 [10]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_6c [8];" type_identifier (array_declarator "auStack_6c [8]" identifier [ number_literal ]) ;) (declaration "uint local_64 [2];" type_identifier (array_declarator "local_64 [2]" identifier [ number_literal ]) ;) (declaration "char *local_5c [9];" primitive_type (pointer_declarator "*local_5c [9]" * (array_declarator "local_5c [9]" identifier [ number_literal ])) ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "undefined1 local_34 [8];" type_identifier (array_declarator "local_34 [8]" identifier [ number_literal ]) ;) (declaration "undefined1 local_2c [24];" type_identifier (array_declarator "local_2c [24]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x173989;" (assignment_expression "uStack_14 = 0x173989" identifier = number_literal) ;) (expression_statement "local_5c[6] = (char *)param_4;" (assignment_expression "local_5c[6] = (char *)param_4" (subscript_expression "local_5c[6]" identifier [ number_literal ]) = (cast_expression "(char *)param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_5c[7] = (char *)param_5;" (assignment_expression "local_5c[7] = (char *)param_5" (subscript_expression "local_5c[7]" identifier [ number_literal ]) = (cast_expression "(char *)param_5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(char *)(param_1 + 0x1c) == '\0') {\n    local_5c[3] = "gnu_pubnames";\n    local_5c[4] = "gnu_pubnames";\n  }\n  else {\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }" if (parenthesized_expression "(*(char *)(param_1 + 0x1c) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x1c) == '\0'" (pointer_expression "*(char *)(param_1 + 0x1c)" * (cast_expression "(char *)(param_1 + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_5c[3] = "gnu_pubnames";\n    local_5c[4] = "gnu_pubnames";\n  }" { (expression_statement "local_5c[3] = "gnu_pubnames";" (assignment_expression "local_5c[3] = "gnu_pubnames"" (subscript_expression "local_5c[3]" identifier [ number_literal ]) = (string_literal ""gnu_pubnames"" " string_content ")) ;) (expression_statement "local_5c[4] = "gnu_pubnames";" (assignment_expression "local_5c[4] = "gnu_pubnames"" (subscript_expression "local_5c[4]" identifier [ number_literal ]) = (string_literal ""gnu_pubnames"" " string_content ")) ;) }) (else_clause "else {\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }" else (compound_statement "{\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }" { (expression_statement "local_5c[3] = "gnu_pubtypes";" (assignment_expression "local_5c[3] = "gnu_pubtypes"" (subscript_expression "local_5c[3]" identifier [ number_literal ]) = (string_literal ""gnu_pubtypes"" " string_content ")) ;) (expression_statement "local_5c[4] = "gnu_pubtypes";" (assignment_expression "local_5c[4] = "gnu_pubtypes"" (subscript_expression "local_5c[4]" identifier [ number_literal ]) = (string_literal ""gnu_pubtypes"" " string_content ")) ;) }))) (expression_statement "local_5c[3] = local_5c[3] + 4;" (assignment_expression "local_5c[3] = local_5c[3] + 4" (subscript_expression "local_5c[3]" identifier [ number_literal ]) = (binary_expression "local_5c[3] + 4" (subscript_expression "local_5c[3]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (1 < *(uint *)(param_2 + 0x28)) {\n    local_64[1] = 1;\n    local_5c[0] = local_34;\n    local_5c[1] = ".debug_";\n    local_5c[2] = local_2c;\n    local_5c[5] = ".zdebug_";\n    puVar11 = auStack_6c;\n    do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));\n  }" if (parenthesized_expression "(1 < *(uint *)(param_2 + 0x28))" ( (binary_expression "1 < *(uint *)(param_2 + 0x28)" number_literal < (pointer_expression "*(uint *)(param_2 + 0x28)" * (cast_expression "(uint *)(param_2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    local_64[1] = 1;\n    local_5c[0] = local_34;\n    local_5c[1] = ".debug_";\n    local_5c[2] = local_2c;\n    local_5c[5] = ".zdebug_";\n    puVar11 = auStack_6c;\n    do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));\n  }" { (expression_statement "local_64[1] = 1;" (assignment_expression "local_64[1] = 1" (subscript_expression "local_64[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_5c[0] = local_34;" (assignment_expression "local_5c[0] = local_34" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_5c[1] = ".debug_";" (assignment_expression "local_5c[1] = ".debug_"" (subscript_expression "local_5c[1]" identifier [ number_literal ]) = (string_literal "".debug_"" " string_content ")) ;) (expression_statement "local_5c[2] = local_2c;" (assignment_expression "local_5c[2] = local_2c" (subscript_expression "local_5c[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_5c[5] = ".zdebug_";" (assignment_expression "local_5c[5] = ".zdebug_"" (subscript_expression "local_5c[5]" identifier [ number_literal ]) = (string_literal "".zdebug_"" " string_content ")) ;) (expression_statement "puVar11 = auStack_6c;" (assignment_expression "puVar11 = auStack_6c" identifier = identifier) ;) (do_statement "do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));" do (compound_statement "{\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    }" { (expression_statement "uVar17 = puVar11 < (undefined1 *)0x4;" (assignment_expression "uVar17 = puVar11 < (undefined1 *)0x4" identifier = (binary_expression "puVar11 < (undefined1 *)0x4" identifier < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar19 = puVar11 == (undefined1 *)0x4;" (assignment_expression "uVar19 = puVar11 == (undefined1 *)0x4" identifier = (binary_expression "puVar11 == (undefined1 *)0x4" identifier == (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar9 = **(int **)(puVar11 + 0x74);" (assignment_expression "iVar9 = **(int **)(puVar11 + 0x74)" identifier = (pointer_expression "**(int **)(puVar11 + 0x74)" * (pointer_expression "*(int **)(puVar11 + 0x74)" * (cast_expression "(int **)(puVar11 + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x74)" ( (binary_expression "puVar11 + 0x74" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);" (assignment_expression "*(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc)" (pointer_expression "*(undefined4 *)(puVar11 + -8)" * (cast_expression "(undefined4 *)(puVar11 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -8)" ( (binary_expression "puVar11 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" * (cast_expression "(undefined4 *)(puVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);" (assignment_expression "*(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74)" (pointer_expression "*(undefined4 *)(puVar11 + -0xc)" * (cast_expression "(undefined4 *)(puVar11 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 0x74)" * (cast_expression "(undefined4 *)(puVar11 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x74)" ( (binary_expression "puVar11 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10)" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" * (cast_expression "(undefined4 *)(puVar11 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 0x10)" * (cast_expression "(undefined4 *)(puVar11 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar10 = *(code **)(iVar9 + 0x40);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0x40)" identifier = (pointer_expression "*(code **)(iVar9 + 0x40)" * (cast_expression "(code **)(iVar9 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0x173a20;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0x173a20" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" * (cast_expression "(undefined4 *)(puVar11 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar2 = *(byte **)(puVar11 + 0x34);" (assignment_expression "pbVar2 = *(byte **)(puVar11 + 0x34)" identifier = (pointer_expression "*(byte **)(puVar11 + 0x34)" * (cast_expression "(byte **)(puVar11 + 0x34)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x34)" ( (binary_expression "puVar11 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "pbVar13 = *(byte **)(puVar11 + 0x10);" (assignment_expression "pbVar13 = *(byte **)(puVar11 + 0x10)" identifier = (pointer_expression "*(byte **)(puVar11 + 0x10)" * (cast_expression "(byte **)(puVar11 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pbVar15 = pbVar2;" (assignment_expression "pbVar15 = pbVar2" identifier = identifier) ;) (do_statement "do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);" do (compound_statement "{\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar17 = *pbVar13 < *pbVar15;" (assignment_expression "uVar17 = *pbVar13 < *pbVar15" identifier = (binary_expression "*pbVar13 < *pbVar15" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "uVar19 = *pbVar13 == *pbVar15;" (assignment_expression "uVar19 = *pbVar13 == *pbVar15" identifier = (binary_expression "*pbVar13 == *pbVar15" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar21 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar21 * -2" identifier + (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar21 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar21 * -2" identifier + (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar19)" ( (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "pbVar13 = pbVar2 + 7;" (assignment_expression "pbVar13 = pbVar2 + 7" identifier = (binary_expression "pbVar2 + 7" identifier + number_literal)) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;" (assignment_expression "bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" identifier = (binary_expression "(!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (parenthesized_expression "(!(bool)uVar17 && !(bool)uVar19)" ( (binary_expression "!(bool)uVar17 && !(bool)uVar19" (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }" if (parenthesized_expression "(bVar20)" ( identifier )) (compound_statement "{\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }" { (labeled_statement "LAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);" statement_identifier : (expression_statement "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18)" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" * (cast_expression "(undefined4 *)(puVar11 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 0x18)" * (cast_expression "(undefined4 *)(puVar11 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x18)" ( (binary_expression "puVar11 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "*(byte **)(puVar11 + -0x14) = pbVar13;" (assignment_expression "*(byte **)(puVar11 + -0x14) = pbVar13" (pointer_expression "*(byte **)(puVar11 + -0x14)" * (cast_expression "(byte **)(puVar11 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173a66;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173a66" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));" (assignment_expression "iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" identifier = (call_expression "strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" identifier (argument_list "(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" ( (pointer_expression "*(char **)(puVar11 + -0x14)" * (cast_expression "(char **)(puVar11 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar11 + -0x10)" * (cast_expression "(char **)(puVar11 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }" { (expression_statement "piVar12 = *(int **)(puVar11 + 0x70);" (assignment_expression "piVar12 = *(int **)(puVar11 + 0x70)" identifier = (pointer_expression "*(int **)(puVar11 + 0x70)" * (cast_expression "(int **)(puVar11 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x70)" ( (binary_expression "puVar11 + 0x70" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }" else (compound_statement "{\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }" { (expression_statement "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c)" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" * (cast_expression "(undefined4 *)(puVar11 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 0x1c)" * (cast_expression "(undefined4 *)(puVar11 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x1c)" ( (binary_expression "puVar11 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar11 + -0x14) = pbVar13;" (assignment_expression "*(byte **)(puVar11 + -0x14) = pbVar13" (pointer_expression "*(byte **)(puVar11 + -0x14)" * (cast_expression "(byte **)(puVar11 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173a7a;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173a7a" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));" (assignment_expression "iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" identifier = (call_expression "strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" identifier (argument_list "(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" ( (pointer_expression "*(char **)(puVar11 + -0x14)" * (cast_expression "(char **)(puVar11 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar11 + -0x10)" * (cast_expression "(char **)(puVar11 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar9 != 0) goto LAB_00173a85;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00173a85;" goto statement_identifier ;)) (expression_statement "piVar12 = *(int **)(puVar11 + 0x70);" (assignment_expression "piVar12 = *(int **)(puVar11 + 0x70)" identifier = (pointer_expression "*(int **)(puVar11 + 0x70)" * (cast_expression "(int **)(puVar11 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x70)" ( (binary_expression "puVar11 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;" (assignment_expression "*(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1" (pointer_expression "*(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d)" * (cast_expression "(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x6c) + 0x1d)" ( (binary_expression "*(int *)(puVar11 + 0x6c) + 0x1d" (pointer_expression "*(int *)(puVar11 + 0x6c)" * (cast_expression "(int *)(puVar11 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x6c)" ( (binary_expression "puVar11 + 0x6c" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) }))) (if_statement "if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }" if (parenthesized_expression "(pbVar2 != *(byte **)(puVar11 + 0x14))" ( (binary_expression "pbVar2 != *(byte **)(puVar11 + 0x14)" identifier != (pointer_expression "*(byte **)(puVar11 + 0x14)" * (cast_expression "(byte **)(puVar11 + 0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }" { (expression_statement "*(byte **)(puVar11 + -0x14) = pbVar2;" (assignment_expression "*(byte **)(puVar11 + -0x14) = pbVar2" (pointer_expression "*(byte **)(puVar11 + -0x14)" * (cast_expression "(byte **)(puVar11 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173af5;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173af5" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001ac470();" (call_expression "FUN_001ac470()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }" if (parenthesized_expression "(*(int *)(puVar11 + 8) == 0)" ( (binary_expression "*(int *)(puVar11 + 8) == 0" (pointer_expression "*(int *)(puVar11 + 8)" * (cast_expression "(int *)(puVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" * (cast_expression "(undefined4 *)(puVar11 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;" (assignment_expression "*(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc" (pointer_expression "*(int *)(puVar11 + -0x18)" * (cast_expression "(int *)(puVar11 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar11 + 0x6c) + 0xc" (pointer_expression "*(int *)(puVar11 + 0x6c)" * (cast_expression "(int *)(puVar11 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x6c)" ( (binary_expression "puVar11 + 0x6c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);" (assignment_expression "*(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc)" (pointer_expression "*(undefined4 *)(puVar11 + -0x1c)" * (cast_expression "(undefined4 *)(puVar11 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x1c)" ( (binary_expression "puVar11 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" * (cast_expression "(undefined4 *)(puVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);" (assignment_expression "*(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8)" (pointer_expression "*(int *)(puVar11 + -0x20)" * (cast_expression "(int *)(puVar11 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x20)" ( (binary_expression "puVar11 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(int *)(puVar11 + 8)" * (cast_expression "(int *)(puVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar11 + -0x24) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x24) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x24)" * (cast_expression "(int **)(puVar11 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x24)" ( (binary_expression "puVar11 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x28) = 0x173b1b;" (assignment_expression "*(undefined4 *)(puVar11 + -0x28) = 0x173b1b" (pointer_expression "*(undefined4 *)(puVar11 + -0x28)" * (cast_expression "(undefined4 *)(puVar11 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x28)" ( (binary_expression "puVar11 + -0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = FUN_000bf200();" (assignment_expression "iVar9 = FUN_000bf200()" identifier = (call_expression "FUN_000bf200()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;" (assignment_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9" (pointer_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 4)" * (cast_expression "(int *)(*(int *)(puVar11 + 0x6c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x6c) + 4)" ( (binary_expression "*(int *)(puVar11 + 0x6c) + 4" (pointer_expression "*(int *)(puVar11 + 0x6c)" * (cast_expression "(int *)(puVar11 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x6c)" ( (binary_expression "puVar11 + 0x6c" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (if_statement "if (iVar9 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);" (assignment_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34)" (pointer_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 8)" * (cast_expression "(int *)(*(int *)(puVar11 + 0x6c) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x6c) + 8)" ( (binary_expression "*(int *)(puVar11 + 0x6c) + 8" (pointer_expression "*(int *)(puVar11 + 0x6c)" * (cast_expression "(int *)(puVar11 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x6c)" ( (binary_expression "puVar11 + 0x6c" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "iVar9 + *(int *)(puVar11 + 0x34)" identifier + (pointer_expression "*(int *)(puVar11 + 0x34)" * (cast_expression "(int *)(puVar11 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x34)" ( (binary_expression "puVar11 + 0x34" identifier + number_literal) )))))) ;) (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "pcVar10 = *(code **)(iVar9 + 0x18);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0x18)" identifier = (pointer_expression "*(code **)(iVar9 + 0x18)" * (cast_expression "(code **)(iVar9 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }" if (parenthesized_expression "(pcVar10 != FUN_000944b0)" ( (binary_expression "pcVar10 != FUN_000944b0" identifier != identifier) )) (compound_statement "{\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173d4d;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173d4d" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar8 = (*pcVar10)();" (assignment_expression "uVar8 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if ((char)uVar8 != '\0') {\n            return uVar8;\n          }" if (parenthesized_expression "((char)uVar8 != '\0')" ( (binary_expression "(char)uVar8 != '\0'" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            return uVar8;\n          }" { (return_statement "return uVar8;" return identifier ;) })) (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) })) (expression_statement "uVar14 = piVar12[10];" (assignment_expression "uVar14 = piVar12[10]" identifier = (subscript_expression "piVar12[10]" identifier [ number_literal ])) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (if_statement "if (uVar14 == 0) goto LAB_00173b9d;" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00173b9d;" goto statement_identifier ;)) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00173b74;" goto statement_identifier ;) })) (expression_statement "iVar9 = 8;" (assignment_expression "iVar9 = 8" identifier = number_literal) ;) (expression_statement "pbVar13 = *(byte **)(puVar11 + 0x20);" (assignment_expression "pbVar13 = *(byte **)(puVar11 + 0x20)" identifier = (pointer_expression "*(byte **)(puVar11 + 0x20)" * (cast_expression "(byte **)(puVar11 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x20)" ( (binary_expression "puVar11 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pbVar15 = pbVar2;" (assignment_expression "pbVar15 = pbVar2" identifier = identifier) ;) (do_statement "do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);" do (compound_statement "{\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar13 < *pbVar15;" (assignment_expression "bVar18 = *pbVar13 < *pbVar15" identifier = (binary_expression "*pbVar13 < *pbVar15" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar20 = *pbVar13 == *pbVar15;" (assignment_expression "bVar20 = *pbVar13 == *pbVar15" identifier = (binary_expression "*pbVar13 == *pbVar15" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar21 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar21 * -2" identifier + (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar21 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar21 * -2" identifier + (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "pbVar13 = pbVar2 + 8;" (assignment_expression "pbVar13 = pbVar2 + 8" identifier = (binary_expression "pbVar2 + 8" identifier + number_literal)) ;) (if_statement "if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;" if (parenthesized_expression "((!bVar18 && !bVar20) == bVar18)" ( (binary_expression "(!bVar18 && !bVar20) == bVar18" (parenthesized_expression "(!bVar18 && !bVar20)" ( (binary_expression "!bVar18 && !bVar20" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_00173a59;" goto statement_identifier ;)) (labeled_statement "LAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }" statement_identifier : (if_statement "if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }" if (parenthesized_expression "(pbVar2 != *(byte **)(puVar11 + 0x14))" ( (binary_expression "pbVar2 != *(byte **)(puVar11 + 0x14)" identifier != (pointer_expression "*(byte **)(puVar11 + 0x14)" * (cast_expression "(byte **)(puVar11 + 0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }" { (expression_statement "*(byte **)(puVar11 + -0x14) = pbVar2;" (assignment_expression "*(byte **)(puVar11 + -0x14) = pbVar2" (pointer_expression "*(byte **)(puVar11 + -0x14)" * (cast_expression "(byte **)(puVar11 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173a94;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173a94" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001ac470();" (call_expression "FUN_001ac470()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "piVar12 = (int *)(puVar11 + 0x70);" (assignment_expression "piVar12 = (int *)(puVar11 + 0x70)" identifier = (cast_expression "(int *)(puVar11 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x70)" ( (binary_expression "puVar11 + 0x70" identifier + number_literal) )))) ;) (expression_statement "*(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;" (assignment_expression "*(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1" (pointer_expression "*(int *)(puVar11 + 8)" * (cast_expression "(int *)(puVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar11 + 8) + 1" (pointer_expression "*(int *)(puVar11 + 8)" * (cast_expression "(int *)(puVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar1 = (uint *)(puVar11 + 8);" (assignment_expression "puVar1 = (uint *)(puVar11 + 8)" identifier = (cast_expression "(uint *)(puVar11 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) ;) (expression_statement "puVar11 = puVar11 + -4;" (assignment_expression "puVar11 = puVar11 + -4" identifier = (binary_expression "puVar11 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*puVar1 < *(uint *)(*piVar12 + 0x28))" ( (binary_expression "*puVar1 < *(uint *)(*piVar12 + 0x28)" (pointer_expression "*puVar1" * identifier) < (pointer_expression "*(uint *)(*piVar12 + 0x28)" * (cast_expression "(uint *)(*piVar12 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar12 + 0x28)" ( (binary_expression "*piVar12 + 0x28" (pointer_expression "*piVar12" * identifier) + number_literal) ))))) )) ;) })) (return_statement "return 0;" return number_literal ;) (labeled_statement "LAB_00173b74:\n  do {\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  } while (uVar14 < (uint)piVar12[10]);" statement_identifier : (do_statement "do {\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  } while (uVar14 < (uint)piVar12[10]);" do (compound_statement "{\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  }" { (expression_statement "*(uint *)(puVar11 + -0x10) = uVar14;" (assignment_expression "*(uint *)(puVar11 + -0x10) = uVar14" (pointer_expression "*(uint *)(puVar11 + -0x10)" * (cast_expression "(uint *)(puVar11 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar10 = *(code **)(iVar9 + 0x50);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0x50)" identifier = (pointer_expression "*(code **)(iVar9 + 0x50)" * (cast_expression "(code **)(iVar9 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x50)" ( (binary_expression "iVar9 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173b7c;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173b7c" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar16 = (*pcVar10)();" (assignment_expression "iVar16 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }" if (parenthesized_expression "((iVar16 == 9) || (iVar16 == 4))" ( (binary_expression "(iVar16 == 9) || (iVar16 == 4)" (parenthesized_expression "(iVar16 == 9)" ( (binary_expression "iVar16 == 9" identifier == number_literal) )) || (parenthesized_expression "(iVar16 == 4)" ( (binary_expression "iVar16 == 4" identifier == number_literal) ))) )) (compound_statement "{\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }" { (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "*(uint *)(puVar11 + -0x10) = uVar14;" (assignment_expression "*(uint *)(puVar11 + -0x10) = uVar14" (pointer_expression "*(uint *)(puVar11 + -0x10)" * (cast_expression "(uint *)(puVar11 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar10 = *(code **)(iVar9 + 0x58);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0x58)" identifier = (pointer_expression "*(code **)(iVar9 + 0x58)" * (cast_expression "(code **)(iVar9 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x58)" ( (binary_expression "iVar9 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173b91;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173b91" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = (*pcVar10)();" (assignment_expression "iVar9 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }" if (parenthesized_expression "(*(int *)(puVar11 + 8) == iVar9)" ( (binary_expression "*(int *)(puVar11 + 8) == iVar9" (pointer_expression "*(int *)(puVar11 + 8)" * (cast_expression "(int *)(puVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }" { (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (goto_statement "goto LAB_00173b9d;" goto statement_identifier ;) })) })) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) }) while (parenthesized_expression "(uVar14 < (uint)piVar12[10])" ( (binary_expression "uVar14 < (uint)piVar12[10]" identifier < (cast_expression "(uint)piVar12[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar12[10]" identifier [ number_literal ]))) )) ;)) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00173b9d:\n  pcVar10 = *(code **)(iVar9 + 8);" statement_identifier : (expression_statement "pcVar10 = *(code **)(iVar9 + 8);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 8)" identifier = (pointer_expression "*(code **)(iVar9 + 8)" * (cast_expression "(code **)(iVar9 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;)) (expression_statement "*(code **)(puVar11 + 8) = FUN_00094510;" (assignment_expression "*(code **)(puVar11 + 8) = FUN_00094510" (pointer_expression "*(code **)(puVar11 + 8)" * (cast_expression "(code **)(puVar11 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar10 == FUN_00094510) {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xe4);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173bbc;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  else {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }" if (parenthesized_expression "(pcVar10 == FUN_00094510)" ( (binary_expression "pcVar10 == FUN_00094510" identifier == identifier) )) (compound_statement "{\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xe4);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173bbc;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar10 = *(code **)(iVar9 + 0xe4);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0xe4)" identifier = (pointer_expression "*(code **)(iVar9 + 0xe4)" * (cast_expression "(code **)(iVar9 + 0xe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0xe4)" ( (binary_expression "iVar9 + 0xe4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173bbc;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173bbc" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = (*pcVar10)();" (assignment_expression "iVar9 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar10 = *(code **)(puVar11 + 8);" (assignment_expression "pcVar10 = *(code **)(puVar11 + 8)" identifier = (pointer_expression "*(code **)(puVar11 + 8)" * (cast_expression "(code **)(puVar11 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }" else (compound_statement "{\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173d66;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173d66" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = (*pcVar10)();" (assignment_expression "iVar9 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar10 = *(code **)(puVar11 + 8);" (assignment_expression "pcVar10 = *(code **)(puVar11 + 8)" identifier = (pointer_expression "*(code **)(puVar11 + 8)" * (cast_expression "(code **)(puVar11 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar3 = *piVar12;" (assignment_expression "iVar3 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (if_statement "if (iVar9 == 0x20) {\n    pcVar10 = *(code **)(iVar3 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173ce3;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b08;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_001776a0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n  }\n  else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }" if (parenthesized_expression "(iVar9 == 0x20)" ( (binary_expression "iVar9 == 0x20" identifier == number_literal) )) (compound_statement "{\n    pcVar10 = *(code **)(iVar3 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173ce3;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b08;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_001776a0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n  }" { (expression_statement "pcVar10 = *(code **)(iVar3 + 0xc);" (assignment_expression "pcVar10 = *(code **)(iVar3 + 0xc)" identifier = (pointer_expression "*(code **)(iVar3 + 0xc)" * (cast_expression "(code **)(iVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }" if (parenthesized_expression "(pcVar10 == FUN_00094520)" ( (binary_expression "pcVar10 == FUN_00094520" identifier == identifier) )) (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar10 = *(code **)(iVar3 + 0xe8);" (assignment_expression "pcVar10 = *(code **)(iVar3 + 0xe8)" identifier = (pointer_expression "*(code **)(iVar3 + 0xe8)" * (cast_expression "(code **)(iVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xe8)" ( (binary_expression "iVar3 + 0xe8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173cce;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173cce" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar6 = (*pcVar10)();" (assignment_expression "cVar6 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar8 = extraout_ECX;" (assignment_expression "uVar8 = extraout_ECX" identifier = identifier) ;) }) (else_clause "else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }" else (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173d94;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173d94" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar6 = (*pcVar10)();" (assignment_expression "cVar6 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar8 = extraout_ECX_00;" (assignment_expression "uVar8 = extraout_ECX_00" identifier = identifier) ;) }))) (if_statement "if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }" { (expression_statement "*(undefined4 *)(puVar11 + -8) = uVar8;" (assignment_expression "*(undefined4 *)(puVar11 + -8) = uVar8" (pointer_expression "*(undefined4 *)(puVar11 + -8)" * (cast_expression "(undefined4 *)(puVar11 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -8)" ( (binary_expression "puVar11 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";" (assignment_expression "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper"" (pointer_expression "*(char **)(puVar11 + -0xc)" * (cast_expression "(char **)(puVar11 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) = (string_literal ""make_elf_reloc_mapper"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x10) = 0x68;" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = 0x68" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" * (cast_expression "(undefined4 *)(puVar11 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";" (assignment_expression "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc"" (pointer_expression "*(char **)(puVar11 + -0x14)" * (cast_expression "(char **)(puVar11 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = (string_literal ""../../gold/dwarf_reader.cc"" " string_content ")) ;) comment (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173db2;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173db2" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0x28;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0x28" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" * (cast_expression "(undefined4 *)(puVar11 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173ce3;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173ce3" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7 = (undefined4 *)FUN_001aa8c0();" (assignment_expression "puVar7 = (undefined4 *)FUN_001aa8c0()" identifier = (cast_expression "(undefined4 *)FUN_001aa8c0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = *(undefined4 *)(puVar11 + 0x28);" (assignment_expression "uVar8 = *(undefined4 *)(puVar11 + 0x28)" identifier = (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" * (cast_expression "(undefined4 *)(puVar11 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x28)" ( (binary_expression "puVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = &PTR_FUN_00335b08;" (assignment_expression "*puVar7 = &PTR_FUN_00335b08" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_00335b08" & identifier)) ;) (expression_statement "uVar5 = *(undefined4 *)(puVar11 + 0x74);" (assignment_expression "uVar5 = *(undefined4 *)(puVar11 + 0x74)" identifier = (pointer_expression "*(undefined4 *)(puVar11 + 0x74)" * (cast_expression "(undefined4 *)(puVar11 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x74)" ( (binary_expression "puVar11 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "puVar7[1] = piVar12;" (assignment_expression "puVar7[1] = piVar12" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = uVar5;" (assignment_expression "puVar7[2] = uVar5" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = *(undefined4 *)(puVar11 + 0x24);" (assignment_expression "uVar5 = *(undefined4 *)(puVar11 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(puVar11 + 0x24)" * (cast_expression "(undefined4 *)(puVar11 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x24)" ( (binary_expression "puVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "puVar7[4] = uVar8;" (assignment_expression "puVar7[4] = uVar8" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = uVar5;" (assignment_expression "puVar7[3] = uVar5" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar10 = FUN_001776a0;" (assignment_expression "pcVar10 = FUN_001776a0" identifier = identifier) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }" else (compound_statement "{\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }" { (expression_statement "pcVar4 = *(code **)(iVar3 + 8);" (assignment_expression "pcVar4 = *(code **)(iVar3 + 8)" identifier = (pointer_expression "*(code **)(iVar3 + 8)" * (cast_expression "(code **)(iVar3 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (if_statement "if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }" if (parenthesized_expression "(pcVar4 == pcVar10)" ( (binary_expression "pcVar4 == pcVar10" identifier == identifier) )) (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar10 = *(code **)(iVar3 + 0xe4);" (assignment_expression "pcVar10 = *(code **)(iVar3 + 0xe4)" identifier = (pointer_expression "*(code **)(iVar3 + 0xe4)" * (cast_expression "(code **)(iVar3 + 0xe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xe4)" ( (binary_expression "iVar3 + 0xe4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173be4;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173be4" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = (*pcVar10)();" (assignment_expression "iVar9 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }" else (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173d86;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173d86" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = (*pcVar4)();" (assignment_expression "iVar9 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }" if (parenthesized_expression "(iVar9 != 0x40)" ( (binary_expression "iVar9 != 0x40" identifier != number_literal) )) (compound_statement "{\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }" { (expression_statement "*(int *)(puVar11 + -8) = iVar9;" (assignment_expression "*(int *)(puVar11 + -8) = iVar9" (pointer_expression "*(int *)(puVar11 + -8)" * (cast_expression "(int *)(puVar11 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -8)" ( (binary_expression "puVar11 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";" (assignment_expression "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper"" (pointer_expression "*(char **)(puVar11 + -0xc)" * (cast_expression "(char **)(puVar11 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) = (string_literal ""make_elf_reloc_mapper"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x10) = 0x8b;" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = 0x8b" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" * (cast_expression "(undefined4 *)(puVar11 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";" (assignment_expression "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc"" (pointer_expression "*(char **)(puVar11 + -0x14)" * (cast_expression "(char **)(puVar11 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = (string_literal ""../../gold/dwarf_reader.cc"" " string_content ")) ;) comment (expression_statement "*(undefined **)(puVar11 + -0x18) = &UNK_00173de1;" (assignment_expression "*(undefined **)(puVar11 + -0x18) = &UNK_00173de1" (pointer_expression "*(undefined **)(puVar11 + -0x18)" * (cast_expression "(undefined **)(puVar11 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = (pointer_expression "&UNK_00173de1" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "pcVar10 = *(code **)(iVar9 + 0xc);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0xc)" identifier = (pointer_expression "*(code **)(iVar9 + 0xc)" * (cast_expression "(code **)(iVar9 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }" if (parenthesized_expression "(pcVar10 == FUN_00094520)" ( (binary_expression "pcVar10 == FUN_00094520" identifier == identifier) )) (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar10 = *(code **)(iVar9 + 0xe8);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0xe8)" identifier = (pointer_expression "*(code **)(iVar9 + 0xe8)" * (cast_expression "(code **)(iVar9 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0xe8)" ( (binary_expression "iVar9 + 0xe8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173c0e;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173c0e" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar6 = (*pcVar10)();" (assignment_expression "cVar6 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar8 = extraout_EDX;" (assignment_expression "uVar8 = extraout_EDX" identifier = identifier) ;) }) (else_clause "else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }" else (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173d78;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173d78" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar6 = (*pcVar10)();" (assignment_expression "cVar6 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar8 = extraout_EDX_00;" (assignment_expression "uVar8 = extraout_EDX_00" identifier = identifier) ;) }))) (if_statement "if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }" { (expression_statement "*(undefined4 *)(puVar11 + -8) = uVar8;" (assignment_expression "*(undefined4 *)(puVar11 + -8) = uVar8" (pointer_expression "*(undefined4 *)(puVar11 + -8)" * (cast_expression "(undefined4 *)(puVar11 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -8)" ( (binary_expression "puVar11 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";" (assignment_expression "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper"" (pointer_expression "*(char **)(puVar11 + -0xc)" * (cast_expression "(char **)(puVar11 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) = (string_literal ""make_elf_reloc_mapper"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x10) = 0x7d;" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = 0x7d" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" * (cast_expression "(undefined4 *)(puVar11 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";" (assignment_expression "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc"" (pointer_expression "*(char **)(puVar11 + -0x14)" * (cast_expression "(char **)(puVar11 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = (string_literal ""../../gold/dwarf_reader.cc"" " string_content ")) ;) comment (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173dc8;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173dc8" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0x28;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0x28" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" * (cast_expression "(undefined4 *)(puVar11 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173c23;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173c23" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7 = (undefined4 *)FUN_001aa8c0();" (assignment_expression "puVar7 = (undefined4 *)FUN_001aa8c0()" identifier = (cast_expression "(undefined4 *)FUN_001aa8c0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = *(undefined4 *)(puVar11 + 0x28);" (assignment_expression "uVar8 = *(undefined4 *)(puVar11 + 0x28)" identifier = (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" * (cast_expression "(undefined4 *)(puVar11 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x28)" ( (binary_expression "puVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = &PTR_FUN_00335b30;" (assignment_expression "*puVar7 = &PTR_FUN_00335b30" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_00335b30" & identifier)) ;) (expression_statement "uVar5 = *(undefined4 *)(puVar11 + 0x74);" (assignment_expression "uVar5 = *(undefined4 *)(puVar11 + 0x74)" identifier = (pointer_expression "*(undefined4 *)(puVar11 + 0x74)" * (cast_expression "(undefined4 *)(puVar11 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x74)" ( (binary_expression "puVar11 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "puVar7[1] = piVar12;" (assignment_expression "puVar7[1] = piVar12" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = uVar5;" (assignment_expression "puVar7[2] = uVar5" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = *(undefined4 *)(puVar11 + 0x24);" (assignment_expression "uVar5 = *(undefined4 *)(puVar11 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(puVar11 + 0x24)" * (cast_expression "(undefined4 *)(puVar11 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x24)" ( (binary_expression "puVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "puVar7[4] = uVar8;" (assignment_expression "puVar7[4] = uVar8" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = uVar5;" (assignment_expression "puVar7[3] = uVar5" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar10 = FUN_00177610;" (assignment_expression "pcVar10 = FUN_00177610" identifier = identifier) ;) }))) (expression_statement "*(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30) = puVar7;" (assignment_expression "*(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30) = puVar7" (pointer_expression "*(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30)" * (cast_expression "(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar11 + 0x6c) + 0x30)" ( (binary_expression "*(int *)(puVar11 + 0x6c) + 0x30" (pointer_expression "*(int *)(puVar11 + 0x6c)" * (cast_expression "(int *)(puVar11 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x6c)" ( (binary_expression "puVar11 + 0x6c" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0xc) = iVar16;" (assignment_expression "*(int *)(puVar11 + -0xc) = iVar16" (pointer_expression "*(int *)(puVar11 + -0xc)" * (cast_expression "(int *)(puVar11 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar11 + -0x10) = uVar14;" (assignment_expression "*(uint *)(puVar11 + -0x10) = uVar14" (pointer_expression "*(uint *)(puVar11 + -0x10)" * (cast_expression "(uint *)(puVar11 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar11 + -0x14) = puVar7;" (assignment_expression "*(undefined4 **)(puVar11 + -0x14) = puVar7" (pointer_expression "*(undefined4 **)(puVar11 + -0x14)" * (cast_expression "(undefined4 **)(puVar11 + -0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173c81;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173c81" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(int *)(*(int *)(puVar11 + 0x6c) + 0x34) = iVar16;" (assignment_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 0x34) = iVar16" (pointer_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 0x34)" * (cast_expression "(int *)(*(int *)(puVar11 + 0x6c) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x6c) + 0x34)" ( (binary_expression "*(int *)(puVar11 + 0x6c) + 0x34" (pointer_expression "*(int *)(puVar11 + 0x6c)" * (cast_expression "(int *)(puVar11 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x6c)" ( (binary_expression "puVar11 + 0x6c" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: bool read_section(Dwarf_pubnames_table * this, Relobj * object, uchar *\n   symtab, off_t symtab_size) */\n\nbool __thiscall\ngold::Dwarf_pubnames_table::read_section\n          (Dwarf_pubnames_table *this,Relobj *object,uchar *symtab,off_t symtab_size)\n\n{\n  uint *puVar1;\n  byte *pbVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined4 uVar5;\n  char *pcVar6;\n  char cVar7;\n  uchar *puVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  code *pcVar11;\n  undefined4 extraout_ECX;\n  undefined4 uVar12;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined1 *puVar13;\n  int *piVar14;\n  byte *pbVar15;\n  uint uVar16;\n  byte *pbVar17;\n  int iVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  undefined1 uVar21;\n  bool bVar22;\n  byte bVar23;\n  uint auStack_94 [10];\n  undefined1 auStack_6c [8];\n  uint local_64 [2];\n  section_size_type *local_5c [6];\n  off_t local_44;\n  int local_38;\n  section_size_type buffer_size;\n  undefined1 local_2c [24];\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x173989;\n  local_44._0_4_ = (undefined4)symtab_size;\n  if (this->is_pubtypes_ == false) {\n    pcVar6 = "gnu_pubnames";\n    local_5c[4] = (section_size_type *)0x25568b;\n  }\n  else {\n    pcVar6 = "gnu_pubtypes";\n    local_5c[4] = (section_size_type *)0x255698;\n  }\n  local_5c[3] = (section_size_type *)(pcVar6 + 4);\n  if (1 < (object->super_Object).shnum_) {\n    local_64[1] = 1;\n    local_5c[0] = &buffer_size;\n    local_5c[1] = (section_size_type *)0x255d66;\n    local_5c[2] = (section_size_type *)local_2c;\n    local_5c[5] = (section_size_type *)0x255d6e;\n    puVar13 = auStack_6c;\n    do {\n      uVar19 = puVar13 < (undefined1 *)0x4;\n      uVar21 = puVar13 == (undefined1 *)0x4;\n      iVar10 = **(int **)(puVar13 + 0x74);\n      *(undefined4 *)(puVar13 + -8) = *(undefined4 *)(puVar13 + 0xc);\n      *(undefined4 *)(puVar13 + -0xc) = *(undefined4 *)(puVar13 + 0x74);\n      *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x10);\n      pcVar11 = *(code **)(iVar10 + 0x40);\n      *(undefined4 *)(puVar13 + -0x14) = 0x173a20;\n      local_44 = symtab_size;\n      (*pcVar11)();\n      iVar10 = 7;\n      pbVar2 = *(byte **)(puVar13 + 0x34);\n      pbVar15 = *(byte **)(puVar13 + 0x10);\n      pbVar17 = pbVar2;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar17;\n        uVar21 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      } while ((bool)uVar21);\n      pbVar15 = pbVar2 + 7;\n      bVar20 = false;\n      bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;\n      if (bVar22) {\nLAB_00173a59:\n        *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x18);\n        *(byte **)(puVar13 + -0x14) = pbVar15;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a66;\n        iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n        if (iVar10 == 0) {\n          piVar14 = *(int **)(puVar13 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x1c);\n          *(byte **)(puVar13 + -0x14) = pbVar15;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173a7a;\n          iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n          if (iVar10 != 0) goto LAB_00173a85;\n          piVar14 = *(int **)(puVar13 + 0x70);\n          *(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n          *(byte **)(puVar13 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173af5;\n          operator_delete(*(void **)(puVar13 + -0x14));\n        }\n        if (*(int *)(puVar13 + 8) == 0) {\n          return false;\n        }\n        *(undefined4 *)(puVar13 + -0x14) = 0;\n        *(int *)(puVar13 + -0x18) = *(int *)(puVar13 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(puVar13 + 0xc);\n        *(int *)(puVar13 + -0x20) = *(int *)(puVar13 + 8);\n        *(int **)(puVar13 + -0x24) = piVar14;\n        *(undefined4 *)(puVar13 + -0x28) = 0x173b1b;\n        puVar8 = Object::decompressed_section_contents\n                           (*(Object **)(puVar13 + -0x24),*(uint *)(puVar13 + -0x20),\n                            *(section_size_type **)(puVar13 + -0x1c),*(bool **)(puVar13 + -0x18),\n                            *(uint64_t **)(puVar13 + -0x14));\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 4) = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 8) = puVar8 + *(int *)(puVar13 + 0x34);\n        iVar10 = *piVar14;\n        pcVar11 = *(code **)(iVar10 + 0x18);\n        if (pcVar11 != Object::do_is_incremental) {\n          *(int **)(puVar13 + -0x14) = piVar14;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173d4d;\n          cVar7 = (*pcVar11)();\n          if (cVar7 != '\0') {\n            return (bool)cVar7;\n          }\n          iVar10 = *piVar14;\n        }\n        uVar16 = piVar14[10];\n        iVar18 = 0;\n        if (uVar16 == 0) goto LAB_00173b9d;\n        uVar16 = 0;\n        goto LAB_00173b74;\n      }\n      iVar10 = 8;\n      pbVar15 = *(byte **)(puVar13 + 0x20);\n      pbVar17 = pbVar2;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar20 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      } while (bVar22);\n      pbVar15 = pbVar2 + 8;\n      if ((!bVar20 && !bVar22) == bVar20) goto LAB_00173a59;\nLAB_00173a85:\n      symtab_size = local_44;\n      if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n        *(byte **)(puVar13 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a94;\n        operator_delete(*(void **)(puVar13 + -0x14));\n        symtab_size = local_44;\n      }\n      piVar14 = (int *)(puVar13 + 0x70);\n      *(int *)(puVar13 + 8) = *(int *)(puVar13 + 8) + 1;\n      puVar1 = (uint *)(puVar13 + 8);\n      puVar13 = puVar13 + -4;\n    } while (*puVar1 < *(uint *)(*piVar14 + 0x28));\n  }\n  return false;\nLAB_00173b74:\n  do {\n    *(uint *)(puVar13 + -0x10) = uVar16;\n    *(int **)(puVar13 + -0x14) = piVar14;\n    pcVar11 = *(code **)(iVar10 + 0x50);\n    *(undefined4 *)(puVar13 + -0x18) = 0x173b7c;\n    iVar18 = (*pcVar11)();\n    if ((iVar18 == 9) || (iVar18 == 4)) {\n      iVar10 = *piVar14;\n      *(uint *)(puVar13 + -0x10) = uVar16;\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar10 + 0x58);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173b91;\n      iVar10 = (*pcVar11)();\n      if (*(int *)(puVar13 + 8) == iVar10) {\n        iVar10 = *piVar14;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar16 = uVar16 + 1;\n    iVar10 = *piVar14;\n  } while (uVar16 < (uint)piVar14[10]);\n  uVar16 = 0;\nLAB_00173b9d:\n  pcVar11 = *(code **)(iVar10 + 8);\n  *(code **)(puVar13 + 8) = Relobj::elfsize;\n  if (pcVar11 == Relobj::elfsize) {\n    *(int **)(puVar13 + -0x14) = piVar14;\n    pcVar11 = *(code **)(iVar10 + 0xe4);\n    *(undefined4 *)(puVar13 + -0x18) = 0x173bbc;\n    iVar10 = (*pcVar11)();\n    pcVar11 = *(code **)(puVar13 + 8);\n  }\n  else {\n    *(int **)(puVar13 + -0x14) = piVar14;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173d66;\n    iVar10 = (*pcVar11)();\n    pcVar11 = *(code **)(puVar13 + 8);\n  }\n  iVar3 = *piVar14;\n  if (iVar10 == 0x20) {\n    pcVar11 = *(code **)(iVar3 + 0xc);\n    if (pcVar11 == Relobj::is_big_endian) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173cce;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d94;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_ECX_00;\n    }\n    if (cVar7 != '\0') {\n      *(undefined4 *)(puVar13 + -8) = uVar12;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x68;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar13 + -0x18) = 0x173db2;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    *(undefined4 *)(puVar13 + -0x14) = 0x28;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173ce3;\n    puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14));\n    uVar12 = *(undefined4 *)(puVar13 + 0x28);\n    *puVar9 = &PTR__Sized_elf_reloc_mapper_00335b08;\n    uVar5 = *(undefined4 *)(puVar13 + 0x74);\n    puVar9[1] = piVar14;\n    puVar9[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar13 + 0x24);\n    puVar9[4] = uVar12;\n    puVar9[3] = uVar5;\n    pcVar11 = Sized_elf_reloc_mapper<32,_false>::do_initialize;\n    puVar9[5] = 0;\n    puVar9[6] = 0;\n    puVar9[7] = 0;\n    puVar9[8] = 0;\n    puVar9[9] = 0;\n  }\n  else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar11) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173be4;\n      iVar10 = (*pcVar11)();\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d86;\n      iVar10 = (*pcVar4)();\n    }\n    if (iVar10 != 0x40) {\n      *(int *)(puVar13 + -8) = iVar10;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x8b;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)(puVar13 + -0x18) = &UNK_00173de1;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    iVar10 = *piVar14;\n    pcVar11 = *(code **)(iVar10 + 0xc);\n    if (pcVar11 == Relobj::is_big_endian) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar10 + 0xe8);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173c0e;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d78;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX_00;\n    }\n    if (cVar7 != '\0') {\n      *(undefined4 *)(puVar13 + -8) = uVar12;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x7d;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar13 + -0x18) = 0x173dc8;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    *(undefined4 *)(puVar13 + -0x14) = 0x28;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173c23;\n    puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14));\n    uVar12 = *(undefined4 *)(puVar13 + 0x28);\n    *puVar9 = &PTR__Sized_elf_reloc_mapper_00335b30;\n    uVar5 = *(undefined4 *)(puVar13 + 0x74);\n    puVar9[1] = piVar14;\n    puVar9[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar13 + 0x24);\n    puVar9[4] = uVar12;\n    puVar9[5] = 0;\n    puVar9[6] = 0;\n    puVar9[7] = 0;\n    puVar9[8] = 0;\n    puVar9[9] = 0;\n    puVar9[3] = uVar5;\n    pcVar11 = Sized_elf_reloc_mapper<64,_false>::do_initialize;\n  }\n  *(undefined4 **)(*(int *)(puVar13 + 0x6c) + 0x30) = puVar9;\n  *(int *)(puVar13 + -0xc) = iVar18;\n  *(uint *)(puVar13 + -0x10) = uVar16;\n  *(undefined4 **)(puVar13 + -0x14) = puVar9;\n  *(undefined4 *)(puVar13 + -0x18) = 0x173c81;\n  (*pcVar11)();\n  *(int *)(*(int *)(puVar13 + 0x6c) + 0x34) = iVar18;\n  return true;\n}\n\n" comment comment (function_definition "bool __thiscall\ngold::Dwarf_pubnames_table::read_section\n          (Dwarf_pubnames_table *this,Relobj *object,uchar *symtab,off_t symtab_size)\n\n{\n  uint *puVar1;\n  byte *pbVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined4 uVar5;\n  char *pcVar6;\n  char cVar7;\n  uchar *puVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  code *pcVar11;\n  undefined4 extraout_ECX;\n  undefined4 uVar12;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined1 *puVar13;\n  int *piVar14;\n  byte *pbVar15;\n  uint uVar16;\n  byte *pbVar17;\n  int iVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  undefined1 uVar21;\n  bool bVar22;\n  byte bVar23;\n  uint auStack_94 [10];\n  undefined1 auStack_6c [8];\n  uint local_64 [2];\n  section_size_type *local_5c [6];\n  off_t local_44;\n  int local_38;\n  section_size_type buffer_size;\n  undefined1 local_2c [24];\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x173989;\n  local_44._0_4_ = (undefined4)symtab_size;\n  if (this->is_pubtypes_ == false) {\n    pcVar6 = "gnu_pubnames";\n    local_5c[4] = (section_size_type *)0x25568b;\n  }\n  else {\n    pcVar6 = "gnu_pubtypes";\n    local_5c[4] = (section_size_type *)0x255698;\n  }\n  local_5c[3] = (section_size_type *)(pcVar6 + 4);\n  if (1 < (object->super_Object).shnum_) {\n    local_64[1] = 1;\n    local_5c[0] = &buffer_size;\n    local_5c[1] = (section_size_type *)0x255d66;\n    local_5c[2] = (section_size_type *)local_2c;\n    local_5c[5] = (section_size_type *)0x255d6e;\n    puVar13 = auStack_6c;\n    do {\n      uVar19 = puVar13 < (undefined1 *)0x4;\n      uVar21 = puVar13 == (undefined1 *)0x4;\n      iVar10 = **(int **)(puVar13 + 0x74);\n      *(undefined4 *)(puVar13 + -8) = *(undefined4 *)(puVar13 + 0xc);\n      *(undefined4 *)(puVar13 + -0xc) = *(undefined4 *)(puVar13 + 0x74);\n      *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x10);\n      pcVar11 = *(code **)(iVar10 + 0x40);\n      *(undefined4 *)(puVar13 + -0x14) = 0x173a20;\n      local_44 = symtab_size;\n      (*pcVar11)();\n      iVar10 = 7;\n      pbVar2 = *(byte **)(puVar13 + 0x34);\n      pbVar15 = *(byte **)(puVar13 + 0x10);\n      pbVar17 = pbVar2;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar17;\n        uVar21 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      } while ((bool)uVar21);\n      pbVar15 = pbVar2 + 7;\n      bVar20 = false;\n      bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;\n      if (bVar22) {\nLAB_00173a59:\n        *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x18);\n        *(byte **)(puVar13 + -0x14) = pbVar15;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a66;\n        iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n        if (iVar10 == 0) {\n          piVar14 = *(int **)(puVar13 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x1c);\n          *(byte **)(puVar13 + -0x14) = pbVar15;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173a7a;\n          iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n          if (iVar10 != 0) goto LAB_00173a85;\n          piVar14 = *(int **)(puVar13 + 0x70);\n          *(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n          *(byte **)(puVar13 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173af5;\n          operator_delete(*(void **)(puVar13 + -0x14));\n        }\n        if (*(int *)(puVar13 + 8) == 0) {\n          return false;\n        }\n        *(undefined4 *)(puVar13 + -0x14) = 0;\n        *(int *)(puVar13 + -0x18) = *(int *)(puVar13 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(puVar13 + 0xc);\n        *(int *)(puVar13 + -0x20) = *(int *)(puVar13 + 8);\n        *(int **)(puVar13 + -0x24) = piVar14;\n        *(undefined4 *)(puVar13 + -0x28) = 0x173b1b;\n        puVar8 = Object::decompressed_section_contents\n                           (*(Object **)(puVar13 + -0x24),*(uint *)(puVar13 + -0x20),\n                            *(section_size_type **)(puVar13 + -0x1c),*(bool **)(puVar13 + -0x18),\n                            *(uint64_t **)(puVar13 + -0x14));\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 4) = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 8) = puVar8 + *(int *)(puVar13 + 0x34);\n        iVar10 = *piVar14;\n        pcVar11 = *(code **)(iVar10 + 0x18);\n        if (pcVar11 != Object::do_is_incremental) {\n          *(int **)(puVar13 + -0x14) = piVar14;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173d4d;\n          cVar7 = (*pcVar11)();\n          if (cVar7 != '\0') {\n            return (bool)cVar7;\n          }\n          iVar10 = *piVar14;\n        }\n        uVar16 = piVar14[10];\n        iVar18 = 0;\n        if (uVar16 == 0) goto LAB_00173b9d;\n        uVar16 = 0;\n        goto LAB_00173b74;\n      }\n      iVar10 = 8;\n      pbVar15 = *(byte **)(puVar13 + 0x20);\n      pbVar17 = pbVar2;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar20 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      } while (bVar22);\n      pbVar15 = pbVar2 + 8;\n      if ((!bVar20 && !bVar22) == bVar20) goto LAB_00173a59;\nLAB_00173a85:\n      symtab_size = local_44;\n      if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n        *(byte **)(puVar13 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a94;\n        operator_delete(*(void **)(puVar13 + -0x14));\n        symtab_size = local_44;\n      }\n      piVar14 = (int *)(puVar13 + 0x70);\n      *(int *)(puVar13 + 8) = *(int *)(puVar13 + 8) + 1;\n      puVar1 = (uint *)(puVar13 + 8);\n      puVar13 = puVar13 + -4;\n    } while (*puVar1 < *(uint *)(*piVar14 + 0x28));\n  }\n  return false;\nLAB_00173b74:\n  do {\n    *(uint *)(puVar13 + -0x10) = uVar16;\n    *(int **)(puVar13 + -0x14) = piVar14;\n    pcVar11 = *(code **)(iVar10 + 0x50);\n    *(undefined4 *)(puVar13 + -0x18) = 0x173b7c;\n    iVar18 = (*pcVar11)();\n    if ((iVar18 == 9) || (iVar18 == 4)) {\n      iVar10 = *piVar14;\n      *(uint *)(puVar13 + -0x10) = uVar16;\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar10 + 0x58);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173b91;\n      iVar10 = (*pcVar11)();\n      if (*(int *)(puVar13 + 8) == iVar10) {\n        iVar10 = *piVar14;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar16 = uVar16 + 1;\n    iVar10 = *piVar14;\n  } while (uVar16 < (uint)piVar14[10]);\n  uVar16 = 0;\nLAB_00173b9d:\n  pcVar11 = *(code **)(iVar10 + 8);\n  *(code **)(puVar13 + 8) = Relobj::elfsize;\n  if (pcVar11 == Relobj::elfsize) {\n    *(int **)(puVar13 + -0x14) = piVar14;\n    pcVar11 = *(code **)(iVar10 + 0xe4);\n    *(undefined4 *)(puVar13 + -0x18) = 0x173bbc;\n    iVar10 = (*pcVar11)();\n    pcVar11 = *(code **)(puVar13 + 8);\n  }\n  else {\n    *(int **)(puVar13 + -0x14) = piVar14;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173d66;\n    iVar10 = (*pcVar11)();\n    pcVar11 = *(code **)(puVar13 + 8);\n  }\n  iVar3 = *piVar14;\n  if (iVar10 == 0x20) {\n    pcVar11 = *(code **)(iVar3 + 0xc);\n    if (pcVar11 == Relobj::is_big_endian) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173cce;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d94;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_ECX_00;\n    }\n    if (cVar7 != '\0') {\n      *(undefined4 *)(puVar13 + -8) = uVar12;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x68;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar13 + -0x18) = 0x173db2;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    *(undefined4 *)(puVar13 + -0x14) = 0x28;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173ce3;\n    puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14));\n    uVar12 = *(undefined4 *)(puVar13 + 0x28);\n    *puVar9 = &PTR__Sized_elf_reloc_mapper_00335b08;\n    uVar5 = *(undefined4 *)(puVar13 + 0x74);\n    puVar9[1] = piVar14;\n    puVar9[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar13 + 0x24);\n    puVar9[4] = uVar12;\n    puVar9[3] = uVar5;\n    pcVar11 = Sized_elf_reloc_mapper<32,_false>::do_initialize;\n    puVar9[5] = 0;\n    puVar9[6] = 0;\n    puVar9[7] = 0;\n    puVar9[8] = 0;\n    puVar9[9] = 0;\n  }\n  else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar11) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173be4;\n      iVar10 = (*pcVar11)();\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d86;\n      iVar10 = (*pcVar4)();\n    }\n    if (iVar10 != 0x40) {\n      *(int *)(puVar13 + -8) = iVar10;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x8b;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)(puVar13 + -0x18) = &UNK_00173de1;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    iVar10 = *piVar14;\n    pcVar11 = *(code **)(iVar10 + 0xc);\n    if (pcVar11 == Relobj::is_big_endian) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar10 + 0xe8);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173c0e;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d78;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX_00;\n    }\n    if (cVar7 != '\0') {\n      *(undefined4 *)(puVar13 + -8) = uVar12;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x7d;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar13 + -0x18) = 0x173dc8;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    *(undefined4 *)(puVar13 + -0x14) = 0x28;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173c23;\n    puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14));\n    uVar12 = *(undefined4 *)(puVar13 + 0x28);\n    *puVar9 = &PTR__Sized_elf_reloc_mapper_00335b30;\n    uVar5 = *(undefined4 *)(puVar13 + 0x74);\n    puVar9[1] = piVar14;\n    puVar9[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar13 + 0x24);\n    puVar9[4] = uVar12;\n    puVar9[5] = 0;\n    puVar9[6] = 0;\n    puVar9[7] = 0;\n    puVar9[8] = 0;\n    puVar9[9] = 0;\n    puVar9[3] = uVar5;\n    pcVar11 = Sized_elf_reloc_mapper<64,_false>::do_initialize;\n  }\n  *(undefined4 **)(*(int *)(puVar13 + 0x6c) + 0x30) = puVar9;\n  *(int *)(puVar13 + -0xc) = iVar18;\n  *(uint *)(puVar13 + -0x10) = uVar16;\n  *(undefined4 **)(puVar13 + -0x14) = puVar9;\n  *(undefined4 *)(puVar13 + -0x18) = 0x173c81;\n  (*pcVar11)();\n  *(int *)(*(int *)(puVar13 + 0x6c) + 0x34) = iVar18;\n  return true;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Dwarf_pubnames_table::" identifier : : identifier : :) (function_declarator "read_section\n          (Dwarf_pubnames_table *this,Relobj *object,uchar *symtab,off_t symtab_size)" identifier (parameter_list "(Dwarf_pubnames_table *this,Relobj *object,uchar *symtab,off_t symtab_size)" ( (parameter_declaration "Dwarf_pubnames_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relobj *object" type_identifier (pointer_declarator "*object" * identifier)) , (parameter_declaration "uchar *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "off_t symtab_size" type_identifier identifier) ))) (compound_statement "{\n  uint *puVar1;\n  byte *pbVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined4 uVar5;\n  char *pcVar6;\n  char cVar7;\n  uchar *puVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  code *pcVar11;\n  undefined4 extraout_ECX;\n  undefined4 uVar12;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined1 *puVar13;\n  int *piVar14;\n  byte *pbVar15;\n  uint uVar16;\n  byte *pbVar17;\n  int iVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  undefined1 uVar21;\n  bool bVar22;\n  byte bVar23;\n  uint auStack_94 [10];\n  undefined1 auStack_6c [8];\n  uint local_64 [2];\n  section_size_type *local_5c [6];\n  off_t local_44;\n  int local_38;\n  section_size_type buffer_size;\n  undefined1 local_2c [24];\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x173989;\n  local_44._0_4_ = (undefined4)symtab_size;\n  if (this->is_pubtypes_ == false) {\n    pcVar6 = "gnu_pubnames";\n    local_5c[4] = (section_size_type *)0x25568b;\n  }\n  else {\n    pcVar6 = "gnu_pubtypes";\n    local_5c[4] = (section_size_type *)0x255698;\n  }\n  local_5c[3] = (section_size_type *)(pcVar6 + 4);\n  if (1 < (object->super_Object).shnum_) {\n    local_64[1] = 1;\n    local_5c[0] = &buffer_size;\n    local_5c[1] = (section_size_type *)0x255d66;\n    local_5c[2] = (section_size_type *)local_2c;\n    local_5c[5] = (section_size_type *)0x255d6e;\n    puVar13 = auStack_6c;\n    do {\n      uVar19 = puVar13 < (undefined1 *)0x4;\n      uVar21 = puVar13 == (undefined1 *)0x4;\n      iVar10 = **(int **)(puVar13 + 0x74);\n      *(undefined4 *)(puVar13 + -8) = *(undefined4 *)(puVar13 + 0xc);\n      *(undefined4 *)(puVar13 + -0xc) = *(undefined4 *)(puVar13 + 0x74);\n      *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x10);\n      pcVar11 = *(code **)(iVar10 + 0x40);\n      *(undefined4 *)(puVar13 + -0x14) = 0x173a20;\n      local_44 = symtab_size;\n      (*pcVar11)();\n      iVar10 = 7;\n      pbVar2 = *(byte **)(puVar13 + 0x34);\n      pbVar15 = *(byte **)(puVar13 + 0x10);\n      pbVar17 = pbVar2;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar17;\n        uVar21 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      } while ((bool)uVar21);\n      pbVar15 = pbVar2 + 7;\n      bVar20 = false;\n      bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;\n      if (bVar22) {\nLAB_00173a59:\n        *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x18);\n        *(byte **)(puVar13 + -0x14) = pbVar15;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a66;\n        iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n        if (iVar10 == 0) {\n          piVar14 = *(int **)(puVar13 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x1c);\n          *(byte **)(puVar13 + -0x14) = pbVar15;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173a7a;\n          iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n          if (iVar10 != 0) goto LAB_00173a85;\n          piVar14 = *(int **)(puVar13 + 0x70);\n          *(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n          *(byte **)(puVar13 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173af5;\n          operator_delete(*(void **)(puVar13 + -0x14));\n        }\n        if (*(int *)(puVar13 + 8) == 0) {\n          return false;\n        }\n        *(undefined4 *)(puVar13 + -0x14) = 0;\n        *(int *)(puVar13 + -0x18) = *(int *)(puVar13 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(puVar13 + 0xc);\n        *(int *)(puVar13 + -0x20) = *(int *)(puVar13 + 8);\n        *(int **)(puVar13 + -0x24) = piVar14;\n        *(undefined4 *)(puVar13 + -0x28) = 0x173b1b;\n        puVar8 = Object::decompressed_section_contents\n                           (*(Object **)(puVar13 + -0x24),*(uint *)(puVar13 + -0x20),\n                            *(section_size_type **)(puVar13 + -0x1c),*(bool **)(puVar13 + -0x18),\n                            *(uint64_t **)(puVar13 + -0x14));\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 4) = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 8) = puVar8 + *(int *)(puVar13 + 0x34);\n        iVar10 = *piVar14;\n        pcVar11 = *(code **)(iVar10 + 0x18);\n        if (pcVar11 != Object::do_is_incremental) {\n          *(int **)(puVar13 + -0x14) = piVar14;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173d4d;\n          cVar7 = (*pcVar11)();\n          if (cVar7 != '\0') {\n            return (bool)cVar7;\n          }\n          iVar10 = *piVar14;\n        }\n        uVar16 = piVar14[10];\n        iVar18 = 0;\n        if (uVar16 == 0) goto LAB_00173b9d;\n        uVar16 = 0;\n        goto LAB_00173b74;\n      }\n      iVar10 = 8;\n      pbVar15 = *(byte **)(puVar13 + 0x20);\n      pbVar17 = pbVar2;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar20 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      } while (bVar22);\n      pbVar15 = pbVar2 + 8;\n      if ((!bVar20 && !bVar22) == bVar20) goto LAB_00173a59;\nLAB_00173a85:\n      symtab_size = local_44;\n      if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n        *(byte **)(puVar13 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a94;\n        operator_delete(*(void **)(puVar13 + -0x14));\n        symtab_size = local_44;\n      }\n      piVar14 = (int *)(puVar13 + 0x70);\n      *(int *)(puVar13 + 8) = *(int *)(puVar13 + 8) + 1;\n      puVar1 = (uint *)(puVar13 + 8);\n      puVar13 = puVar13 + -4;\n    } while (*puVar1 < *(uint *)(*piVar14 + 0x28));\n  }\n  return false;\nLAB_00173b74:\n  do {\n    *(uint *)(puVar13 + -0x10) = uVar16;\n    *(int **)(puVar13 + -0x14) = piVar14;\n    pcVar11 = *(code **)(iVar10 + 0x50);\n    *(undefined4 *)(puVar13 + -0x18) = 0x173b7c;\n    iVar18 = (*pcVar11)();\n    if ((iVar18 == 9) || (iVar18 == 4)) {\n      iVar10 = *piVar14;\n      *(uint *)(puVar13 + -0x10) = uVar16;\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar10 + 0x58);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173b91;\n      iVar10 = (*pcVar11)();\n      if (*(int *)(puVar13 + 8) == iVar10) {\n        iVar10 = *piVar14;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar16 = uVar16 + 1;\n    iVar10 = *piVar14;\n  } while (uVar16 < (uint)piVar14[10]);\n  uVar16 = 0;\nLAB_00173b9d:\n  pcVar11 = *(code **)(iVar10 + 8);\n  *(code **)(puVar13 + 8) = Relobj::elfsize;\n  if (pcVar11 == Relobj::elfsize) {\n    *(int **)(puVar13 + -0x14) = piVar14;\n    pcVar11 = *(code **)(iVar10 + 0xe4);\n    *(undefined4 *)(puVar13 + -0x18) = 0x173bbc;\n    iVar10 = (*pcVar11)();\n    pcVar11 = *(code **)(puVar13 + 8);\n  }\n  else {\n    *(int **)(puVar13 + -0x14) = piVar14;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173d66;\n    iVar10 = (*pcVar11)();\n    pcVar11 = *(code **)(puVar13 + 8);\n  }\n  iVar3 = *piVar14;\n  if (iVar10 == 0x20) {\n    pcVar11 = *(code **)(iVar3 + 0xc);\n    if (pcVar11 == Relobj::is_big_endian) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173cce;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d94;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_ECX_00;\n    }\n    if (cVar7 != '\0') {\n      *(undefined4 *)(puVar13 + -8) = uVar12;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x68;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar13 + -0x18) = 0x173db2;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    *(undefined4 *)(puVar13 + -0x14) = 0x28;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173ce3;\n    puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14));\n    uVar12 = *(undefined4 *)(puVar13 + 0x28);\n    *puVar9 = &PTR__Sized_elf_reloc_mapper_00335b08;\n    uVar5 = *(undefined4 *)(puVar13 + 0x74);\n    puVar9[1] = piVar14;\n    puVar9[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar13 + 0x24);\n    puVar9[4] = uVar12;\n    puVar9[3] = uVar5;\n    pcVar11 = Sized_elf_reloc_mapper<32,_false>::do_initialize;\n    puVar9[5] = 0;\n    puVar9[6] = 0;\n    puVar9[7] = 0;\n    puVar9[8] = 0;\n    puVar9[9] = 0;\n  }\n  else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar11) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173be4;\n      iVar10 = (*pcVar11)();\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d86;\n      iVar10 = (*pcVar4)();\n    }\n    if (iVar10 != 0x40) {\n      *(int *)(puVar13 + -8) = iVar10;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x8b;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)(puVar13 + -0x18) = &UNK_00173de1;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    iVar10 = *piVar14;\n    pcVar11 = *(code **)(iVar10 + 0xc);\n    if (pcVar11 == Relobj::is_big_endian) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar10 + 0xe8);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173c0e;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d78;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX_00;\n    }\n    if (cVar7 != '\0') {\n      *(undefined4 *)(puVar13 + -8) = uVar12;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x7d;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar13 + -0x18) = 0x173dc8;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    *(undefined4 *)(puVar13 + -0x14) = 0x28;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173c23;\n    puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14));\n    uVar12 = *(undefined4 *)(puVar13 + 0x28);\n    *puVar9 = &PTR__Sized_elf_reloc_mapper_00335b30;\n    uVar5 = *(undefined4 *)(puVar13 + 0x74);\n    puVar9[1] = piVar14;\n    puVar9[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar13 + 0x24);\n    puVar9[4] = uVar12;\n    puVar9[5] = 0;\n    puVar9[6] = 0;\n    puVar9[7] = 0;\n    puVar9[8] = 0;\n    puVar9[9] = 0;\n    puVar9[3] = uVar5;\n    pcVar11 = Sized_elf_reloc_mapper<64,_false>::do_initialize;\n  }\n  *(undefined4 **)(*(int *)(puVar13 + 0x6c) + 0x30) = puVar9;\n  *(int *)(puVar13 + -0xc) = iVar18;\n  *(uint *)(puVar13 + -0x10) = uVar16;\n  *(undefined4 **)(puVar13 + -0x14) = puVar9;\n  *(undefined4 *)(puVar13 + -0x18) = 0x173c81;\n  (*pcVar11)();\n  *(int *)(*(int *)(puVar13 + 0x6c) + 0x34) = iVar18;\n  return true;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "uchar *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined1 uVar19;" type_identifier identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "undefined1 uVar21;" type_identifier identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "uint auStack_94 [10];" type_identifier (array_declarator "auStack_94 [10]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_6c [8];" type_identifier (array_declarator "auStack_6c [8]" identifier [ number_literal ]) ;) (declaration "uint local_64 [2];" type_identifier (array_declarator "local_64 [2]" identifier [ number_literal ]) ;) (declaration "section_size_type *local_5c [6];" type_identifier (pointer_declarator "*local_5c [6]" * (array_declarator "local_5c [6]" identifier [ number_literal ])) ;) (declaration "off_t local_44;" type_identifier identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "section_size_type buffer_size;" type_identifier identifier ;) (declaration "undefined1 local_2c [24];" type_identifier (array_declarator "local_2c [24]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x173989;" (assignment_expression "uStack_14 = 0x173989" identifier = number_literal) ;) (expression_statement "local_44._0_4_ = (undefined4)symtab_size;" (assignment_expression "local_44._0_4_ = (undefined4)symtab_size" (field_expression "local_44._0_4_" identifier . field_identifier) = (cast_expression "(undefined4)symtab_size" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (if_statement "if (this->is_pubtypes_ == false) {\n    pcVar6 = "gnu_pubnames";\n    local_5c[4] = (section_size_type *)0x25568b;\n  }\n  else {\n    pcVar6 = "gnu_pubtypes";\n    local_5c[4] = (section_size_type *)0x255698;\n  }" if (parenthesized_expression "(this->is_pubtypes_ == false)" ( (binary_expression "this->is_pubtypes_ == false" (field_expression "this->is_pubtypes_" identifier -> field_identifier) == false) )) (compound_statement "{\n    pcVar6 = "gnu_pubnames";\n    local_5c[4] = (section_size_type *)0x25568b;\n  }" { (expression_statement "pcVar6 = "gnu_pubnames";" (assignment_expression "pcVar6 = "gnu_pubnames"" identifier = (string_literal ""gnu_pubnames"" " string_content ")) ;) (expression_statement "local_5c[4] = (section_size_type *)0x25568b;" (assignment_expression "local_5c[4] = (section_size_type *)0x25568b" (subscript_expression "local_5c[4]" identifier [ number_literal ]) = (cast_expression "(section_size_type *)0x25568b" ( (type_descriptor "section_size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pcVar6 = "gnu_pubtypes";\n    local_5c[4] = (section_size_type *)0x255698;\n  }" else (compound_statement "{\n    pcVar6 = "gnu_pubtypes";\n    local_5c[4] = (section_size_type *)0x255698;\n  }" { (expression_statement "pcVar6 = "gnu_pubtypes";" (assignment_expression "pcVar6 = "gnu_pubtypes"" identifier = (string_literal ""gnu_pubtypes"" " string_content ")) ;) (expression_statement "local_5c[4] = (section_size_type *)0x255698;" (assignment_expression "local_5c[4] = (section_size_type *)0x255698" (subscript_expression "local_5c[4]" identifier [ number_literal ]) = (cast_expression "(section_size_type *)0x255698" ( (type_descriptor "section_size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "local_5c[3] = (section_size_type *)(pcVar6 + 4);" (assignment_expression "local_5c[3] = (section_size_type *)(pcVar6 + 4)" (subscript_expression "local_5c[3]" identifier [ number_literal ]) = (cast_expression "(section_size_type *)(pcVar6 + 4)" ( (type_descriptor "section_size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) ;) (if_statement "if (1 < (object->super_Object).shnum_) {\n    local_64[1] = 1;\n    local_5c[0] = &buffer_size;\n    local_5c[1] = (section_size_type *)0x255d66;\n    local_5c[2] = (section_size_type *)local_2c;\n    local_5c[5] = (section_size_type *)0x255d6e;\n    puVar13 = auStack_6c;\n    do {\n      uVar19 = puVar13 < (undefined1 *)0x4;\n      uVar21 = puVar13 == (undefined1 *)0x4;\n      iVar10 = **(int **)(puVar13 + 0x74);\n      *(undefined4 *)(puVar13 + -8) = *(undefined4 *)(puVar13 + 0xc);\n      *(undefined4 *)(puVar13 + -0xc) = *(undefined4 *)(puVar13 + 0x74);\n      *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x10);\n      pcVar11 = *(code **)(iVar10 + 0x40);\n      *(undefined4 *)(puVar13 + -0x14) = 0x173a20;\n      local_44 = symtab_size;\n      (*pcVar11)();\n      iVar10 = 7;\n      pbVar2 = *(byte **)(puVar13 + 0x34);\n      pbVar15 = *(byte **)(puVar13 + 0x10);\n      pbVar17 = pbVar2;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar17;\n        uVar21 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      } while ((bool)uVar21);\n      pbVar15 = pbVar2 + 7;\n      bVar20 = false;\n      bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;\n      if (bVar22) {\nLAB_00173a59:\n        *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x18);\n        *(byte **)(puVar13 + -0x14) = pbVar15;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a66;\n        iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n        if (iVar10 == 0) {\n          piVar14 = *(int **)(puVar13 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x1c);\n          *(byte **)(puVar13 + -0x14) = pbVar15;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173a7a;\n          iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n          if (iVar10 != 0) goto LAB_00173a85;\n          piVar14 = *(int **)(puVar13 + 0x70);\n          *(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n          *(byte **)(puVar13 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173af5;\n          operator_delete(*(void **)(puVar13 + -0x14));\n        }\n        if (*(int *)(puVar13 + 8) == 0) {\n          return false;\n        }\n        *(undefined4 *)(puVar13 + -0x14) = 0;\n        *(int *)(puVar13 + -0x18) = *(int *)(puVar13 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(puVar13 + 0xc);\n        *(int *)(puVar13 + -0x20) = *(int *)(puVar13 + 8);\n        *(int **)(puVar13 + -0x24) = piVar14;\n        *(undefined4 *)(puVar13 + -0x28) = 0x173b1b;\n        puVar8 = Object::decompressed_section_contents\n                           (*(Object **)(puVar13 + -0x24),*(uint *)(puVar13 + -0x20),\n                            *(section_size_type **)(puVar13 + -0x1c),*(bool **)(puVar13 + -0x18),\n                            *(uint64_t **)(puVar13 + -0x14));\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 4) = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 8) = puVar8 + *(int *)(puVar13 + 0x34);\n        iVar10 = *piVar14;\n        pcVar11 = *(code **)(iVar10 + 0x18);\n        if (pcVar11 != Object::do_is_incremental) {\n          *(int **)(puVar13 + -0x14) = piVar14;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173d4d;\n          cVar7 = (*pcVar11)();\n          if (cVar7 != '\0') {\n            return (bool)cVar7;\n          }\n          iVar10 = *piVar14;\n        }\n        uVar16 = piVar14[10];\n        iVar18 = 0;\n        if (uVar16 == 0) goto LAB_00173b9d;\n        uVar16 = 0;\n        goto LAB_00173b74;\n      }\n      iVar10 = 8;\n      pbVar15 = *(byte **)(puVar13 + 0x20);\n      pbVar17 = pbVar2;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar20 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      } while (bVar22);\n      pbVar15 = pbVar2 + 8;\n      if ((!bVar20 && !bVar22) == bVar20) goto LAB_00173a59;\nLAB_00173a85:\n      symtab_size = local_44;\n      if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n        *(byte **)(puVar13 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a94;\n        operator_delete(*(void **)(puVar13 + -0x14));\n        symtab_size = local_44;\n      }\n      piVar14 = (int *)(puVar13 + 0x70);\n      *(int *)(puVar13 + 8) = *(int *)(puVar13 + 8) + 1;\n      puVar1 = (uint *)(puVar13 + 8);\n      puVar13 = puVar13 + -4;\n    } while (*puVar1 < *(uint *)(*piVar14 + 0x28));\n  }" if (parenthesized_expression "(1 < (object->super_Object).shnum_)" ( (binary_expression "1 < (object->super_Object).shnum_" number_literal < (field_expression "(object->super_Object).shnum_" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier)) )) (compound_statement "{\n    local_64[1] = 1;\n    local_5c[0] = &buffer_size;\n    local_5c[1] = (section_size_type *)0x255d66;\n    local_5c[2] = (section_size_type *)local_2c;\n    local_5c[5] = (section_size_type *)0x255d6e;\n    puVar13 = auStack_6c;\n    do {\n      uVar19 = puVar13 < (undefined1 *)0x4;\n      uVar21 = puVar13 == (undefined1 *)0x4;\n      iVar10 = **(int **)(puVar13 + 0x74);\n      *(undefined4 *)(puVar13 + -8) = *(undefined4 *)(puVar13 + 0xc);\n      *(undefined4 *)(puVar13 + -0xc) = *(undefined4 *)(puVar13 + 0x74);\n      *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x10);\n      pcVar11 = *(code **)(iVar10 + 0x40);\n      *(undefined4 *)(puVar13 + -0x14) = 0x173a20;\n      local_44 = symtab_size;\n      (*pcVar11)();\n      iVar10 = 7;\n      pbVar2 = *(byte **)(puVar13 + 0x34);\n      pbVar15 = *(byte **)(puVar13 + 0x10);\n      pbVar17 = pbVar2;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar17;\n        uVar21 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      } while ((bool)uVar21);\n      pbVar15 = pbVar2 + 7;\n      bVar20 = false;\n      bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;\n      if (bVar22) {\nLAB_00173a59:\n        *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x18);\n        *(byte **)(puVar13 + -0x14) = pbVar15;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a66;\n        iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n        if (iVar10 == 0) {\n          piVar14 = *(int **)(puVar13 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x1c);\n          *(byte **)(puVar13 + -0x14) = pbVar15;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173a7a;\n          iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n          if (iVar10 != 0) goto LAB_00173a85;\n          piVar14 = *(int **)(puVar13 + 0x70);\n          *(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n          *(byte **)(puVar13 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173af5;\n          operator_delete(*(void **)(puVar13 + -0x14));\n        }\n        if (*(int *)(puVar13 + 8) == 0) {\n          return false;\n        }\n        *(undefined4 *)(puVar13 + -0x14) = 0;\n        *(int *)(puVar13 + -0x18) = *(int *)(puVar13 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(puVar13 + 0xc);\n        *(int *)(puVar13 + -0x20) = *(int *)(puVar13 + 8);\n        *(int **)(puVar13 + -0x24) = piVar14;\n        *(undefined4 *)(puVar13 + -0x28) = 0x173b1b;\n        puVar8 = Object::decompressed_section_contents\n                           (*(Object **)(puVar13 + -0x24),*(uint *)(puVar13 + -0x20),\n                            *(section_size_type **)(puVar13 + -0x1c),*(bool **)(puVar13 + -0x18),\n                            *(uint64_t **)(puVar13 + -0x14));\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 4) = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 8) = puVar8 + *(int *)(puVar13 + 0x34);\n        iVar10 = *piVar14;\n        pcVar11 = *(code **)(iVar10 + 0x18);\n        if (pcVar11 != Object::do_is_incremental) {\n          *(int **)(puVar13 + -0x14) = piVar14;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173d4d;\n          cVar7 = (*pcVar11)();\n          if (cVar7 != '\0') {\n            return (bool)cVar7;\n          }\n          iVar10 = *piVar14;\n        }\n        uVar16 = piVar14[10];\n        iVar18 = 0;\n        if (uVar16 == 0) goto LAB_00173b9d;\n        uVar16 = 0;\n        goto LAB_00173b74;\n      }\n      iVar10 = 8;\n      pbVar15 = *(byte **)(puVar13 + 0x20);\n      pbVar17 = pbVar2;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar20 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      } while (bVar22);\n      pbVar15 = pbVar2 + 8;\n      if ((!bVar20 && !bVar22) == bVar20) goto LAB_00173a59;\nLAB_00173a85:\n      symtab_size = local_44;\n      if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n        *(byte **)(puVar13 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a94;\n        operator_delete(*(void **)(puVar13 + -0x14));\n        symtab_size = local_44;\n      }\n      piVar14 = (int *)(puVar13 + 0x70);\n      *(int *)(puVar13 + 8) = *(int *)(puVar13 + 8) + 1;\n      puVar1 = (uint *)(puVar13 + 8);\n      puVar13 = puVar13 + -4;\n    } while (*puVar1 < *(uint *)(*piVar14 + 0x28));\n  }" { (expression_statement "local_64[1] = 1;" (assignment_expression "local_64[1] = 1" (subscript_expression "local_64[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_5c[0] = &buffer_size;" (assignment_expression "local_5c[0] = &buffer_size" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = (pointer_expression "&buffer_size" & identifier)) ;) (expression_statement "local_5c[1] = (section_size_type *)0x255d66;" (assignment_expression "local_5c[1] = (section_size_type *)0x255d66" (subscript_expression "local_5c[1]" identifier [ number_literal ]) = (cast_expression "(section_size_type *)0x255d66" ( (type_descriptor "section_size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_5c[2] = (section_size_type *)local_2c;" (assignment_expression "local_5c[2] = (section_size_type *)local_2c" (subscript_expression "local_5c[2]" identifier [ number_literal ]) = (cast_expression "(section_size_type *)local_2c" ( (type_descriptor "section_size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_5c[5] = (section_size_type *)0x255d6e;" (assignment_expression "local_5c[5] = (section_size_type *)0x255d6e" (subscript_expression "local_5c[5]" identifier [ number_literal ]) = (cast_expression "(section_size_type *)0x255d6e" ( (type_descriptor "section_size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (do_statement "do {\n      uVar19 = puVar13 < (undefined1 *)0x4;\n      uVar21 = puVar13 == (undefined1 *)0x4;\n      iVar10 = **(int **)(puVar13 + 0x74);\n      *(undefined4 *)(puVar13 + -8) = *(undefined4 *)(puVar13 + 0xc);\n      *(undefined4 *)(puVar13 + -0xc) = *(undefined4 *)(puVar13 + 0x74);\n      *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x10);\n      pcVar11 = *(code **)(iVar10 + 0x40);\n      *(undefined4 *)(puVar13 + -0x14) = 0x173a20;\n      local_44 = symtab_size;\n      (*pcVar11)();\n      iVar10 = 7;\n      pbVar2 = *(byte **)(puVar13 + 0x34);\n      pbVar15 = *(byte **)(puVar13 + 0x10);\n      pbVar17 = pbVar2;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar17;\n        uVar21 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      } while ((bool)uVar21);\n      pbVar15 = pbVar2 + 7;\n      bVar20 = false;\n      bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;\n      if (bVar22) {\nLAB_00173a59:\n        *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x18);\n        *(byte **)(puVar13 + -0x14) = pbVar15;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a66;\n        iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n        if (iVar10 == 0) {\n          piVar14 = *(int **)(puVar13 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x1c);\n          *(byte **)(puVar13 + -0x14) = pbVar15;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173a7a;\n          iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n          if (iVar10 != 0) goto LAB_00173a85;\n          piVar14 = *(int **)(puVar13 + 0x70);\n          *(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n          *(byte **)(puVar13 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173af5;\n          operator_delete(*(void **)(puVar13 + -0x14));\n        }\n        if (*(int *)(puVar13 + 8) == 0) {\n          return false;\n        }\n        *(undefined4 *)(puVar13 + -0x14) = 0;\n        *(int *)(puVar13 + -0x18) = *(int *)(puVar13 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(puVar13 + 0xc);\n        *(int *)(puVar13 + -0x20) = *(int *)(puVar13 + 8);\n        *(int **)(puVar13 + -0x24) = piVar14;\n        *(undefined4 *)(puVar13 + -0x28) = 0x173b1b;\n        puVar8 = Object::decompressed_section_contents\n                           (*(Object **)(puVar13 + -0x24),*(uint *)(puVar13 + -0x20),\n                            *(section_size_type **)(puVar13 + -0x1c),*(bool **)(puVar13 + -0x18),\n                            *(uint64_t **)(puVar13 + -0x14));\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 4) = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 8) = puVar8 + *(int *)(puVar13 + 0x34);\n        iVar10 = *piVar14;\n        pcVar11 = *(code **)(iVar10 + 0x18);\n        if (pcVar11 != Object::do_is_incremental) {\n          *(int **)(puVar13 + -0x14) = piVar14;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173d4d;\n          cVar7 = (*pcVar11)();\n          if (cVar7 != '\0') {\n            return (bool)cVar7;\n          }\n          iVar10 = *piVar14;\n        }\n        uVar16 = piVar14[10];\n        iVar18 = 0;\n        if (uVar16 == 0) goto LAB_00173b9d;\n        uVar16 = 0;\n        goto LAB_00173b74;\n      }\n      iVar10 = 8;\n      pbVar15 = *(byte **)(puVar13 + 0x20);\n      pbVar17 = pbVar2;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar20 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      } while (bVar22);\n      pbVar15 = pbVar2 + 8;\n      if ((!bVar20 && !bVar22) == bVar20) goto LAB_00173a59;\nLAB_00173a85:\n      symtab_size = local_44;\n      if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n        *(byte **)(puVar13 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a94;\n        operator_delete(*(void **)(puVar13 + -0x14));\n        symtab_size = local_44;\n      }\n      piVar14 = (int *)(puVar13 + 0x70);\n      *(int *)(puVar13 + 8) = *(int *)(puVar13 + 8) + 1;\n      puVar1 = (uint *)(puVar13 + 8);\n      puVar13 = puVar13 + -4;\n    } while (*puVar1 < *(uint *)(*piVar14 + 0x28));" do (compound_statement "{\n      uVar19 = puVar13 < (undefined1 *)0x4;\n      uVar21 = puVar13 == (undefined1 *)0x4;\n      iVar10 = **(int **)(puVar13 + 0x74);\n      *(undefined4 *)(puVar13 + -8) = *(undefined4 *)(puVar13 + 0xc);\n      *(undefined4 *)(puVar13 + -0xc) = *(undefined4 *)(puVar13 + 0x74);\n      *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x10);\n      pcVar11 = *(code **)(iVar10 + 0x40);\n      *(undefined4 *)(puVar13 + -0x14) = 0x173a20;\n      local_44 = symtab_size;\n      (*pcVar11)();\n      iVar10 = 7;\n      pbVar2 = *(byte **)(puVar13 + 0x34);\n      pbVar15 = *(byte **)(puVar13 + 0x10);\n      pbVar17 = pbVar2;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar17;\n        uVar21 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      } while ((bool)uVar21);\n      pbVar15 = pbVar2 + 7;\n      bVar20 = false;\n      bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;\n      if (bVar22) {\nLAB_00173a59:\n        *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x18);\n        *(byte **)(puVar13 + -0x14) = pbVar15;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a66;\n        iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n        if (iVar10 == 0) {\n          piVar14 = *(int **)(puVar13 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x1c);\n          *(byte **)(puVar13 + -0x14) = pbVar15;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173a7a;\n          iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n          if (iVar10 != 0) goto LAB_00173a85;\n          piVar14 = *(int **)(puVar13 + 0x70);\n          *(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n          *(byte **)(puVar13 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173af5;\n          operator_delete(*(void **)(puVar13 + -0x14));\n        }\n        if (*(int *)(puVar13 + 8) == 0) {\n          return false;\n        }\n        *(undefined4 *)(puVar13 + -0x14) = 0;\n        *(int *)(puVar13 + -0x18) = *(int *)(puVar13 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(puVar13 + 0xc);\n        *(int *)(puVar13 + -0x20) = *(int *)(puVar13 + 8);\n        *(int **)(puVar13 + -0x24) = piVar14;\n        *(undefined4 *)(puVar13 + -0x28) = 0x173b1b;\n        puVar8 = Object::decompressed_section_contents\n                           (*(Object **)(puVar13 + -0x24),*(uint *)(puVar13 + -0x20),\n                            *(section_size_type **)(puVar13 + -0x1c),*(bool **)(puVar13 + -0x18),\n                            *(uint64_t **)(puVar13 + -0x14));\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 4) = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 8) = puVar8 + *(int *)(puVar13 + 0x34);\n        iVar10 = *piVar14;\n        pcVar11 = *(code **)(iVar10 + 0x18);\n        if (pcVar11 != Object::do_is_incremental) {\n          *(int **)(puVar13 + -0x14) = piVar14;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173d4d;\n          cVar7 = (*pcVar11)();\n          if (cVar7 != '\0') {\n            return (bool)cVar7;\n          }\n          iVar10 = *piVar14;\n        }\n        uVar16 = piVar14[10];\n        iVar18 = 0;\n        if (uVar16 == 0) goto LAB_00173b9d;\n        uVar16 = 0;\n        goto LAB_00173b74;\n      }\n      iVar10 = 8;\n      pbVar15 = *(byte **)(puVar13 + 0x20);\n      pbVar17 = pbVar2;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar20 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      } while (bVar22);\n      pbVar15 = pbVar2 + 8;\n      if ((!bVar20 && !bVar22) == bVar20) goto LAB_00173a59;\nLAB_00173a85:\n      symtab_size = local_44;\n      if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n        *(byte **)(puVar13 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a94;\n        operator_delete(*(void **)(puVar13 + -0x14));\n        symtab_size = local_44;\n      }\n      piVar14 = (int *)(puVar13 + 0x70);\n      *(int *)(puVar13 + 8) = *(int *)(puVar13 + 8) + 1;\n      puVar1 = (uint *)(puVar13 + 8);\n      puVar13 = puVar13 + -4;\n    }" { (expression_statement "uVar19 = puVar13 < (undefined1 *)0x4;" (assignment_expression "uVar19 = puVar13 < (undefined1 *)0x4" identifier = (binary_expression "puVar13 < (undefined1 *)0x4" identifier < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar21 = puVar13 == (undefined1 *)0x4;" (assignment_expression "uVar21 = puVar13 == (undefined1 *)0x4" identifier = (binary_expression "puVar13 == (undefined1 *)0x4" identifier == (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar10 = **(int **)(puVar13 + 0x74);" (assignment_expression "iVar10 = **(int **)(puVar13 + 0x74)" identifier = (pointer_expression "**(int **)(puVar13 + 0x74)" * (pointer_expression "*(int **)(puVar13 + 0x74)" * (cast_expression "(int **)(puVar13 + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x74)" ( (binary_expression "puVar13 + 0x74" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -8) = *(undefined4 *)(puVar13 + 0xc);" (assignment_expression "*(undefined4 *)(puVar13 + -8) = *(undefined4 *)(puVar13 + 0xc)" (pointer_expression "*(undefined4 *)(puVar13 + -8)" * (cast_expression "(undefined4 *)(puVar13 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + 0xc)" * (cast_expression "(undefined4 *)(puVar13 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0xc)" ( (binary_expression "puVar13 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0xc) = *(undefined4 *)(puVar13 + 0x74);" (assignment_expression "*(undefined4 *)(puVar13 + -0xc) = *(undefined4 *)(puVar13 + 0x74)" (pointer_expression "*(undefined4 *)(puVar13 + -0xc)" * (cast_expression "(undefined4 *)(puVar13 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + 0x74)" * (cast_expression "(undefined4 *)(puVar13 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x74)" ( (binary_expression "puVar13 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x10);" (assignment_expression "*(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x10)" (pointer_expression "*(undefined4 *)(puVar13 + -0x10)" * (cast_expression "(undefined4 *)(puVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + 0x10)" * (cast_expression "(undefined4 *)(puVar13 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x10)" ( (binary_expression "puVar13 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar11 = *(code **)(iVar10 + 0x40);" (assignment_expression "pcVar11 = *(code **)(iVar10 + 0x40)" identifier = (pointer_expression "*(code **)(iVar10 + 0x40)" * (cast_expression "(code **)(iVar10 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x40)" ( (binary_expression "iVar10 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x173a20;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x173a20" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_44 = symtab_size;" (assignment_expression "local_44 = symtab_size" identifier = identifier) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar10 = 7;" (assignment_expression "iVar10 = 7" identifier = number_literal) ;) (expression_statement "pbVar2 = *(byte **)(puVar13 + 0x34);" (assignment_expression "pbVar2 = *(byte **)(puVar13 + 0x34)" identifier = (pointer_expression "*(byte **)(puVar13 + 0x34)" * (cast_expression "(byte **)(puVar13 + 0x34)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x34)" ( (binary_expression "puVar13 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "pbVar15 = *(byte **)(puVar13 + 0x10);" (assignment_expression "pbVar15 = *(byte **)(puVar13 + 0x10)" identifier = (pointer_expression "*(byte **)(puVar13 + 0x10)" * (cast_expression "(byte **)(puVar13 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x10)" ( (binary_expression "puVar13 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pbVar17 = pbVar2;" (assignment_expression "pbVar17 = pbVar2" identifier = identifier) ;) (do_statement "do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar17;\n        uVar21 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      } while ((bool)uVar21);" do (compound_statement "{\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar17;\n        uVar21 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar19 = *pbVar15 < *pbVar17;" (assignment_expression "uVar19 = *pbVar15 < *pbVar17" identifier = (binary_expression "*pbVar15 < *pbVar17" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "uVar21 = *pbVar15 == *pbVar17;" (assignment_expression "uVar21 = *pbVar15 == *pbVar17" identifier = (binary_expression "*pbVar15 == *pbVar17" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar15 + (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 "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)) ;) }) while (parenthesized_expression "((bool)uVar21)" ( (cast_expression "(bool)uVar21" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "pbVar15 = pbVar2 + 7;" (assignment_expression "pbVar15 = pbVar2 + 7" identifier = (binary_expression "pbVar2 + 7" identifier + number_literal)) ;) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;" (assignment_expression "bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19" identifier = (binary_expression "(!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19" (parenthesized_expression "(!(bool)uVar19 && !(bool)uVar21)" ( (binary_expression "!(bool)uVar19 && !(bool)uVar21" (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar21" ! (cast_expression "(bool)uVar21" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar22) {\nLAB_00173a59:\n        *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x18);\n        *(byte **)(puVar13 + -0x14) = pbVar15;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a66;\n        iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n        if (iVar10 == 0) {\n          piVar14 = *(int **)(puVar13 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x1c);\n          *(byte **)(puVar13 + -0x14) = pbVar15;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173a7a;\n          iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n          if (iVar10 != 0) goto LAB_00173a85;\n          piVar14 = *(int **)(puVar13 + 0x70);\n          *(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n          *(byte **)(puVar13 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173af5;\n          operator_delete(*(void **)(puVar13 + -0x14));\n        }\n        if (*(int *)(puVar13 + 8) == 0) {\n          return false;\n        }\n        *(undefined4 *)(puVar13 + -0x14) = 0;\n        *(int *)(puVar13 + -0x18) = *(int *)(puVar13 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(puVar13 + 0xc);\n        *(int *)(puVar13 + -0x20) = *(int *)(puVar13 + 8);\n        *(int **)(puVar13 + -0x24) = piVar14;\n        *(undefined4 *)(puVar13 + -0x28) = 0x173b1b;\n        puVar8 = Object::decompressed_section_contents\n                           (*(Object **)(puVar13 + -0x24),*(uint *)(puVar13 + -0x20),\n                            *(section_size_type **)(puVar13 + -0x1c),*(bool **)(puVar13 + -0x18),\n                            *(uint64_t **)(puVar13 + -0x14));\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 4) = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 8) = puVar8 + *(int *)(puVar13 + 0x34);\n        iVar10 = *piVar14;\n        pcVar11 = *(code **)(iVar10 + 0x18);\n        if (pcVar11 != Object::do_is_incremental) {\n          *(int **)(puVar13 + -0x14) = piVar14;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173d4d;\n          cVar7 = (*pcVar11)();\n          if (cVar7 != '\0') {\n            return (bool)cVar7;\n          }\n          iVar10 = *piVar14;\n        }\n        uVar16 = piVar14[10];\n        iVar18 = 0;\n        if (uVar16 == 0) goto LAB_00173b9d;\n        uVar16 = 0;\n        goto LAB_00173b74;\n      }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\nLAB_00173a59:\n        *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x18);\n        *(byte **)(puVar13 + -0x14) = pbVar15;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a66;\n        iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n        if (iVar10 == 0) {\n          piVar14 = *(int **)(puVar13 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x1c);\n          *(byte **)(puVar13 + -0x14) = pbVar15;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173a7a;\n          iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n          if (iVar10 != 0) goto LAB_00173a85;\n          piVar14 = *(int **)(puVar13 + 0x70);\n          *(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n          *(byte **)(puVar13 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173af5;\n          operator_delete(*(void **)(puVar13 + -0x14));\n        }\n        if (*(int *)(puVar13 + 8) == 0) {\n          return false;\n        }\n        *(undefined4 *)(puVar13 + -0x14) = 0;\n        *(int *)(puVar13 + -0x18) = *(int *)(puVar13 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(puVar13 + 0xc);\n        *(int *)(puVar13 + -0x20) = *(int *)(puVar13 + 8);\n        *(int **)(puVar13 + -0x24) = piVar14;\n        *(undefined4 *)(puVar13 + -0x28) = 0x173b1b;\n        puVar8 = Object::decompressed_section_contents\n                           (*(Object **)(puVar13 + -0x24),*(uint *)(puVar13 + -0x20),\n                            *(section_size_type **)(puVar13 + -0x1c),*(bool **)(puVar13 + -0x18),\n                            *(uint64_t **)(puVar13 + -0x14));\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 4) = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        *(uchar **)(*(int *)(puVar13 + 0x6c) + 8) = puVar8 + *(int *)(puVar13 + 0x34);\n        iVar10 = *piVar14;\n        pcVar11 = *(code **)(iVar10 + 0x18);\n        if (pcVar11 != Object::do_is_incremental) {\n          *(int **)(puVar13 + -0x14) = piVar14;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173d4d;\n          cVar7 = (*pcVar11)();\n          if (cVar7 != '\0') {\n            return (bool)cVar7;\n          }\n          iVar10 = *piVar14;\n        }\n        uVar16 = piVar14[10];\n        iVar18 = 0;\n        if (uVar16 == 0) goto LAB_00173b9d;\n        uVar16 = 0;\n        goto LAB_00173b74;\n      }" { (labeled_statement "LAB_00173a59:\n        *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x18);" statement_identifier : (expression_statement "*(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x18);" (assignment_expression "*(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x18)" (pointer_expression "*(undefined4 *)(puVar13 + -0x10)" * (cast_expression "(undefined4 *)(puVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + 0x18)" * (cast_expression "(undefined4 *)(puVar13 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x18)" ( (binary_expression "puVar13 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "*(byte **)(puVar13 + -0x14) = pbVar15;" (assignment_expression "*(byte **)(puVar13 + -0x14) = pbVar15" (pointer_expression "*(byte **)(puVar13 + -0x14)" * (cast_expression "(byte **)(puVar13 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173a66;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173a66" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));" (assignment_expression "iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10))" identifier = (call_expression "strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10))" identifier (argument_list "(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10))" ( (pointer_expression "*(char **)(puVar13 + -0x14)" * (cast_expression "(char **)(puVar13 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar13 + -0x10)" * (cast_expression "(char **)(puVar13 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar10 == 0) {\n          piVar14 = *(int **)(puVar13 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x1c);\n          *(byte **)(puVar13 + -0x14) = pbVar15;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173a7a;\n          iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n          if (iVar10 != 0) goto LAB_00173a85;\n          piVar14 = *(int **)(puVar13 + 0x70);\n          *(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d) = 1;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar14 = *(int **)(puVar13 + 0x70);\n        }" { (expression_statement "piVar14 = *(int **)(puVar13 + 0x70);" (assignment_expression "piVar14 = *(int **)(puVar13 + 0x70)" identifier = (pointer_expression "*(int **)(puVar13 + 0x70)" * (cast_expression "(int **)(puVar13 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x70)" ( (binary_expression "puVar13 + 0x70" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x1c);\n          *(byte **)(puVar13 + -0x14) = pbVar15;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173a7a;\n          iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n          if (iVar10 != 0) goto LAB_00173a85;\n          piVar14 = *(int **)(puVar13 + 0x70);\n          *(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d) = 1;\n        }" else (compound_statement "{\n          *(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x1c);\n          *(byte **)(puVar13 + -0x14) = pbVar15;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173a7a;\n          iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));\n          if (iVar10 != 0) goto LAB_00173a85;\n          piVar14 = *(int **)(puVar13 + 0x70);\n          *(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d) = 1;\n        }" { (expression_statement "*(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x1c);" (assignment_expression "*(undefined4 *)(puVar13 + -0x10) = *(undefined4 *)(puVar13 + 0x1c)" (pointer_expression "*(undefined4 *)(puVar13 + -0x10)" * (cast_expression "(undefined4 *)(puVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + 0x1c)" * (cast_expression "(undefined4 *)(puVar13 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1c)" ( (binary_expression "puVar13 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar13 + -0x14) = pbVar15;" (assignment_expression "*(byte **)(puVar13 + -0x14) = pbVar15" (pointer_expression "*(byte **)(puVar13 + -0x14)" * (cast_expression "(byte **)(puVar13 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173a7a;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173a7a" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10));" (assignment_expression "iVar10 = strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10))" identifier = (call_expression "strcmp(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10))" identifier (argument_list "(*(char **)(puVar13 + -0x14),*(char **)(puVar13 + -0x10))" ( (pointer_expression "*(char **)(puVar13 + -0x14)" * (cast_expression "(char **)(puVar13 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar13 + -0x10)" * (cast_expression "(char **)(puVar13 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar10 != 0) goto LAB_00173a85;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00173a85;" goto statement_identifier ;)) (expression_statement "piVar14 = *(int **)(puVar13 + 0x70);" (assignment_expression "piVar14 = *(int **)(puVar13 + 0x70)" identifier = (pointer_expression "*(int **)(puVar13 + 0x70)" * (cast_expression "(int **)(puVar13 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x70)" ( (binary_expression "puVar13 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d) = 1;" (assignment_expression "*(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d) = 1" (pointer_expression "*(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d)" * (cast_expression "(undefined1 *)(*(int *)(puVar13 + 0x6c) + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar13 + 0x6c) + 0x1d)" ( (binary_expression "*(int *)(puVar13 + 0x6c) + 0x1d" (pointer_expression "*(int *)(puVar13 + 0x6c)" * (cast_expression "(int *)(puVar13 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x6c)" ( (binary_expression "puVar13 + 0x6c" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) }))) (if_statement "if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n          *(byte **)(puVar13 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173af5;\n          operator_delete(*(void **)(puVar13 + -0x14));\n        }" if (parenthesized_expression "(pbVar2 != *(byte **)(puVar13 + 0x14))" ( (binary_expression "pbVar2 != *(byte **)(puVar13 + 0x14)" identifier != (pointer_expression "*(byte **)(puVar13 + 0x14)" * (cast_expression "(byte **)(puVar13 + 0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x14)" ( (binary_expression "puVar13 + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n          *(byte **)(puVar13 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173af5;\n          operator_delete(*(void **)(puVar13 + -0x14));\n        }" { (expression_statement "*(byte **)(puVar13 + -0x14) = pbVar2;" (assignment_expression "*(byte **)(puVar13 + -0x14) = pbVar2" (pointer_expression "*(byte **)(puVar13 + -0x14)" * (cast_expression "(byte **)(puVar13 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173af5;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173af5" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)(puVar13 + -0x14));" (call_expression "operator_delete(*(void **)(puVar13 + -0x14))" identifier (argument_list "(*(void **)(puVar13 + -0x14))" ( (pointer_expression "*(void **)(puVar13 + -0x14)" * (cast_expression "(void **)(puVar13 + -0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) ))) ;) })) (if_statement "if (*(int *)(puVar13 + 8) == 0) {\n          return false;\n        }" if (parenthesized_expression "(*(int *)(puVar13 + 8) == 0)" ( (binary_expression "*(int *)(puVar13 + 8) == 0" (pointer_expression "*(int *)(puVar13 + 8)" * (cast_expression "(int *)(puVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar13 + -0x18) = *(int *)(puVar13 + 0x6c) + 0xc;" (assignment_expression "*(int *)(puVar13 + -0x18) = *(int *)(puVar13 + 0x6c) + 0xc" (pointer_expression "*(int *)(puVar13 + -0x18)" * (cast_expression "(int *)(puVar13 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar13 + 0x6c) + 0xc" (pointer_expression "*(int *)(puVar13 + 0x6c)" * (cast_expression "(int *)(puVar13 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x6c)" ( (binary_expression "puVar13 + 0x6c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(puVar13 + 0xc);" (assignment_expression "*(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(puVar13 + 0xc)" (pointer_expression "*(undefined4 *)(puVar13 + -0x1c)" * (cast_expression "(undefined4 *)(puVar13 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x1c)" ( (binary_expression "puVar13 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + 0xc)" * (cast_expression "(undefined4 *)(puVar13 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0xc)" ( (binary_expression "puVar13 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar13 + -0x20) = *(int *)(puVar13 + 8);" (assignment_expression "*(int *)(puVar13 + -0x20) = *(int *)(puVar13 + 8)" (pointer_expression "*(int *)(puVar13 + -0x20)" * (cast_expression "(int *)(puVar13 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(int *)(puVar13 + 8)" * (cast_expression "(int *)(puVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar13 + -0x24) = piVar14;" (assignment_expression "*(int **)(puVar13 + -0x24) = piVar14" (pointer_expression "*(int **)(puVar13 + -0x24)" * (cast_expression "(int **)(puVar13 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x24)" ( (binary_expression "puVar13 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x28) = 0x173b1b;" (assignment_expression "*(undefined4 *)(puVar13 + -0x28) = 0x173b1b" (pointer_expression "*(undefined4 *)(puVar13 + -0x28)" * (cast_expression "(undefined4 *)(puVar13 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x28)" ( (binary_expression "puVar13 + -0x28" identifier + number_literal) )))) = number_literal) ;) (ERROR "puVar8 = Object::" (assignment_expression "puVar8 = Object" identifier = identifier) : :) (expression_statement "decompressed_section_contents\n                           (*(Object **)(puVar13 + -0x24),*(uint *)(puVar13 + -0x20),\n                            *(section_size_type **)(puVar13 + -0x1c),*(bool **)(puVar13 + -0x18),\n                            *(uint64_t **)(puVar13 + -0x14));" (call_expression "decompressed_section_contents\n                           (*(Object **)(puVar13 + -0x24),*(uint *)(puVar13 + -0x20),\n                            *(section_size_type **)(puVar13 + -0x1c),*(bool **)(puVar13 + -0x18),\n                            *(uint64_t **)(puVar13 + -0x14))" identifier (argument_list "(*(Object **)(puVar13 + -0x24),*(uint *)(puVar13 + -0x20),\n                            *(section_size_type **)(puVar13 + -0x1c),*(bool **)(puVar13 + -0x18),\n                            *(uint64_t **)(puVar13 + -0x14))" ( (pointer_expression "*(Object **)(puVar13 + -0x24)" * (cast_expression "(Object **)(puVar13 + -0x24)" ( (type_descriptor "Object **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x24)" ( (binary_expression "puVar13 + -0x24" identifier + number_literal) )))) , (pointer_expression "*(uint *)(puVar13 + -0x20)" * (cast_expression "(uint *)(puVar13 + -0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) )))) , (pointer_expression "*(section_size_type **)(puVar13 + -0x1c)" * (cast_expression "(section_size_type **)(puVar13 + -0x1c)" ( (type_descriptor "section_size_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x1c)" ( (binary_expression "puVar13 + -0x1c" identifier + number_literal) )))) , (pointer_expression "*(bool **)(puVar13 + -0x18)" * (cast_expression "(bool **)(puVar13 + -0x18)" ( (type_descriptor "bool **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) , (pointer_expression "*(uint64_t **)(puVar13 + -0x14)" * (cast_expression "(uint64_t **)(puVar13 + -0x14)" ( (type_descriptor "uint64_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) ))) ;) (expression_statement "*(uchar **)(*(int *)(puVar13 + 0x6c) + 4) = puVar8;" (assignment_expression "*(uchar **)(*(int *)(puVar13 + 0x6c) + 4) = puVar8" (pointer_expression "*(uchar **)(*(int *)(puVar13 + 0x6c) + 4)" * (cast_expression "(uchar **)(*(int *)(puVar13 + 0x6c) + 4)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar13 + 0x6c) + 4)" ( (binary_expression "*(int *)(puVar13 + 0x6c) + 4" (pointer_expression "*(int *)(puVar13 + 0x6c)" * (cast_expression "(int *)(puVar13 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x6c)" ( (binary_expression "puVar13 + 0x6c" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (if_statement "if (puVar8 == (uchar *)0x0) {\n          return false;\n        }" if (parenthesized_expression "(puVar8 == (uchar *)0x0)" ( (binary_expression "puVar8 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) (expression_statement "*(uchar **)(*(int *)(puVar13 + 0x6c) + 8) = puVar8 + *(int *)(puVar13 + 0x34);" (assignment_expression "*(uchar **)(*(int *)(puVar13 + 0x6c) + 8) = puVar8 + *(int *)(puVar13 + 0x34)" (pointer_expression "*(uchar **)(*(int *)(puVar13 + 0x6c) + 8)" * (cast_expression "(uchar **)(*(int *)(puVar13 + 0x6c) + 8)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar13 + 0x6c) + 8)" ( (binary_expression "*(int *)(puVar13 + 0x6c) + 8" (pointer_expression "*(int *)(puVar13 + 0x6c)" * (cast_expression "(int *)(puVar13 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x6c)" ( (binary_expression "puVar13 + 0x6c" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "puVar8 + *(int *)(puVar13 + 0x34)" identifier + (pointer_expression "*(int *)(puVar13 + 0x34)" * (cast_expression "(int *)(puVar13 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x34)" ( (binary_expression "puVar13 + 0x34" identifier + number_literal) )))))) ;) (expression_statement "iVar10 = *piVar14;" (assignment_expression "iVar10 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "pcVar11 = *(code **)(iVar10 + 0x18);" (assignment_expression "pcVar11 = *(code **)(iVar10 + 0x18)" identifier = (pointer_expression "*(code **)(iVar10 + 0x18)" * (cast_expression "(code **)(iVar10 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (pcVar11 != Object::do_is_incremental) {\n          *(int **)(puVar13 + -0x14) = piVar14;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173d4d;\n          cVar7 = (*pcVar11)();\n          if (cVar7 != '\0') {\n            return (bool)cVar7;\n          }\n          iVar10 = *piVar14;\n        }" if (parenthesized_expression "(pcVar11 != Object::do_is_incremental)" ( (binary_expression "pcVar11 != Object" identifier != identifier) (ERROR "::do_is_incremental" : : identifier) )) (compound_statement "{\n          *(int **)(puVar13 + -0x14) = piVar14;\n          *(undefined4 *)(puVar13 + -0x18) = 0x173d4d;\n          cVar7 = (*pcVar11)();\n          if (cVar7 != '\0') {\n            return (bool)cVar7;\n          }\n          iVar10 = *piVar14;\n        }" { (expression_statement "*(int **)(puVar13 + -0x14) = piVar14;" (assignment_expression "*(int **)(puVar13 + -0x14) = piVar14" (pointer_expression "*(int **)(puVar13 + -0x14)" * (cast_expression "(int **)(puVar13 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173d4d;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173d4d" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = (*pcVar11)();" (assignment_expression "cVar7 = (*pcVar11)()" identifier = (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar7 != '\0') {\n            return (bool)cVar7;\n          }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            return (bool)cVar7;\n          }" { (return_statement "return (bool)cVar7;" return (cast_expression "(bool)cVar7" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })) (expression_statement "iVar10 = *piVar14;" (assignment_expression "iVar10 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) })) (expression_statement "uVar16 = piVar14[10];" (assignment_expression "uVar16 = piVar14[10]" identifier = (subscript_expression "piVar14[10]" identifier [ number_literal ])) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (if_statement "if (uVar16 == 0) goto LAB_00173b9d;" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00173b9d;" goto statement_identifier ;)) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00173b74;" goto statement_identifier ;) })) (expression_statement "iVar10 = 8;" (assignment_expression "iVar10 = 8" identifier = number_literal) ;) (expression_statement "pbVar15 = *(byte **)(puVar13 + 0x20);" (assignment_expression "pbVar15 = *(byte **)(puVar13 + 0x20)" identifier = (pointer_expression "*(byte **)(puVar13 + 0x20)" * (cast_expression "(byte **)(puVar13 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x20)" ( (binary_expression "puVar13 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pbVar17 = pbVar2;" (assignment_expression "pbVar17 = pbVar2" identifier = identifier) ;) (do_statement "do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar20 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      } while (bVar22);" do (compound_statement "{\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar20 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n      }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar15 < *pbVar17;" (assignment_expression "bVar20 = *pbVar15 < *pbVar17" identifier = (binary_expression "*pbVar15 < *pbVar17" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar22 = *pbVar15 == *pbVar17;" (assignment_expression "bVar22 = *pbVar15 == *pbVar17" identifier = (binary_expression "*pbVar15 == *pbVar17" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar15 + (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 "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)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "pbVar15 = pbVar2 + 8;" (assignment_expression "pbVar15 = pbVar2 + 8" identifier = (binary_expression "pbVar2 + 8" identifier + number_literal)) ;) (if_statement "if ((!bVar20 && !bVar22) == bVar20) goto LAB_00173a59;" if (parenthesized_expression "((!bVar20 && !bVar22) == bVar20)" ( (binary_expression "(!bVar20 && !bVar22) == bVar20" (parenthesized_expression "(!bVar20 && !bVar22)" ( (binary_expression "!bVar20 && !bVar22" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_00173a59;" goto statement_identifier ;)) (labeled_statement "LAB_00173a85:\n      symtab_size = local_44;" statement_identifier : (expression_statement "symtab_size = local_44;" (assignment_expression "symtab_size = local_44" identifier = identifier) ;)) (if_statement "if (pbVar2 != *(byte **)(puVar13 + 0x14)) {\n        *(byte **)(puVar13 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a94;\n        operator_delete(*(void **)(puVar13 + -0x14));\n        symtab_size = local_44;\n      }" if (parenthesized_expression "(pbVar2 != *(byte **)(puVar13 + 0x14))" ( (binary_expression "pbVar2 != *(byte **)(puVar13 + 0x14)" identifier != (pointer_expression "*(byte **)(puVar13 + 0x14)" * (cast_expression "(byte **)(puVar13 + 0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x14)" ( (binary_expression "puVar13 + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n        *(byte **)(puVar13 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar13 + -0x18) = 0x173a94;\n        operator_delete(*(void **)(puVar13 + -0x14));\n        symtab_size = local_44;\n      }" { (expression_statement "*(byte **)(puVar13 + -0x14) = pbVar2;" (assignment_expression "*(byte **)(puVar13 + -0x14) = pbVar2" (pointer_expression "*(byte **)(puVar13 + -0x14)" * (cast_expression "(byte **)(puVar13 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173a94;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173a94" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)(puVar13 + -0x14));" (call_expression "operator_delete(*(void **)(puVar13 + -0x14))" identifier (argument_list "(*(void **)(puVar13 + -0x14))" ( (pointer_expression "*(void **)(puVar13 + -0x14)" * (cast_expression "(void **)(puVar13 + -0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) ))) ;) (expression_statement "symtab_size = local_44;" (assignment_expression "symtab_size = local_44" identifier = identifier) ;) })) (expression_statement "piVar14 = (int *)(puVar13 + 0x70);" (assignment_expression "piVar14 = (int *)(puVar13 + 0x70)" identifier = (cast_expression "(int *)(puVar13 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x70)" ( (binary_expression "puVar13 + 0x70" identifier + number_literal) )))) ;) (expression_statement "*(int *)(puVar13 + 8) = *(int *)(puVar13 + 8) + 1;" (assignment_expression "*(int *)(puVar13 + 8) = *(int *)(puVar13 + 8) + 1" (pointer_expression "*(int *)(puVar13 + 8)" * (cast_expression "(int *)(puVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar13 + 8) + 1" (pointer_expression "*(int *)(puVar13 + 8)" * (cast_expression "(int *)(puVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar1 = (uint *)(puVar13 + 8);" (assignment_expression "puVar1 = (uint *)(puVar13 + 8)" identifier = (cast_expression "(uint *)(puVar13 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) )))) ;) (expression_statement "puVar13 = puVar13 + -4;" (assignment_expression "puVar13 = puVar13 + -4" identifier = (binary_expression "puVar13 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*puVar1 < *(uint *)(*piVar14 + 0x28))" ( (binary_expression "*puVar1 < *(uint *)(*piVar14 + 0x28)" (pointer_expression "*puVar1" * identifier) < (pointer_expression "*(uint *)(*piVar14 + 0x28)" * (cast_expression "(uint *)(*piVar14 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar14 + 0x28)" ( (binary_expression "*piVar14 + 0x28" (pointer_expression "*piVar14" * identifier) + number_literal) ))))) )) ;) })) (return_statement "return false;" return false ;) (labeled_statement "LAB_00173b74:\n  do {\n    *(uint *)(puVar13 + -0x10) = uVar16;\n    *(int **)(puVar13 + -0x14) = piVar14;\n    pcVar11 = *(code **)(iVar10 + 0x50);\n    *(undefined4 *)(puVar13 + -0x18) = 0x173b7c;\n    iVar18 = (*pcVar11)();\n    if ((iVar18 == 9) || (iVar18 == 4)) {\n      iVar10 = *piVar14;\n      *(uint *)(puVar13 + -0x10) = uVar16;\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar10 + 0x58);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173b91;\n      iVar10 = (*pcVar11)();\n      if (*(int *)(puVar13 + 8) == iVar10) {\n        iVar10 = *piVar14;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar16 = uVar16 + 1;\n    iVar10 = *piVar14;\n  } while (uVar16 < (uint)piVar14[10]);" statement_identifier : (do_statement "do {\n    *(uint *)(puVar13 + -0x10) = uVar16;\n    *(int **)(puVar13 + -0x14) = piVar14;\n    pcVar11 = *(code **)(iVar10 + 0x50);\n    *(undefined4 *)(puVar13 + -0x18) = 0x173b7c;\n    iVar18 = (*pcVar11)();\n    if ((iVar18 == 9) || (iVar18 == 4)) {\n      iVar10 = *piVar14;\n      *(uint *)(puVar13 + -0x10) = uVar16;\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar10 + 0x58);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173b91;\n      iVar10 = (*pcVar11)();\n      if (*(int *)(puVar13 + 8) == iVar10) {\n        iVar10 = *piVar14;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar16 = uVar16 + 1;\n    iVar10 = *piVar14;\n  } while (uVar16 < (uint)piVar14[10]);" do (compound_statement "{\n    *(uint *)(puVar13 + -0x10) = uVar16;\n    *(int **)(puVar13 + -0x14) = piVar14;\n    pcVar11 = *(code **)(iVar10 + 0x50);\n    *(undefined4 *)(puVar13 + -0x18) = 0x173b7c;\n    iVar18 = (*pcVar11)();\n    if ((iVar18 == 9) || (iVar18 == 4)) {\n      iVar10 = *piVar14;\n      *(uint *)(puVar13 + -0x10) = uVar16;\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar10 + 0x58);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173b91;\n      iVar10 = (*pcVar11)();\n      if (*(int *)(puVar13 + 8) == iVar10) {\n        iVar10 = *piVar14;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar16 = uVar16 + 1;\n    iVar10 = *piVar14;\n  }" { (expression_statement "*(uint *)(puVar13 + -0x10) = uVar16;" (assignment_expression "*(uint *)(puVar13 + -0x10) = uVar16" (pointer_expression "*(uint *)(puVar13 + -0x10)" * (cast_expression "(uint *)(puVar13 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar13 + -0x14) = piVar14;" (assignment_expression "*(int **)(puVar13 + -0x14) = piVar14" (pointer_expression "*(int **)(puVar13 + -0x14)" * (cast_expression "(int **)(puVar13 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar11 = *(code **)(iVar10 + 0x50);" (assignment_expression "pcVar11 = *(code **)(iVar10 + 0x50)" identifier = (pointer_expression "*(code **)(iVar10 + 0x50)" * (cast_expression "(code **)(iVar10 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x50)" ( (binary_expression "iVar10 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173b7c;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173b7c" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar18 = (*pcVar11)();" (assignment_expression "iVar18 = (*pcVar11)()" identifier = (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if ((iVar18 == 9) || (iVar18 == 4)) {\n      iVar10 = *piVar14;\n      *(uint *)(puVar13 + -0x10) = uVar16;\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar10 + 0x58);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173b91;\n      iVar10 = (*pcVar11)();\n      if (*(int *)(puVar13 + 8) == iVar10) {\n        iVar10 = *piVar14;\n        goto LAB_00173b9d;\n      }\n    }" if (parenthesized_expression "((iVar18 == 9) || (iVar18 == 4))" ( (binary_expression "(iVar18 == 9) || (iVar18 == 4)" (parenthesized_expression "(iVar18 == 9)" ( (binary_expression "iVar18 == 9" identifier == number_literal) )) || (parenthesized_expression "(iVar18 == 4)" ( (binary_expression "iVar18 == 4" identifier == number_literal) ))) )) (compound_statement "{\n      iVar10 = *piVar14;\n      *(uint *)(puVar13 + -0x10) = uVar16;\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar10 + 0x58);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173b91;\n      iVar10 = (*pcVar11)();\n      if (*(int *)(puVar13 + 8) == iVar10) {\n        iVar10 = *piVar14;\n        goto LAB_00173b9d;\n      }\n    }" { (expression_statement "iVar10 = *piVar14;" (assignment_expression "iVar10 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "*(uint *)(puVar13 + -0x10) = uVar16;" (assignment_expression "*(uint *)(puVar13 + -0x10) = uVar16" (pointer_expression "*(uint *)(puVar13 + -0x10)" * (cast_expression "(uint *)(puVar13 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar13 + -0x14) = piVar14;" (assignment_expression "*(int **)(puVar13 + -0x14) = piVar14" (pointer_expression "*(int **)(puVar13 + -0x14)" * (cast_expression "(int **)(puVar13 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar11 = *(code **)(iVar10 + 0x58);" (assignment_expression "pcVar11 = *(code **)(iVar10 + 0x58)" identifier = (pointer_expression "*(code **)(iVar10 + 0x58)" * (cast_expression "(code **)(iVar10 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x58)" ( (binary_expression "iVar10 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173b91;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173b91" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = (*pcVar11)();" (assignment_expression "iVar10 = (*pcVar11)()" identifier = (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (*(int *)(puVar13 + 8) == iVar10) {\n        iVar10 = *piVar14;\n        goto LAB_00173b9d;\n      }" if (parenthesized_expression "(*(int *)(puVar13 + 8) == iVar10)" ( (binary_expression "*(int *)(puVar13 + 8) == iVar10" (pointer_expression "*(int *)(puVar13 + 8)" * (cast_expression "(int *)(puVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        iVar10 = *piVar14;\n        goto LAB_00173b9d;\n      }" { (expression_statement "iVar10 = *piVar14;" (assignment_expression "iVar10 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (goto_statement "goto LAB_00173b9d;" goto statement_identifier ;) })) })) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *piVar14;" (assignment_expression "iVar10 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) }) while (parenthesized_expression "(uVar16 < (uint)piVar14[10])" ( (binary_expression "uVar16 < (uint)piVar14[10]" identifier < (cast_expression "(uint)piVar14[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar14[10]" identifier [ number_literal ]))) )) ;)) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00173b9d:\n  pcVar11 = *(code **)(iVar10 + 8);" statement_identifier : (expression_statement "pcVar11 = *(code **)(iVar10 + 8);" (assignment_expression "pcVar11 = *(code **)(iVar10 + 8)" identifier = (pointer_expression "*(code **)(iVar10 + 8)" * (cast_expression "(code **)(iVar10 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;)) (expression_statement "*(code **)(puVar13 + 8) = Relobj::elfsize;" (assignment_expression "*(code **)(puVar13 + 8) = Relobj" (pointer_expression "*(code **)(puVar13 + 8)" * (cast_expression "(code **)(puVar13 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) )))) = identifier) (ERROR "::elfsize" : : identifier) ;) (if_statement "if (pcVar11 == Relobj::elfsize) {\n    *(int **)(puVar13 + -0x14) = piVar14;\n    pcVar11 = *(code **)(iVar10 + 0xe4);\n    *(undefined4 *)(puVar13 + -0x18) = 0x173bbc;\n    iVar10 = (*pcVar11)();\n    pcVar11 = *(code **)(puVar13 + 8);\n  }\n  else {\n    *(int **)(puVar13 + -0x14) = piVar14;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173d66;\n    iVar10 = (*pcVar11)();\n    pcVar11 = *(code **)(puVar13 + 8);\n  }" if (parenthesized_expression "(pcVar11 == Relobj::elfsize)" ( (binary_expression "pcVar11 == Relobj" identifier == identifier) (ERROR "::elfsize" : : identifier) )) (compound_statement "{\n    *(int **)(puVar13 + -0x14) = piVar14;\n    pcVar11 = *(code **)(iVar10 + 0xe4);\n    *(undefined4 *)(puVar13 + -0x18) = 0x173bbc;\n    iVar10 = (*pcVar11)();\n    pcVar11 = *(code **)(puVar13 + 8);\n  }" { (expression_statement "*(int **)(puVar13 + -0x14) = piVar14;" (assignment_expression "*(int **)(puVar13 + -0x14) = piVar14" (pointer_expression "*(int **)(puVar13 + -0x14)" * (cast_expression "(int **)(puVar13 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar11 = *(code **)(iVar10 + 0xe4);" (assignment_expression "pcVar11 = *(code **)(iVar10 + 0xe4)" identifier = (pointer_expression "*(code **)(iVar10 + 0xe4)" * (cast_expression "(code **)(iVar10 + 0xe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xe4)" ( (binary_expression "iVar10 + 0xe4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173bbc;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173bbc" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = (*pcVar11)();" (assignment_expression "iVar10 = (*pcVar11)()" identifier = (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar11 = *(code **)(puVar13 + 8);" (assignment_expression "pcVar11 = *(code **)(puVar13 + 8)" identifier = (pointer_expression "*(code **)(puVar13 + 8)" * (cast_expression "(code **)(puVar13 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    *(int **)(puVar13 + -0x14) = piVar14;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173d66;\n    iVar10 = (*pcVar11)();\n    pcVar11 = *(code **)(puVar13 + 8);\n  }" else (compound_statement "{\n    *(int **)(puVar13 + -0x14) = piVar14;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173d66;\n    iVar10 = (*pcVar11)();\n    pcVar11 = *(code **)(puVar13 + 8);\n  }" { (expression_statement "*(int **)(puVar13 + -0x14) = piVar14;" (assignment_expression "*(int **)(puVar13 + -0x14) = piVar14" (pointer_expression "*(int **)(puVar13 + -0x14)" * (cast_expression "(int **)(puVar13 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173d66;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173d66" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = (*pcVar11)();" (assignment_expression "iVar10 = (*pcVar11)()" identifier = (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar11 = *(code **)(puVar13 + 8);" (assignment_expression "pcVar11 = *(code **)(puVar13 + 8)" identifier = (pointer_expression "*(code **)(puVar13 + 8)" * (cast_expression "(code **)(puVar13 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar3 = *piVar14;" (assignment_expression "iVar3 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (if_statement "if (iVar10 == 0x20) {\n    pcVar11 = *(code **)(iVar3 + 0xc);\n    if (pcVar11 == Relobj::is_big_endian) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173cce;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d94;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_ECX_00;\n    }\n    if (cVar7 != '\0') {\n      *(undefined4 *)(puVar13 + -8) = uVar12;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x68;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar13 + -0x18) = 0x173db2;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    *(undefined4 *)(puVar13 + -0x14) = 0x28;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173ce3;\n    puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14));\n    uVar12 = *(undefined4 *)(puVar13 + 0x28);\n    *puVar9 = &PTR__Sized_elf_reloc_mapper_00335b08;\n    uVar5 = *(undefined4 *)(puVar13 + 0x74);\n    puVar9[1] = piVar14;\n    puVar9[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar13 + 0x24);\n    puVar9[4] = uVar12;\n    puVar9[3] = uVar5;\n    pcVar11 = Sized_elf_reloc_mapper<32,_false>::do_initialize;\n    puVar9[5] = 0;\n    puVar9[6] = 0;\n    puVar9[7] = 0;\n    puVar9[8] = 0;\n    puVar9[9] = 0;\n  }\n  else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar11) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173be4;\n      iVar10 = (*pcVar11)();\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d86;\n      iVar10 = (*pcVar4)();\n    }\n    if (iVar10 != 0x40) {\n      *(int *)(puVar13 + -8) = iVar10;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x8b;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)(puVar13 + -0x18) = &UNK_00173de1;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    iVar10 = *piVar14;\n    pcVar11 = *(code **)(iVar10 + 0xc);\n    if (pcVar11 == Relobj::is_big_endian) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar10 + 0xe8);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173c0e;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d78;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX_00;\n    }\n    if (cVar7 != '\0') {\n      *(undefined4 *)(puVar13 + -8) = uVar12;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x7d;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar13 + -0x18) = 0x173dc8;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    *(undefined4 *)(puVar13 + -0x14) = 0x28;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173c23;\n    puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14));\n    uVar12 = *(undefined4 *)(puVar13 + 0x28);\n    *puVar9 = &PTR__Sized_elf_reloc_mapper_00335b30;\n    uVar5 = *(undefined4 *)(puVar13 + 0x74);\n    puVar9[1] = piVar14;\n    puVar9[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar13 + 0x24);\n    puVar9[4] = uVar12;\n    puVar9[5] = 0;\n    puVar9[6] = 0;\n    puVar9[7] = 0;\n    puVar9[8] = 0;\n    puVar9[9] = 0;\n    puVar9[3] = uVar5;\n    pcVar11 = Sized_elf_reloc_mapper<64,_false>::do_initialize;\n  }" if (parenthesized_expression "(iVar10 == 0x20)" ( (binary_expression "iVar10 == 0x20" identifier == number_literal) )) (compound_statement "{\n    pcVar11 = *(code **)(iVar3 + 0xc);\n    if (pcVar11 == Relobj::is_big_endian) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173cce;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d94;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_ECX_00;\n    }\n    if (cVar7 != '\0') {\n      *(undefined4 *)(puVar13 + -8) = uVar12;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x68;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar13 + -0x18) = 0x173db2;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    *(undefined4 *)(puVar13 + -0x14) = 0x28;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173ce3;\n    puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14));\n    uVar12 = *(undefined4 *)(puVar13 + 0x28);\n    *puVar9 = &PTR__Sized_elf_reloc_mapper_00335b08;\n    uVar5 = *(undefined4 *)(puVar13 + 0x74);\n    puVar9[1] = piVar14;\n    puVar9[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar13 + 0x24);\n    puVar9[4] = uVar12;\n    puVar9[3] = uVar5;\n    pcVar11 = Sized_elf_reloc_mapper<32,_false>::do_initialize;\n    puVar9[5] = 0;\n    puVar9[6] = 0;\n    puVar9[7] = 0;\n    puVar9[8] = 0;\n    puVar9[9] = 0;\n  }" { (expression_statement "pcVar11 = *(code **)(iVar3 + 0xc);" (assignment_expression "pcVar11 = *(code **)(iVar3 + 0xc)" identifier = (pointer_expression "*(code **)(iVar3 + 0xc)" * (cast_expression "(code **)(iVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pcVar11 == Relobj::is_big_endian) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173cce;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d94;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_ECX_00;\n    }" if (parenthesized_expression "(pcVar11 == Relobj::is_big_endian)" ( (binary_expression "pcVar11 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173cce;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_ECX;\n    }" { (expression_statement "*(int **)(puVar13 + -0x14) = piVar14;" (assignment_expression "*(int **)(puVar13 + -0x14) = piVar14" (pointer_expression "*(int **)(puVar13 + -0x14)" * (cast_expression "(int **)(puVar13 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar11 = *(code **)(iVar3 + 0xe8);" (assignment_expression "pcVar11 = *(code **)(iVar3 + 0xe8)" identifier = (pointer_expression "*(code **)(iVar3 + 0xe8)" * (cast_expression "(code **)(iVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xe8)" ( (binary_expression "iVar3 + 0xe8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173cce;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173cce" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = (*pcVar11)();" (assignment_expression "cVar7 = (*pcVar11)()" identifier = (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar12 = extraout_ECX;" (assignment_expression "uVar12 = extraout_ECX" identifier = identifier) ;) }) (else_clause "else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d94;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_ECX_00;\n    }" else (compound_statement "{\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d94;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_ECX_00;\n    }" { (expression_statement "*(int **)(puVar13 + -0x14) = piVar14;" (assignment_expression "*(int **)(puVar13 + -0x14) = piVar14" (pointer_expression "*(int **)(puVar13 + -0x14)" * (cast_expression "(int **)(puVar13 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173d94;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173d94" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = (*pcVar11)();" (assignment_expression "cVar7 = (*pcVar11)()" identifier = (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar12 = extraout_ECX_00;" (assignment_expression "uVar12 = extraout_ECX_00" identifier = identifier) ;) }))) (if_statement "if (cVar7 != '\0') {\n      *(undefined4 *)(puVar13 + -8) = uVar12;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x68;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar13 + -0x18) = 0x173db2;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(undefined4 *)(puVar13 + -8) = uVar12;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x68;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar13 + -0x18) = 0x173db2;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }" { (expression_statement "*(undefined4 *)(puVar13 + -8) = uVar12;" (assignment_expression "*(undefined4 *)(puVar13 + -8) = uVar12" (pointer_expression "*(undefined4 *)(puVar13 + -8)" * (cast_expression "(undefined4 *)(puVar13 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";" (assignment_expression "*(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper"" (pointer_expression "*(char **)(puVar13 + -0xc)" * (cast_expression "(char **)(puVar13 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = (string_literal ""make_elf_reloc_mapper"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x10) = 0x68;" (assignment_expression "*(undefined4 *)(puVar13 + -0x10) = 0x68" (pointer_expression "*(undefined4 *)(puVar13 + -0x10)" * (cast_expression "(undefined4 *)(puVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";" (assignment_expression "*(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc"" (pointer_expression "*(char **)(puVar13 + -0x14)" * (cast_expression "(char **)(puVar13 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = (string_literal ""../../gold/dwarf_reader.cc"" " string_content ")) ;) comment (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173db2;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173db2" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));" (call_expression "do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc))" identifier (argument_list "(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc))" ( (pointer_expression "*(char **)(puVar13 + -0x14)" * (cast_expression "(char **)(puVar13 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(int *)(puVar13 + -0x10)" * (cast_expression "(int *)(puVar13 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar13 + -0xc)" * (cast_expression "(char **)(puVar13 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) ))) ;) })) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x28;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x28" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173ce3;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173ce3" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14));" (assignment_expression "puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14))" identifier = (cast_expression "(undefined4 *)operator_new(*(uint *)(puVar13 + -0x14))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(*(uint *)(puVar13 + -0x14))" identifier (argument_list "(*(uint *)(puVar13 + -0x14))" ( (pointer_expression "*(uint *)(puVar13 + -0x14)" * (cast_expression "(uint *)(puVar13 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) ))))) ;) (expression_statement "uVar12 = *(undefined4 *)(puVar13 + 0x28);" (assignment_expression "uVar12 = *(undefined4 *)(puVar13 + 0x28)" identifier = (pointer_expression "*(undefined4 *)(puVar13 + 0x28)" * (cast_expression "(undefined4 *)(puVar13 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x28)" ( (binary_expression "puVar13 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*puVar9 = &PTR__Sized_elf_reloc_mapper_00335b08;" (assignment_expression "*puVar9 = &PTR__Sized_elf_reloc_mapper_00335b08" (pointer_expression "*puVar9" * identifier) = (pointer_expression "&PTR__Sized_elf_reloc_mapper_00335b08" & identifier)) ;) (expression_statement "uVar5 = *(undefined4 *)(puVar13 + 0x74);" (assignment_expression "uVar5 = *(undefined4 *)(puVar13 + 0x74)" identifier = (pointer_expression "*(undefined4 *)(puVar13 + 0x74)" * (cast_expression "(undefined4 *)(puVar13 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x74)" ( (binary_expression "puVar13 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "puVar9[1] = piVar14;" (assignment_expression "puVar9[1] = piVar14" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[2] = uVar5;" (assignment_expression "puVar9[2] = uVar5" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = *(undefined4 *)(puVar13 + 0x24);" (assignment_expression "uVar5 = *(undefined4 *)(puVar13 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(puVar13 + 0x24)" * (cast_expression "(undefined4 *)(puVar13 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x24)" ( (binary_expression "puVar13 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "puVar9[4] = uVar12;" (assignment_expression "puVar9[4] = uVar12" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[3] = uVar5;" (assignment_expression "puVar9[3] = uVar5" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar11 = Sized_elf_reloc_mapper<32,_false>::do_initialize;" (comma_expression "pcVar11 = Sized_elf_reloc_mapper<32,_false>::do_initialize" (assignment_expression "pcVar11 = Sized_elf_reloc_mapper<32" identifier = (binary_expression "Sized_elf_reloc_mapper<32" identifier < number_literal)) , (binary_expression "_false>::do_initialize" identifier > (ERROR "::" : :) identifier)) ;) (expression_statement "puVar9[5] = 0;" (assignment_expression "puVar9[5] = 0" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[6] = 0;" (assignment_expression "puVar9[6] = 0" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[7] = 0;" (assignment_expression "puVar9[7] = 0" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[8] = 0;" (assignment_expression "puVar9[8] = 0" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[9] = 0;" (assignment_expression "puVar9[9] = 0" (subscript_expression "puVar9[9]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar11) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173be4;\n      iVar10 = (*pcVar11)();\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d86;\n      iVar10 = (*pcVar4)();\n    }\n    if (iVar10 != 0x40) {\n      *(int *)(puVar13 + -8) = iVar10;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x8b;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)(puVar13 + -0x18) = &UNK_00173de1;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    iVar10 = *piVar14;\n    pcVar11 = *(code **)(iVar10 + 0xc);\n    if (pcVar11 == Relobj::is_big_endian) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar10 + 0xe8);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173c0e;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d78;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX_00;\n    }\n    if (cVar7 != '\0') {\n      *(undefined4 *)(puVar13 + -8) = uVar12;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x7d;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar13 + -0x18) = 0x173dc8;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    *(undefined4 *)(puVar13 + -0x14) = 0x28;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173c23;\n    puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14));\n    uVar12 = *(undefined4 *)(puVar13 + 0x28);\n    *puVar9 = &PTR__Sized_elf_reloc_mapper_00335b30;\n    uVar5 = *(undefined4 *)(puVar13 + 0x74);\n    puVar9[1] = piVar14;\n    puVar9[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar13 + 0x24);\n    puVar9[4] = uVar12;\n    puVar9[5] = 0;\n    puVar9[6] = 0;\n    puVar9[7] = 0;\n    puVar9[8] = 0;\n    puVar9[9] = 0;\n    puVar9[3] = uVar5;\n    pcVar11 = Sized_elf_reloc_mapper<64,_false>::do_initialize;\n  }" else (compound_statement "{\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar11) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173be4;\n      iVar10 = (*pcVar11)();\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d86;\n      iVar10 = (*pcVar4)();\n    }\n    if (iVar10 != 0x40) {\n      *(int *)(puVar13 + -8) = iVar10;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x8b;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)(puVar13 + -0x18) = &UNK_00173de1;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    iVar10 = *piVar14;\n    pcVar11 = *(code **)(iVar10 + 0xc);\n    if (pcVar11 == Relobj::is_big_endian) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar10 + 0xe8);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173c0e;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d78;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX_00;\n    }\n    if (cVar7 != '\0') {\n      *(undefined4 *)(puVar13 + -8) = uVar12;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x7d;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar13 + -0x18) = 0x173dc8;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }\n    *(undefined4 *)(puVar13 + -0x14) = 0x28;\n    *(undefined4 *)(puVar13 + -0x18) = 0x173c23;\n    puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14));\n    uVar12 = *(undefined4 *)(puVar13 + 0x28);\n    *puVar9 = &PTR__Sized_elf_reloc_mapper_00335b30;\n    uVar5 = *(undefined4 *)(puVar13 + 0x74);\n    puVar9[1] = piVar14;\n    puVar9[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar13 + 0x24);\n    puVar9[4] = uVar12;\n    puVar9[5] = 0;\n    puVar9[6] = 0;\n    puVar9[7] = 0;\n    puVar9[8] = 0;\n    puVar9[9] = 0;\n    puVar9[3] = uVar5;\n    pcVar11 = Sized_elf_reloc_mapper<64,_false>::do_initialize;\n  }" { (expression_statement "pcVar4 = *(code **)(iVar3 + 8);" (assignment_expression "pcVar4 = *(code **)(iVar3 + 8)" identifier = (pointer_expression "*(code **)(iVar3 + 8)" * (cast_expression "(code **)(iVar3 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (if_statement "if (pcVar4 == pcVar11) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173be4;\n      iVar10 = (*pcVar11)();\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d86;\n      iVar10 = (*pcVar4)();\n    }" if (parenthesized_expression "(pcVar4 == pcVar11)" ( (binary_expression "pcVar4 == pcVar11" identifier == identifier) )) (compound_statement "{\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173be4;\n      iVar10 = (*pcVar11)();\n    }" { (expression_statement "*(int **)(puVar13 + -0x14) = piVar14;" (assignment_expression "*(int **)(puVar13 + -0x14) = piVar14" (pointer_expression "*(int **)(puVar13 + -0x14)" * (cast_expression "(int **)(puVar13 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar11 = *(code **)(iVar3 + 0xe4);" (assignment_expression "pcVar11 = *(code **)(iVar3 + 0xe4)" identifier = (pointer_expression "*(code **)(iVar3 + 0xe4)" * (cast_expression "(code **)(iVar3 + 0xe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xe4)" ( (binary_expression "iVar3 + 0xe4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173be4;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173be4" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = (*pcVar11)();" (assignment_expression "iVar10 = (*pcVar11)()" identifier = (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d86;\n      iVar10 = (*pcVar4)();\n    }" else (compound_statement "{\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d86;\n      iVar10 = (*pcVar4)();\n    }" { (expression_statement "*(int **)(puVar13 + -0x14) = piVar14;" (assignment_expression "*(int **)(puVar13 + -0x14) = piVar14" (pointer_expression "*(int **)(puVar13 + -0x14)" * (cast_expression "(int **)(puVar13 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173d86;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173d86" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = (*pcVar4)();" (assignment_expression "iVar10 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar10 != 0x40) {\n      *(int *)(puVar13 + -8) = iVar10;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x8b;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)(puVar13 + -0x18) = &UNK_00173de1;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }" if (parenthesized_expression "(iVar10 != 0x40)" ( (binary_expression "iVar10 != 0x40" identifier != number_literal) )) (compound_statement "{\n      *(int *)(puVar13 + -8) = iVar10;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x8b;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)(puVar13 + -0x18) = &UNK_00173de1;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }" { (expression_statement "*(int *)(puVar13 + -8) = iVar10;" (assignment_expression "*(int *)(puVar13 + -8) = iVar10" (pointer_expression "*(int *)(puVar13 + -8)" * (cast_expression "(int *)(puVar13 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";" (assignment_expression "*(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper"" (pointer_expression "*(char **)(puVar13 + -0xc)" * (cast_expression "(char **)(puVar13 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = (string_literal ""make_elf_reloc_mapper"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x10) = 0x8b;" (assignment_expression "*(undefined4 *)(puVar13 + -0x10) = 0x8b" (pointer_expression "*(undefined4 *)(puVar13 + -0x10)" * (cast_expression "(undefined4 *)(puVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";" (assignment_expression "*(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc"" (pointer_expression "*(char **)(puVar13 + -0x14)" * (cast_expression "(char **)(puVar13 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = (string_literal ""../../gold/dwarf_reader.cc"" " string_content ")) ;) comment (expression_statement "*(undefined **)(puVar13 + -0x18) = &UNK_00173de1;" (assignment_expression "*(undefined **)(puVar13 + -0x18) = &UNK_00173de1" (pointer_expression "*(undefined **)(puVar13 + -0x18)" * (cast_expression "(undefined **)(puVar13 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = (pointer_expression "&UNK_00173de1" & identifier)) ;) (expression_statement "do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));" (call_expression "do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc))" identifier (argument_list "(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc))" ( (pointer_expression "*(char **)(puVar13 + -0x14)" * (cast_expression "(char **)(puVar13 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(int *)(puVar13 + -0x10)" * (cast_expression "(int *)(puVar13 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar13 + -0xc)" * (cast_expression "(char **)(puVar13 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar10 = *piVar14;" (assignment_expression "iVar10 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "pcVar11 = *(code **)(iVar10 + 0xc);" (assignment_expression "pcVar11 = *(code **)(iVar10 + 0xc)" identifier = (pointer_expression "*(code **)(iVar10 + 0xc)" * (cast_expression "(code **)(iVar10 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pcVar11 == Relobj::is_big_endian) {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar10 + 0xe8);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173c0e;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d78;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX_00;\n    }" if (parenthesized_expression "(pcVar11 == Relobj::is_big_endian)" ( (binary_expression "pcVar11 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n      *(int **)(puVar13 + -0x14) = piVar14;\n      pcVar11 = *(code **)(iVar10 + 0xe8);\n      *(undefined4 *)(puVar13 + -0x18) = 0x173c0e;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX;\n    }" { (expression_statement "*(int **)(puVar13 + -0x14) = piVar14;" (assignment_expression "*(int **)(puVar13 + -0x14) = piVar14" (pointer_expression "*(int **)(puVar13 + -0x14)" * (cast_expression "(int **)(puVar13 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar11 = *(code **)(iVar10 + 0xe8);" (assignment_expression "pcVar11 = *(code **)(iVar10 + 0xe8)" identifier = (pointer_expression "*(code **)(iVar10 + 0xe8)" * (cast_expression "(code **)(iVar10 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0xe8)" ( (binary_expression "iVar10 + 0xe8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173c0e;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173c0e" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = (*pcVar11)();" (assignment_expression "cVar7 = (*pcVar11)()" identifier = (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar12 = extraout_EDX;" (assignment_expression "uVar12 = extraout_EDX" identifier = identifier) ;) }) (else_clause "else {\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d78;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX_00;\n    }" else (compound_statement "{\n      *(int **)(puVar13 + -0x14) = piVar14;\n      *(undefined4 *)(puVar13 + -0x18) = 0x173d78;\n      cVar7 = (*pcVar11)();\n      uVar12 = extraout_EDX_00;\n    }" { (expression_statement "*(int **)(puVar13 + -0x14) = piVar14;" (assignment_expression "*(int **)(puVar13 + -0x14) = piVar14" (pointer_expression "*(int **)(puVar13 + -0x14)" * (cast_expression "(int **)(puVar13 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173d78;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173d78" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = (*pcVar11)();" (assignment_expression "cVar7 = (*pcVar11)()" identifier = (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar12 = extraout_EDX_00;" (assignment_expression "uVar12 = extraout_EDX_00" identifier = identifier) ;) }))) (if_statement "if (cVar7 != '\0') {\n      *(undefined4 *)(puVar13 + -8) = uVar12;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x7d;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar13 + -0x18) = 0x173dc8;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(undefined4 *)(puVar13 + -8) = uVar12;\n      *(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar13 + -0x10) = 0x7d;\n      *(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)(puVar13 + -0x18) = 0x173dc8;\n      do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));\n    }" { (expression_statement "*(undefined4 *)(puVar13 + -8) = uVar12;" (assignment_expression "*(undefined4 *)(puVar13 + -8) = uVar12" (pointer_expression "*(undefined4 *)(puVar13 + -8)" * (cast_expression "(undefined4 *)(puVar13 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper";" (assignment_expression "*(char **)(puVar13 + -0xc) = "make_elf_reloc_mapper"" (pointer_expression "*(char **)(puVar13 + -0xc)" * (cast_expression "(char **)(puVar13 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = (string_literal ""make_elf_reloc_mapper"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x10) = 0x7d;" (assignment_expression "*(undefined4 *)(puVar13 + -0x10) = 0x7d" (pointer_expression "*(undefined4 *)(puVar13 + -0x10)" * (cast_expression "(undefined4 *)(puVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc";" (assignment_expression "*(char **)(puVar13 + -0x14) = "../../gold/dwarf_reader.cc"" (pointer_expression "*(char **)(puVar13 + -0x14)" * (cast_expression "(char **)(puVar13 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = (string_literal ""../../gold/dwarf_reader.cc"" " string_content ")) ;) comment (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173dc8;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173dc8" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc));" (call_expression "do_gold_unreachable(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc))" identifier (argument_list "(*(char **)(puVar13 + -0x14),*(int *)(puVar13 + -0x10),\n                          *(char **)(puVar13 + -0xc))" ( (pointer_expression "*(char **)(puVar13 + -0x14)" * (cast_expression "(char **)(puVar13 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(int *)(puVar13 + -0x10)" * (cast_expression "(int *)(puVar13 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar13 + -0xc)" * (cast_expression "(char **)(puVar13 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) ))) ;) })) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x28;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x28" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173c23;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173c23" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14));" (assignment_expression "puVar9 = (undefined4 *)operator_new(*(uint *)(puVar13 + -0x14))" identifier = (cast_expression "(undefined4 *)operator_new(*(uint *)(puVar13 + -0x14))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(*(uint *)(puVar13 + -0x14))" identifier (argument_list "(*(uint *)(puVar13 + -0x14))" ( (pointer_expression "*(uint *)(puVar13 + -0x14)" * (cast_expression "(uint *)(puVar13 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) ))))) ;) (expression_statement "uVar12 = *(undefined4 *)(puVar13 + 0x28);" (assignment_expression "uVar12 = *(undefined4 *)(puVar13 + 0x28)" identifier = (pointer_expression "*(undefined4 *)(puVar13 + 0x28)" * (cast_expression "(undefined4 *)(puVar13 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x28)" ( (binary_expression "puVar13 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*puVar9 = &PTR__Sized_elf_reloc_mapper_00335b30;" (assignment_expression "*puVar9 = &PTR__Sized_elf_reloc_mapper_00335b30" (pointer_expression "*puVar9" * identifier) = (pointer_expression "&PTR__Sized_elf_reloc_mapper_00335b30" & identifier)) ;) (expression_statement "uVar5 = *(undefined4 *)(puVar13 + 0x74);" (assignment_expression "uVar5 = *(undefined4 *)(puVar13 + 0x74)" identifier = (pointer_expression "*(undefined4 *)(puVar13 + 0x74)" * (cast_expression "(undefined4 *)(puVar13 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x74)" ( (binary_expression "puVar13 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "puVar9[1] = piVar14;" (assignment_expression "puVar9[1] = piVar14" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[2] = uVar5;" (assignment_expression "puVar9[2] = uVar5" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = *(undefined4 *)(puVar13 + 0x24);" (assignment_expression "uVar5 = *(undefined4 *)(puVar13 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(puVar13 + 0x24)" * (cast_expression "(undefined4 *)(puVar13 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x24)" ( (binary_expression "puVar13 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "puVar9[4] = uVar12;" (assignment_expression "puVar9[4] = uVar12" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[5] = 0;" (assignment_expression "puVar9[5] = 0" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[6] = 0;" (assignment_expression "puVar9[6] = 0" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[7] = 0;" (assignment_expression "puVar9[7] = 0" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[8] = 0;" (assignment_expression "puVar9[8] = 0" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[9] = 0;" (assignment_expression "puVar9[9] = 0" (subscript_expression "puVar9[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[3] = uVar5;" (assignment_expression "puVar9[3] = uVar5" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar11 = Sized_elf_reloc_mapper<64,_false>::do_initialize;" (comma_expression "pcVar11 = Sized_elf_reloc_mapper<64,_false>::do_initialize" (assignment_expression "pcVar11 = Sized_elf_reloc_mapper<64" identifier = (binary_expression "Sized_elf_reloc_mapper<64" identifier < number_literal)) , (binary_expression "_false>::do_initialize" identifier > (ERROR "::" : :) identifier)) ;) }))) (expression_statement "*(undefined4 **)(*(int *)(puVar13 + 0x6c) + 0x30) = puVar9;" (assignment_expression "*(undefined4 **)(*(int *)(puVar13 + 0x6c) + 0x30) = puVar9" (pointer_expression "*(undefined4 **)(*(int *)(puVar13 + 0x6c) + 0x30)" * (cast_expression "(undefined4 **)(*(int *)(puVar13 + 0x6c) + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar13 + 0x6c) + 0x30)" ( (binary_expression "*(int *)(puVar13 + 0x6c) + 0x30" (pointer_expression "*(int *)(puVar13 + 0x6c)" * (cast_expression "(int *)(puVar13 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x6c)" ( (binary_expression "puVar13 + 0x6c" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar13 + -0xc) = iVar18;" (assignment_expression "*(int *)(puVar13 + -0xc) = iVar18" (pointer_expression "*(int *)(puVar13 + -0xc)" * (cast_expression "(int *)(puVar13 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar13 + -0x10) = uVar16;" (assignment_expression "*(uint *)(puVar13 + -0x10) = uVar16" (pointer_expression "*(uint *)(puVar13 + -0x10)" * (cast_expression "(uint *)(puVar13 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar13 + -0x14) = puVar9;" (assignment_expression "*(undefined4 **)(puVar13 + -0x14) = puVar9" (pointer_expression "*(undefined4 **)(puVar13 + -0x14)" * (cast_expression "(undefined4 **)(puVar13 + -0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x18) = 0x173c81;" (assignment_expression "*(undefined4 *)(puVar13 + -0x18) = 0x173c81" (pointer_expression "*(undefined4 *)(puVar13 + -0x18)" * (cast_expression "(undefined4 *)(puVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(int *)(*(int *)(puVar13 + 0x6c) + 0x34) = iVar18;" (assignment_expression "*(int *)(*(int *)(puVar13 + 0x6c) + 0x34) = iVar18" (pointer_expression "*(int *)(*(int *)(puVar13 + 0x6c) + 0x34)" * (cast_expression "(int *)(*(int *)(puVar13 + 0x6c) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar13 + 0x6c) + 0x34)" ( (binary_expression "*(int *)(puVar13 + 0x6c) + 0x34" (pointer_expression "*(int *)(puVar13 + 0x6c)" * (cast_expression "(int *)(puVar13 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x6c)" ( (binary_expression "puVar13 + 0x6c" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (return_statement "return true;" return true ;) })))
(translation_unit "undefined4\nFUN_00173980(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  uint *puVar1;\n  byte *pbVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined4 uVar5;\n  char cVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  code *pcVar10;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined1 *puVar11;\n  int *piVar12;\n  byte *pbVar13;\n  uint uVar14;\n  byte *pbVar15;\n  int iVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  byte bVar21;\n  int aiStack_94 [10];\n  undefined1 auStack_6c [8];\n  uint local_64 [2];\n  char *local_5c [9];\n  int local_38;\n  undefined1 local_34 [8];\n  undefined1 local_2c [24];\n  undefined4 uStack_14;\n  \n  bVar21 = 0;\n  uStack_14 = 0x173989;\n  local_5c[6] = (char *)param_4;\n  local_5c[7] = (char *)param_5;\n  if (*(char *)(param_1 + 0x1c) == '\0') {\n    local_5c[3] = "gnu_pubnames";\n    local_5c[4] = "gnu_pubnames";\n  }\n  else {\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }\n  local_5c[3] = local_5c[3] + 4;\n  if (1 < *(uint *)(param_2 + 0x28)) {\n    local_64[1] = 1;\n    local_5c[0] = local_34;\n    local_5c[1] = ".debug_";\n    local_5c[2] = local_2c;\n    local_5c[5] = ".zdebug_";\n    puVar11 = auStack_6c;\n    do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));\n  }\n  return 0;\nLAB_00173b74:\n  do {\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  } while (uVar14 < (uint)piVar12[10]);\n  uVar14 = 0;\nLAB_00173b9d:\n  pcVar10 = *(code **)(iVar9 + 8);\n  *(code **)(puVar11 + 8) = FUN_00094510;\n  if (pcVar10 == FUN_00094510) {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xe4);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173bbc;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  else {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  iVar3 = *piVar12;\n  if (iVar9 == 0x20) {\n    pcVar10 = *(code **)(iVar3 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173ce3;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b08;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_001776a0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n  }\n  else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }\n  *(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30) = puVar7;\n  *(int *)(puVar11 + -0xc) = iVar16;\n  *(uint *)(puVar11 + -0x10) = uVar14;\n  *(undefined4 **)(puVar11 + -0x14) = puVar7;\n  *(undefined4 *)(puVar11 + -0x18) = 0x173c81;\n  (*pcVar10)();\n  *(int *)(*(int *)(puVar11 + 0x6c) + 0x34) = iVar16;\n  return 1;\n}\n\n" (function_definition "undefined4\nFUN_00173980(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  uint *puVar1;\n  byte *pbVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined4 uVar5;\n  char cVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  code *pcVar10;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined1 *puVar11;\n  int *piVar12;\n  byte *pbVar13;\n  uint uVar14;\n  byte *pbVar15;\n  int iVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  byte bVar21;\n  int aiStack_94 [10];\n  undefined1 auStack_6c [8];\n  uint local_64 [2];\n  char *local_5c [9];\n  int local_38;\n  undefined1 local_34 [8];\n  undefined1 local_2c [24];\n  undefined4 uStack_14;\n  \n  bVar21 = 0;\n  uStack_14 = 0x173989;\n  local_5c[6] = (char *)param_4;\n  local_5c[7] = (char *)param_5;\n  if (*(char *)(param_1 + 0x1c) == '\0') {\n    local_5c[3] = "gnu_pubnames";\n    local_5c[4] = "gnu_pubnames";\n  }\n  else {\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }\n  local_5c[3] = local_5c[3] + 4;\n  if (1 < *(uint *)(param_2 + 0x28)) {\n    local_64[1] = 1;\n    local_5c[0] = local_34;\n    local_5c[1] = ".debug_";\n    local_5c[2] = local_2c;\n    local_5c[5] = ".zdebug_";\n    puVar11 = auStack_6c;\n    do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));\n  }\n  return 0;\nLAB_00173b74:\n  do {\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  } while (uVar14 < (uint)piVar12[10]);\n  uVar14 = 0;\nLAB_00173b9d:\n  pcVar10 = *(code **)(iVar9 + 8);\n  *(code **)(puVar11 + 8) = FUN_00094510;\n  if (pcVar10 == FUN_00094510) {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xe4);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173bbc;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  else {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  iVar3 = *piVar12;\n  if (iVar9 == 0x20) {\n    pcVar10 = *(code **)(iVar3 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173ce3;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b08;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_001776a0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n  }\n  else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }\n  *(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30) = puVar7;\n  *(int *)(puVar11 + -0xc) = iVar16;\n  *(uint *)(puVar11 + -0x10) = uVar14;\n  *(undefined4 **)(puVar11 + -0x14) = puVar7;\n  *(undefined4 *)(puVar11 + -0x18) = 0x173c81;\n  (*pcVar10)();\n  *(int *)(*(int *)(puVar11 + 0x6c) + 0x34) = iVar16;\n  return 1;\n}" type_identifier (function_declarator "FUN_00173980(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)" identifier (parameter_list "(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  uint *puVar1;\n  byte *pbVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined4 uVar5;\n  char cVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  code *pcVar10;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined1 *puVar11;\n  int *piVar12;\n  byte *pbVar13;\n  uint uVar14;\n  byte *pbVar15;\n  int iVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  byte bVar21;\n  int aiStack_94 [10];\n  undefined1 auStack_6c [8];\n  uint local_64 [2];\n  char *local_5c [9];\n  int local_38;\n  undefined1 local_34 [8];\n  undefined1 local_2c [24];\n  undefined4 uStack_14;\n  \n  bVar21 = 0;\n  uStack_14 = 0x173989;\n  local_5c[6] = (char *)param_4;\n  local_5c[7] = (char *)param_5;\n  if (*(char *)(param_1 + 0x1c) == '\0') {\n    local_5c[3] = "gnu_pubnames";\n    local_5c[4] = "gnu_pubnames";\n  }\n  else {\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }\n  local_5c[3] = local_5c[3] + 4;\n  if (1 < *(uint *)(param_2 + 0x28)) {\n    local_64[1] = 1;\n    local_5c[0] = local_34;\n    local_5c[1] = ".debug_";\n    local_5c[2] = local_2c;\n    local_5c[5] = ".zdebug_";\n    puVar11 = auStack_6c;\n    do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));\n  }\n  return 0;\nLAB_00173b74:\n  do {\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  } while (uVar14 < (uint)piVar12[10]);\n  uVar14 = 0;\nLAB_00173b9d:\n  pcVar10 = *(code **)(iVar9 + 8);\n  *(code **)(puVar11 + 8) = FUN_00094510;\n  if (pcVar10 == FUN_00094510) {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xe4);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173bbc;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  else {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  iVar3 = *piVar12;\n  if (iVar9 == 0x20) {\n    pcVar10 = *(code **)(iVar3 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173ce3;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b08;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_001776a0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n  }\n  else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }\n  *(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30) = puVar7;\n  *(int *)(puVar11 + -0xc) = iVar16;\n  *(uint *)(puVar11 + -0x10) = uVar14;\n  *(undefined4 **)(puVar11 + -0x14) = puVar7;\n  *(undefined4 *)(puVar11 + -0x18) = 0x173c81;\n  (*pcVar10)();\n  *(int *)(*(int *)(puVar11 + 0x6c) + 0x34) = iVar16;\n  return 1;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined1 uVar17;" type_identifier identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "undefined1 uVar19;" type_identifier identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "int aiStack_94 [10];" primitive_type (array_declarator "aiStack_94 [10]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_6c [8];" type_identifier (array_declarator "auStack_6c [8]" identifier [ number_literal ]) ;) (declaration "uint local_64 [2];" type_identifier (array_declarator "local_64 [2]" identifier [ number_literal ]) ;) (declaration "char *local_5c [9];" primitive_type (pointer_declarator "*local_5c [9]" * (array_declarator "local_5c [9]" identifier [ number_literal ])) ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "undefined1 local_34 [8];" type_identifier (array_declarator "local_34 [8]" identifier [ number_literal ]) ;) (declaration "undefined1 local_2c [24];" type_identifier (array_declarator "local_2c [24]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x173989;" (assignment_expression "uStack_14 = 0x173989" identifier = number_literal) ;) (expression_statement "local_5c[6] = (char *)param_4;" (assignment_expression "local_5c[6] = (char *)param_4" (subscript_expression "local_5c[6]" identifier [ number_literal ]) = (cast_expression "(char *)param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_5c[7] = (char *)param_5;" (assignment_expression "local_5c[7] = (char *)param_5" (subscript_expression "local_5c[7]" identifier [ number_literal ]) = (cast_expression "(char *)param_5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(char *)(param_1 + 0x1c) == '\0') {\n    local_5c[3] = "gnu_pubnames";\n    local_5c[4] = "gnu_pubnames";\n  }\n  else {\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }" if (parenthesized_expression "(*(char *)(param_1 + 0x1c) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x1c) == '\0'" (pointer_expression "*(char *)(param_1 + 0x1c)" * (cast_expression "(char *)(param_1 + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_5c[3] = "gnu_pubnames";\n    local_5c[4] = "gnu_pubnames";\n  }" { (expression_statement "local_5c[3] = "gnu_pubnames";" (assignment_expression "local_5c[3] = "gnu_pubnames"" (subscript_expression "local_5c[3]" identifier [ number_literal ]) = (string_literal ""gnu_pubnames"" " string_content ")) ;) (expression_statement "local_5c[4] = "gnu_pubnames";" (assignment_expression "local_5c[4] = "gnu_pubnames"" (subscript_expression "local_5c[4]" identifier [ number_literal ]) = (string_literal ""gnu_pubnames"" " string_content ")) ;) }) (else_clause "else {\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }" else (compound_statement "{\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }" { (expression_statement "local_5c[3] = "gnu_pubtypes";" (assignment_expression "local_5c[3] = "gnu_pubtypes"" (subscript_expression "local_5c[3]" identifier [ number_literal ]) = (string_literal ""gnu_pubtypes"" " string_content ")) ;) (expression_statement "local_5c[4] = "gnu_pubtypes";" (assignment_expression "local_5c[4] = "gnu_pubtypes"" (subscript_expression "local_5c[4]" identifier [ number_literal ]) = (string_literal ""gnu_pubtypes"" " string_content ")) ;) }))) (expression_statement "local_5c[3] = local_5c[3] + 4;" (assignment_expression "local_5c[3] = local_5c[3] + 4" (subscript_expression "local_5c[3]" identifier [ number_literal ]) = (binary_expression "local_5c[3] + 4" (subscript_expression "local_5c[3]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (1 < *(uint *)(param_2 + 0x28)) {\n    local_64[1] = 1;\n    local_5c[0] = local_34;\n    local_5c[1] = ".debug_";\n    local_5c[2] = local_2c;\n    local_5c[5] = ".zdebug_";\n    puVar11 = auStack_6c;\n    do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));\n  }" if (parenthesized_expression "(1 < *(uint *)(param_2 + 0x28))" ( (binary_expression "1 < *(uint *)(param_2 + 0x28)" number_literal < (pointer_expression "*(uint *)(param_2 + 0x28)" * (cast_expression "(uint *)(param_2 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    local_64[1] = 1;\n    local_5c[0] = local_34;\n    local_5c[1] = ".debug_";\n    local_5c[2] = local_2c;\n    local_5c[5] = ".zdebug_";\n    puVar11 = auStack_6c;\n    do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));\n  }" { (expression_statement "local_64[1] = 1;" (assignment_expression "local_64[1] = 1" (subscript_expression "local_64[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_5c[0] = local_34;" (assignment_expression "local_5c[0] = local_34" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_5c[1] = ".debug_";" (assignment_expression "local_5c[1] = ".debug_"" (subscript_expression "local_5c[1]" identifier [ number_literal ]) = (string_literal "".debug_"" " string_content ")) ;) (expression_statement "local_5c[2] = local_2c;" (assignment_expression "local_5c[2] = local_2c" (subscript_expression "local_5c[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_5c[5] = ".zdebug_";" (assignment_expression "local_5c[5] = ".zdebug_"" (subscript_expression "local_5c[5]" identifier [ number_literal ]) = (string_literal "".zdebug_"" " string_content ")) ;) (expression_statement "puVar11 = auStack_6c;" (assignment_expression "puVar11 = auStack_6c" identifier = identifier) ;) (do_statement "do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));" do (compound_statement "{\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    }" { (expression_statement "uVar17 = puVar11 < (undefined1 *)0x4;" (assignment_expression "uVar17 = puVar11 < (undefined1 *)0x4" identifier = (binary_expression "puVar11 < (undefined1 *)0x4" identifier < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar19 = puVar11 == (undefined1 *)0x4;" (assignment_expression "uVar19 = puVar11 == (undefined1 *)0x4" identifier = (binary_expression "puVar11 == (undefined1 *)0x4" identifier == (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar9 = **(int **)(puVar11 + 0x74);" (assignment_expression "iVar9 = **(int **)(puVar11 + 0x74)" identifier = (pointer_expression "**(int **)(puVar11 + 0x74)" * (pointer_expression "*(int **)(puVar11 + 0x74)" * (cast_expression "(int **)(puVar11 + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x74)" ( (binary_expression "puVar11 + 0x74" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);" (assignment_expression "*(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc)" (pointer_expression "*(undefined4 *)(puVar11 + -8)" * (cast_expression "(undefined4 *)(puVar11 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -8)" ( (binary_expression "puVar11 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" * (cast_expression "(undefined4 *)(puVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);" (assignment_expression "*(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74)" (pointer_expression "*(undefined4 *)(puVar11 + -0xc)" * (cast_expression "(undefined4 *)(puVar11 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 0x74)" * (cast_expression "(undefined4 *)(puVar11 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x74)" ( (binary_expression "puVar11 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10)" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" * (cast_expression "(undefined4 *)(puVar11 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 0x10)" * (cast_expression "(undefined4 *)(puVar11 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar10 = *(code **)(iVar9 + 0x40);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0x40)" identifier = (pointer_expression "*(code **)(iVar9 + 0x40)" * (cast_expression "(code **)(iVar9 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x40)" ( (binary_expression "iVar9 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0x173a20;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0x173a20" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" * (cast_expression "(undefined4 *)(puVar11 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar2 = *(byte **)(puVar11 + 0x34);" (assignment_expression "pbVar2 = *(byte **)(puVar11 + 0x34)" identifier = (pointer_expression "*(byte **)(puVar11 + 0x34)" * (cast_expression "(byte **)(puVar11 + 0x34)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x34)" ( (binary_expression "puVar11 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "pbVar13 = *(byte **)(puVar11 + 0x10);" (assignment_expression "pbVar13 = *(byte **)(puVar11 + 0x10)" identifier = (pointer_expression "*(byte **)(puVar11 + 0x10)" * (cast_expression "(byte **)(puVar11 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pbVar15 = pbVar2;" (assignment_expression "pbVar15 = pbVar2" identifier = identifier) ;) (do_statement "do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);" do (compound_statement "{\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar17 = *pbVar13 < *pbVar15;" (assignment_expression "uVar17 = *pbVar13 < *pbVar15" identifier = (binary_expression "*pbVar13 < *pbVar15" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "uVar19 = *pbVar13 == *pbVar15;" (assignment_expression "uVar19 = *pbVar13 == *pbVar15" identifier = (binary_expression "*pbVar13 == *pbVar15" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar21 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar21 * -2" identifier + (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar21 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar21 * -2" identifier + (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar19)" ( (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "pbVar13 = pbVar2 + 7;" (assignment_expression "pbVar13 = pbVar2 + 7" identifier = (binary_expression "pbVar2 + 7" identifier + number_literal)) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;" (assignment_expression "bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" identifier = (binary_expression "(!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (parenthesized_expression "(!(bool)uVar17 && !(bool)uVar19)" ( (binary_expression "!(bool)uVar17 && !(bool)uVar19" (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }" if (parenthesized_expression "(bVar20)" ( identifier )) (compound_statement "{\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }" { (labeled_statement "LAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);" statement_identifier : (expression_statement "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18)" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" * (cast_expression "(undefined4 *)(puVar11 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 0x18)" * (cast_expression "(undefined4 *)(puVar11 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x18)" ( (binary_expression "puVar11 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "*(byte **)(puVar11 + -0x14) = pbVar13;" (assignment_expression "*(byte **)(puVar11 + -0x14) = pbVar13" (pointer_expression "*(byte **)(puVar11 + -0x14)" * (cast_expression "(byte **)(puVar11 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173a66;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173a66" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));" (assignment_expression "iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" identifier = (call_expression "strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" identifier (argument_list "(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" ( (pointer_expression "*(char **)(puVar11 + -0x14)" * (cast_expression "(char **)(puVar11 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar11 + -0x10)" * (cast_expression "(char **)(puVar11 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }" { (expression_statement "piVar12 = *(int **)(puVar11 + 0x70);" (assignment_expression "piVar12 = *(int **)(puVar11 + 0x70)" identifier = (pointer_expression "*(int **)(puVar11 + 0x70)" * (cast_expression "(int **)(puVar11 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x70)" ( (binary_expression "puVar11 + 0x70" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }" else (compound_statement "{\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }" { (expression_statement "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c)" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" * (cast_expression "(undefined4 *)(puVar11 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 0x1c)" * (cast_expression "(undefined4 *)(puVar11 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x1c)" ( (binary_expression "puVar11 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar11 + -0x14) = pbVar13;" (assignment_expression "*(byte **)(puVar11 + -0x14) = pbVar13" (pointer_expression "*(byte **)(puVar11 + -0x14)" * (cast_expression "(byte **)(puVar11 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173a7a;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173a7a" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));" (assignment_expression "iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" identifier = (call_expression "strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" identifier (argument_list "(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" ( (pointer_expression "*(char **)(puVar11 + -0x14)" * (cast_expression "(char **)(puVar11 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(char **)(puVar11 + -0x10)" * (cast_expression "(char **)(puVar11 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar9 != 0) goto LAB_00173a85;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00173a85;" goto statement_identifier ;)) (expression_statement "piVar12 = *(int **)(puVar11 + 0x70);" (assignment_expression "piVar12 = *(int **)(puVar11 + 0x70)" identifier = (pointer_expression "*(int **)(puVar11 + 0x70)" * (cast_expression "(int **)(puVar11 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x70)" ( (binary_expression "puVar11 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;" (assignment_expression "*(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1" (pointer_expression "*(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d)" * (cast_expression "(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x6c) + 0x1d)" ( (binary_expression "*(int *)(puVar11 + 0x6c) + 0x1d" (pointer_expression "*(int *)(puVar11 + 0x6c)" * (cast_expression "(int *)(puVar11 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x6c)" ( (binary_expression "puVar11 + 0x6c" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) }))) (if_statement "if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }" if (parenthesized_expression "(pbVar2 != *(byte **)(puVar11 + 0x14))" ( (binary_expression "pbVar2 != *(byte **)(puVar11 + 0x14)" identifier != (pointer_expression "*(byte **)(puVar11 + 0x14)" * (cast_expression "(byte **)(puVar11 + 0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }" { (expression_statement "*(byte **)(puVar11 + -0x14) = pbVar2;" (assignment_expression "*(byte **)(puVar11 + -0x14) = pbVar2" (pointer_expression "*(byte **)(puVar11 + -0x14)" * (cast_expression "(byte **)(puVar11 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173af5;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173af5" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001ac470();" (call_expression "FUN_001ac470()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }" if (parenthesized_expression "(*(int *)(puVar11 + 8) == 0)" ( (binary_expression "*(int *)(puVar11 + 8) == 0" (pointer_expression "*(int *)(puVar11 + 8)" * (cast_expression "(int *)(puVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" * (cast_expression "(undefined4 *)(puVar11 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;" (assignment_expression "*(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc" (pointer_expression "*(int *)(puVar11 + -0x18)" * (cast_expression "(int *)(puVar11 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar11 + 0x6c) + 0xc" (pointer_expression "*(int *)(puVar11 + 0x6c)" * (cast_expression "(int *)(puVar11 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x6c)" ( (binary_expression "puVar11 + 0x6c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);" (assignment_expression "*(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc)" (pointer_expression "*(undefined4 *)(puVar11 + -0x1c)" * (cast_expression "(undefined4 *)(puVar11 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x1c)" ( (binary_expression "puVar11 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" * (cast_expression "(undefined4 *)(puVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);" (assignment_expression "*(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8)" (pointer_expression "*(int *)(puVar11 + -0x20)" * (cast_expression "(int *)(puVar11 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x20)" ( (binary_expression "puVar11 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(int *)(puVar11 + 8)" * (cast_expression "(int *)(puVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(int **)(puVar11 + -0x24) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x24) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x24)" * (cast_expression "(int **)(puVar11 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x24)" ( (binary_expression "puVar11 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x28) = 0x173b1b;" (assignment_expression "*(undefined4 *)(puVar11 + -0x28) = 0x173b1b" (pointer_expression "*(undefined4 *)(puVar11 + -0x28)" * (cast_expression "(undefined4 *)(puVar11 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x28)" ( (binary_expression "puVar11 + -0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = FUN_000bf200();" (assignment_expression "iVar9 = FUN_000bf200()" identifier = (call_expression "FUN_000bf200()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;" (assignment_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9" (pointer_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 4)" * (cast_expression "(int *)(*(int *)(puVar11 + 0x6c) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x6c) + 4)" ( (binary_expression "*(int *)(puVar11 + 0x6c) + 4" (pointer_expression "*(int *)(puVar11 + 0x6c)" * (cast_expression "(int *)(puVar11 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x6c)" ( (binary_expression "puVar11 + 0x6c" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (if_statement "if (iVar9 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);" (assignment_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34)" (pointer_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 8)" * (cast_expression "(int *)(*(int *)(puVar11 + 0x6c) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x6c) + 8)" ( (binary_expression "*(int *)(puVar11 + 0x6c) + 8" (pointer_expression "*(int *)(puVar11 + 0x6c)" * (cast_expression "(int *)(puVar11 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x6c)" ( (binary_expression "puVar11 + 0x6c" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "iVar9 + *(int *)(puVar11 + 0x34)" identifier + (pointer_expression "*(int *)(puVar11 + 0x34)" * (cast_expression "(int *)(puVar11 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x34)" ( (binary_expression "puVar11 + 0x34" identifier + number_literal) )))))) ;) (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "pcVar10 = *(code **)(iVar9 + 0x18);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0x18)" identifier = (pointer_expression "*(code **)(iVar9 + 0x18)" * (cast_expression "(code **)(iVar9 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }" if (parenthesized_expression "(pcVar10 != FUN_000944b0)" ( (binary_expression "pcVar10 != FUN_000944b0" identifier != identifier) )) (compound_statement "{\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173d4d;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173d4d" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar8 = (*pcVar10)();" (assignment_expression "uVar8 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if ((char)uVar8 != '\0') {\n            return uVar8;\n          }" if (parenthesized_expression "((char)uVar8 != '\0')" ( (binary_expression "(char)uVar8 != '\0'" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            return uVar8;\n          }" { (return_statement "return uVar8;" return identifier ;) })) (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) })) (expression_statement "uVar14 = piVar12[10];" (assignment_expression "uVar14 = piVar12[10]" identifier = (subscript_expression "piVar12[10]" identifier [ number_literal ])) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (if_statement "if (uVar14 == 0) goto LAB_00173b9d;" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00173b9d;" goto statement_identifier ;)) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00173b74;" goto statement_identifier ;) })) (expression_statement "iVar9 = 8;" (assignment_expression "iVar9 = 8" identifier = number_literal) ;) (expression_statement "pbVar13 = *(byte **)(puVar11 + 0x20);" (assignment_expression "pbVar13 = *(byte **)(puVar11 + 0x20)" identifier = (pointer_expression "*(byte **)(puVar11 + 0x20)" * (cast_expression "(byte **)(puVar11 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x20)" ( (binary_expression "puVar11 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pbVar15 = pbVar2;" (assignment_expression "pbVar15 = pbVar2" identifier = identifier) ;) (do_statement "do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);" do (compound_statement "{\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar13 < *pbVar15;" (assignment_expression "bVar18 = *pbVar13 < *pbVar15" identifier = (binary_expression "*pbVar13 < *pbVar15" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar20 = *pbVar13 == *pbVar15;" (assignment_expression "bVar20 = *pbVar13 == *pbVar15" identifier = (binary_expression "*pbVar13 == *pbVar15" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar21 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar21 * -2" identifier + (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar21 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar21 * -2" identifier + (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "pbVar13 = pbVar2 + 8;" (assignment_expression "pbVar13 = pbVar2 + 8" identifier = (binary_expression "pbVar2 + 8" identifier + number_literal)) ;) (if_statement "if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;" if (parenthesized_expression "((!bVar18 && !bVar20) == bVar18)" ( (binary_expression "(!bVar18 && !bVar20) == bVar18" (parenthesized_expression "(!bVar18 && !bVar20)" ( (binary_expression "!bVar18 && !bVar20" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_00173a59;" goto statement_identifier ;)) (labeled_statement "LAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }" statement_identifier : (if_statement "if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }" if (parenthesized_expression "(pbVar2 != *(byte **)(puVar11 + 0x14))" ( (binary_expression "pbVar2 != *(byte **)(puVar11 + 0x14)" identifier != (pointer_expression "*(byte **)(puVar11 + 0x14)" * (cast_expression "(byte **)(puVar11 + 0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }" { (expression_statement "*(byte **)(puVar11 + -0x14) = pbVar2;" (assignment_expression "*(byte **)(puVar11 + -0x14) = pbVar2" (pointer_expression "*(byte **)(puVar11 + -0x14)" * (cast_expression "(byte **)(puVar11 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173a94;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173a94" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001ac470();" (call_expression "FUN_001ac470()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "piVar12 = (int *)(puVar11 + 0x70);" (assignment_expression "piVar12 = (int *)(puVar11 + 0x70)" identifier = (cast_expression "(int *)(puVar11 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x70)" ( (binary_expression "puVar11 + 0x70" identifier + number_literal) )))) ;) (expression_statement "*(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;" (assignment_expression "*(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1" (pointer_expression "*(int *)(puVar11 + 8)" * (cast_expression "(int *)(puVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar11 + 8) + 1" (pointer_expression "*(int *)(puVar11 + 8)" * (cast_expression "(int *)(puVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar1 = (uint *)(puVar11 + 8);" (assignment_expression "puVar1 = (uint *)(puVar11 + 8)" identifier = (cast_expression "(uint *)(puVar11 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) ;) (expression_statement "puVar11 = puVar11 + -4;" (assignment_expression "puVar11 = puVar11 + -4" identifier = (binary_expression "puVar11 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*puVar1 < *(uint *)(*piVar12 + 0x28))" ( (binary_expression "*puVar1 < *(uint *)(*piVar12 + 0x28)" (pointer_expression "*puVar1" * identifier) < (pointer_expression "*(uint *)(*piVar12 + 0x28)" * (cast_expression "(uint *)(*piVar12 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar12 + 0x28)" ( (binary_expression "*piVar12 + 0x28" (pointer_expression "*piVar12" * identifier) + number_literal) ))))) )) ;) })) (return_statement "return 0;" return number_literal ;) (labeled_statement "LAB_00173b74:\n  do {\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  } while (uVar14 < (uint)piVar12[10]);" statement_identifier : (do_statement "do {\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  } while (uVar14 < (uint)piVar12[10]);" do (compound_statement "{\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  }" { (expression_statement "*(uint *)(puVar11 + -0x10) = uVar14;" (assignment_expression "*(uint *)(puVar11 + -0x10) = uVar14" (pointer_expression "*(uint *)(puVar11 + -0x10)" * (cast_expression "(uint *)(puVar11 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar10 = *(code **)(iVar9 + 0x50);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0x50)" identifier = (pointer_expression "*(code **)(iVar9 + 0x50)" * (cast_expression "(code **)(iVar9 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x50)" ( (binary_expression "iVar9 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173b7c;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173b7c" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar16 = (*pcVar10)();" (assignment_expression "iVar16 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }" if (parenthesized_expression "((iVar16 == 9) || (iVar16 == 4))" ( (binary_expression "(iVar16 == 9) || (iVar16 == 4)" (parenthesized_expression "(iVar16 == 9)" ( (binary_expression "iVar16 == 9" identifier == number_literal) )) || (parenthesized_expression "(iVar16 == 4)" ( (binary_expression "iVar16 == 4" identifier == number_literal) ))) )) (compound_statement "{\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }" { (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "*(uint *)(puVar11 + -0x10) = uVar14;" (assignment_expression "*(uint *)(puVar11 + -0x10) = uVar14" (pointer_expression "*(uint *)(puVar11 + -0x10)" * (cast_expression "(uint *)(puVar11 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar10 = *(code **)(iVar9 + 0x58);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0x58)" identifier = (pointer_expression "*(code **)(iVar9 + 0x58)" * (cast_expression "(code **)(iVar9 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x58)" ( (binary_expression "iVar9 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173b91;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173b91" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = (*pcVar10)();" (assignment_expression "iVar9 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }" if (parenthesized_expression "(*(int *)(puVar11 + 8) == iVar9)" ( (binary_expression "*(int *)(puVar11 + 8) == iVar9" (pointer_expression "*(int *)(puVar11 + 8)" * (cast_expression "(int *)(puVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }" { (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (goto_statement "goto LAB_00173b9d;" goto statement_identifier ;) })) })) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) }) while (parenthesized_expression "(uVar14 < (uint)piVar12[10])" ( (binary_expression "uVar14 < (uint)piVar12[10]" identifier < (cast_expression "(uint)piVar12[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar12[10]" identifier [ number_literal ]))) )) ;)) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00173b9d:\n  pcVar10 = *(code **)(iVar9 + 8);" statement_identifier : (expression_statement "pcVar10 = *(code **)(iVar9 + 8);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 8)" identifier = (pointer_expression "*(code **)(iVar9 + 8)" * (cast_expression "(code **)(iVar9 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;)) (expression_statement "*(code **)(puVar11 + 8) = FUN_00094510;" (assignment_expression "*(code **)(puVar11 + 8) = FUN_00094510" (pointer_expression "*(code **)(puVar11 + 8)" * (cast_expression "(code **)(puVar11 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar10 == FUN_00094510) {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xe4);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173bbc;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  else {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }" if (parenthesized_expression "(pcVar10 == FUN_00094510)" ( (binary_expression "pcVar10 == FUN_00094510" identifier == identifier) )) (compound_statement "{\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xe4);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173bbc;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar10 = *(code **)(iVar9 + 0xe4);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0xe4)" identifier = (pointer_expression "*(code **)(iVar9 + 0xe4)" * (cast_expression "(code **)(iVar9 + 0xe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0xe4)" ( (binary_expression "iVar9 + 0xe4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173bbc;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173bbc" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = (*pcVar10)();" (assignment_expression "iVar9 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar10 = *(code **)(puVar11 + 8);" (assignment_expression "pcVar10 = *(code **)(puVar11 + 8)" identifier = (pointer_expression "*(code **)(puVar11 + 8)" * (cast_expression "(code **)(puVar11 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }" else (compound_statement "{\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173d66;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173d66" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = (*pcVar10)();" (assignment_expression "iVar9 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar10 = *(code **)(puVar11 + 8);" (assignment_expression "pcVar10 = *(code **)(puVar11 + 8)" identifier = (pointer_expression "*(code **)(puVar11 + 8)" * (cast_expression "(code **)(puVar11 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar3 = *piVar12;" (assignment_expression "iVar3 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (if_statement "if (iVar9 == 0x20) {\n    pcVar10 = *(code **)(iVar3 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173ce3;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b08;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_001776a0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n  }\n  else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }" if (parenthesized_expression "(iVar9 == 0x20)" ( (binary_expression "iVar9 == 0x20" identifier == number_literal) )) (compound_statement "{\n    pcVar10 = *(code **)(iVar3 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173ce3;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b08;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_001776a0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n  }" { (expression_statement "pcVar10 = *(code **)(iVar3 + 0xc);" (assignment_expression "pcVar10 = *(code **)(iVar3 + 0xc)" identifier = (pointer_expression "*(code **)(iVar3 + 0xc)" * (cast_expression "(code **)(iVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }" if (parenthesized_expression "(pcVar10 == FUN_00094520)" ( (binary_expression "pcVar10 == FUN_00094520" identifier == identifier) )) (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar10 = *(code **)(iVar3 + 0xe8);" (assignment_expression "pcVar10 = *(code **)(iVar3 + 0xe8)" identifier = (pointer_expression "*(code **)(iVar3 + 0xe8)" * (cast_expression "(code **)(iVar3 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xe8)" ( (binary_expression "iVar3 + 0xe8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173cce;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173cce" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar6 = (*pcVar10)();" (assignment_expression "cVar6 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar8 = extraout_ECX;" (assignment_expression "uVar8 = extraout_ECX" identifier = identifier) ;) }) (else_clause "else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }" else (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173d94;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173d94" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar6 = (*pcVar10)();" (assignment_expression "cVar6 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar8 = extraout_ECX_00;" (assignment_expression "uVar8 = extraout_ECX_00" identifier = identifier) ;) }))) (if_statement "if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }" { (expression_statement "*(undefined4 *)(puVar11 + -8) = uVar8;" (assignment_expression "*(undefined4 *)(puVar11 + -8) = uVar8" (pointer_expression "*(undefined4 *)(puVar11 + -8)" * (cast_expression "(undefined4 *)(puVar11 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -8)" ( (binary_expression "puVar11 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";" (assignment_expression "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper"" (pointer_expression "*(char **)(puVar11 + -0xc)" * (cast_expression "(char **)(puVar11 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) = (string_literal ""make_elf_reloc_mapper"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x10) = 0x68;" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = 0x68" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" * (cast_expression "(undefined4 *)(puVar11 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";" (assignment_expression "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc"" (pointer_expression "*(char **)(puVar11 + -0x14)" * (cast_expression "(char **)(puVar11 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = (string_literal ""../../gold/dwarf_reader.cc"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173db2;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173db2" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0x28;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0x28" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" * (cast_expression "(undefined4 *)(puVar11 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173ce3;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173ce3" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7 = (undefined4 *)FUN_001aa8c0();" (assignment_expression "puVar7 = (undefined4 *)FUN_001aa8c0()" identifier = (cast_expression "(undefined4 *)FUN_001aa8c0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = *(undefined4 *)(puVar11 + 0x28);" (assignment_expression "uVar8 = *(undefined4 *)(puVar11 + 0x28)" identifier = (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" * (cast_expression "(undefined4 *)(puVar11 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x28)" ( (binary_expression "puVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = &PTR_FUN_00335b08;" (assignment_expression "*puVar7 = &PTR_FUN_00335b08" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_00335b08" & identifier)) ;) (expression_statement "uVar5 = *(undefined4 *)(puVar11 + 0x74);" (assignment_expression "uVar5 = *(undefined4 *)(puVar11 + 0x74)" identifier = (pointer_expression "*(undefined4 *)(puVar11 + 0x74)" * (cast_expression "(undefined4 *)(puVar11 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x74)" ( (binary_expression "puVar11 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "puVar7[1] = piVar12;" (assignment_expression "puVar7[1] = piVar12" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = uVar5;" (assignment_expression "puVar7[2] = uVar5" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = *(undefined4 *)(puVar11 + 0x24);" (assignment_expression "uVar5 = *(undefined4 *)(puVar11 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(puVar11 + 0x24)" * (cast_expression "(undefined4 *)(puVar11 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x24)" ( (binary_expression "puVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "puVar7[4] = uVar8;" (assignment_expression "puVar7[4] = uVar8" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = uVar5;" (assignment_expression "puVar7[3] = uVar5" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar10 = FUN_001776a0;" (assignment_expression "pcVar10 = FUN_001776a0" identifier = identifier) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }" else (compound_statement "{\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }" { (expression_statement "pcVar4 = *(code **)(iVar3 + 8);" (assignment_expression "pcVar4 = *(code **)(iVar3 + 8)" identifier = (pointer_expression "*(code **)(iVar3 + 8)" * (cast_expression "(code **)(iVar3 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (if_statement "if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }" if (parenthesized_expression "(pcVar4 == pcVar10)" ( (binary_expression "pcVar4 == pcVar10" identifier == identifier) )) (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar10 = *(code **)(iVar3 + 0xe4);" (assignment_expression "pcVar10 = *(code **)(iVar3 + 0xe4)" identifier = (pointer_expression "*(code **)(iVar3 + 0xe4)" * (cast_expression "(code **)(iVar3 + 0xe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0xe4)" ( (binary_expression "iVar3 + 0xe4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173be4;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173be4" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = (*pcVar10)();" (assignment_expression "iVar9 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }" else (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173d86;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173d86" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = (*pcVar4)();" (assignment_expression "iVar9 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }" if (parenthesized_expression "(iVar9 != 0x40)" ( (binary_expression "iVar9 != 0x40" identifier != number_literal) )) (compound_statement "{\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }" { (expression_statement "*(int *)(puVar11 + -8) = iVar9;" (assignment_expression "*(int *)(puVar11 + -8) = iVar9" (pointer_expression "*(int *)(puVar11 + -8)" * (cast_expression "(int *)(puVar11 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -8)" ( (binary_expression "puVar11 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";" (assignment_expression "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper"" (pointer_expression "*(char **)(puVar11 + -0xc)" * (cast_expression "(char **)(puVar11 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) = (string_literal ""make_elf_reloc_mapper"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x10) = 0x8b;" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = 0x8b" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" * (cast_expression "(undefined4 *)(puVar11 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";" (assignment_expression "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc"" (pointer_expression "*(char **)(puVar11 + -0x14)" * (cast_expression "(char **)(puVar11 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = (string_literal ""../../gold/dwarf_reader.cc"" " string_content ")) ;) (expression_statement "*(undefined **)(puVar11 + -0x18) = &UNK_00173de1;" (assignment_expression "*(undefined **)(puVar11 + -0x18) = &UNK_00173de1" (pointer_expression "*(undefined **)(puVar11 + -0x18)" * (cast_expression "(undefined **)(puVar11 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = (pointer_expression "&UNK_00173de1" & identifier)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "pcVar10 = *(code **)(iVar9 + 0xc);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0xc)" identifier = (pointer_expression "*(code **)(iVar9 + 0xc)" * (cast_expression "(code **)(iVar9 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }" if (parenthesized_expression "(pcVar10 == FUN_00094520)" ( (binary_expression "pcVar10 == FUN_00094520" identifier == identifier) )) (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar10 = *(code **)(iVar9 + 0xe8);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0xe8)" identifier = (pointer_expression "*(code **)(iVar9 + 0xe8)" * (cast_expression "(code **)(iVar9 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0xe8)" ( (binary_expression "iVar9 + 0xe8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173c0e;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173c0e" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar6 = (*pcVar10)();" (assignment_expression "cVar6 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar8 = extraout_EDX;" (assignment_expression "uVar8 = extraout_EDX" identifier = identifier) ;) }) (else_clause "else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }" else (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }" { (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" * (cast_expression "(int **)(puVar11 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173d78;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173d78" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar6 = (*pcVar10)();" (assignment_expression "cVar6 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar8 = extraout_EDX_00;" (assignment_expression "uVar8 = extraout_EDX_00" identifier = identifier) ;) }))) (if_statement "if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }" if (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }" { (expression_statement "*(undefined4 *)(puVar11 + -8) = uVar8;" (assignment_expression "*(undefined4 *)(puVar11 + -8) = uVar8" (pointer_expression "*(undefined4 *)(puVar11 + -8)" * (cast_expression "(undefined4 *)(puVar11 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -8)" ( (binary_expression "puVar11 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";" (assignment_expression "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper"" (pointer_expression "*(char **)(puVar11 + -0xc)" * (cast_expression "(char **)(puVar11 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) = (string_literal ""make_elf_reloc_mapper"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x10) = 0x7d;" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = 0x7d" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" * (cast_expression "(undefined4 *)(puVar11 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";" (assignment_expression "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc"" (pointer_expression "*(char **)(puVar11 + -0x14)" * (cast_expression "(char **)(puVar11 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = (string_literal ""../../gold/dwarf_reader.cc"" " string_content ")) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173dc8;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173dc8" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0x28;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0x28" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" * (cast_expression "(undefined4 *)(puVar11 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173c23;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173c23" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7 = (undefined4 *)FUN_001aa8c0();" (assignment_expression "puVar7 = (undefined4 *)FUN_001aa8c0()" identifier = (cast_expression "(undefined4 *)FUN_001aa8c0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = *(undefined4 *)(puVar11 + 0x28);" (assignment_expression "uVar8 = *(undefined4 *)(puVar11 + 0x28)" identifier = (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" * (cast_expression "(undefined4 *)(puVar11 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x28)" ( (binary_expression "puVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = &PTR_FUN_00335b30;" (assignment_expression "*puVar7 = &PTR_FUN_00335b30" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_00335b30" & identifier)) ;) (expression_statement "uVar5 = *(undefined4 *)(puVar11 + 0x74);" (assignment_expression "uVar5 = *(undefined4 *)(puVar11 + 0x74)" identifier = (pointer_expression "*(undefined4 *)(puVar11 + 0x74)" * (cast_expression "(undefined4 *)(puVar11 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x74)" ( (binary_expression "puVar11 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "puVar7[1] = piVar12;" (assignment_expression "puVar7[1] = piVar12" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = uVar5;" (assignment_expression "puVar7[2] = uVar5" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = *(undefined4 *)(puVar11 + 0x24);" (assignment_expression "uVar5 = *(undefined4 *)(puVar11 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(puVar11 + 0x24)" * (cast_expression "(undefined4 *)(puVar11 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x24)" ( (binary_expression "puVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "puVar7[4] = uVar8;" (assignment_expression "puVar7[4] = uVar8" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = uVar5;" (assignment_expression "puVar7[3] = uVar5" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar10 = FUN_00177610;" (assignment_expression "pcVar10 = FUN_00177610" identifier = identifier) ;) }))) (expression_statement "*(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30) = puVar7;" (assignment_expression "*(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30) = puVar7" (pointer_expression "*(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30)" * (cast_expression "(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar11 + 0x6c) + 0x30)" ( (binary_expression "*(int *)(puVar11 + 0x6c) + 0x30" (pointer_expression "*(int *)(puVar11 + 0x6c)" * (cast_expression "(int *)(puVar11 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x6c)" ( (binary_expression "puVar11 + 0x6c" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0xc) = iVar16;" (assignment_expression "*(int *)(puVar11 + -0xc) = iVar16" (pointer_expression "*(int *)(puVar11 + -0xc)" * (cast_expression "(int *)(puVar11 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar11 + -0x10) = uVar14;" (assignment_expression "*(uint *)(puVar11 + -0x10) = uVar14" (pointer_expression "*(uint *)(puVar11 + -0x10)" * (cast_expression "(uint *)(puVar11 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar11 + -0x14) = puVar7;" (assignment_expression "*(undefined4 **)(puVar11 + -0x14) = puVar7" (pointer_expression "*(undefined4 **)(puVar11 + -0x14)" * (cast_expression "(undefined4 **)(puVar11 + -0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173c81;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173c81" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" * (cast_expression "(undefined4 *)(puVar11 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(int *)(*(int *)(puVar11 + 0x6c) + 0x34) = iVar16;" (assignment_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 0x34) = iVar16" (pointer_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 0x34)" * (cast_expression "(int *)(*(int *)(puVar11 + 0x6c) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x6c) + 0x34)" ( (binary_expression "*(int *)(puVar11 + 0x6c) + 0x34" (pointer_expression "*(int *)(puVar11 + 0x6c)" * (cast_expression "(int *)(puVar11 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x6c)" ( (binary_expression "puVar11 + 0x6c" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = 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 ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_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 IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (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 { (return_statement return 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_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) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_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) )))) = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = 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 = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) ;) })) (return_statement return LIT ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal " string_content ")) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (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 (pointer_expression * IDENT) = (pointer_expression & 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal " string_content ")) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal " string_content ")) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (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 (pointer_expression * IDENT) = (pointer_expression & 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_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) )))) = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_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) )))) = IDENT) ;) (return_statement return LIT ;) })))
(function_definition "undefined4\nFUN_00173980(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)\n\n{\n  uint *puVar1;\n  byte *pbVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined4 uVar5;\n  char cVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  code *pcVar10;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined1 *puVar11;\n  int *piVar12;\n  byte *pbVar13;\n  uint uVar14;\n  byte *pbVar15;\n  int iVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  byte bVar21;\n  int aiStack_94 [10];\n  undefined1 auStack_6c [8];\n  uint local_64 [2];\n  char *local_5c [9];\n  int local_38;\n  undefined1 local_34 [8];\n  undefined1 local_2c [24];\n  undefined4 uStack_14;\n  \n  bVar21 = 0;\n  uStack_14 = 0x173989;\n  local_5c[6] = (char *)param_4;\n  local_5c[7] = (char *)param_5;\n  if (*(char *)(param_1 + 0x1c) == '\0') {\n    local_5c[3] = "gnu_pubnames";\n    local_5c[4] = "gnu_pubnames";\n  }\n  else {\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }\n  local_5c[3] = local_5c[3] + 4;\n  if (1 < *(uint *)(param_2 + 0x28)) {\n    local_64[1] = 1;\n    local_5c[0] = local_34;\n    local_5c[1] = ".debug_";\n    local_5c[2] = local_2c;\n    local_5c[5] = ".zdebug_";\n    puVar11 = auStack_6c;\n    do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));\n  }\n  return 0;\nLAB_00173b74:\n  do {\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  } while (uVar14 < (uint)piVar12[10]);\n  uVar14 = 0;\nLAB_00173b9d:\n  pcVar10 = *(code **)(iVar9 + 8);\n  *(code **)(puVar11 + 8) = FUN_00094510;\n  if (pcVar10 == FUN_00094510) {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xe4);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173bbc;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  else {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  iVar3 = *piVar12;\n  if (iVar9 == 0x20) {\n    pcVar10 = *(code **)(iVar3 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173ce3;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b08;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_001776a0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n  }\n  else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }\n  *(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30) = puVar7;\n  *(int *)(puVar11 + -0xc) = iVar16;\n  *(uint *)(puVar11 + -0x10) = uVar14;\n  *(undefined4 **)(puVar11 + -0x14) = puVar7;\n  *(undefined4 *)(puVar11 + -0x18) = 0x173c81;\n  (*pcVar10)();\n  *(int *)(*(int *)(puVar11 + 0x6c) + 0x34) = iVar16;\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_00173980(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)" (identifier "FUN_00173980") (parameter_list "(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) () ")"))) (compound_statement "{\n  uint *puVar1;\n  byte *pbVar2;\n  int iVar3;\n  code *pcVar4;\n  undefined4 uVar5;\n  char cVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  code *pcVar10;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined1 *puVar11;\n  int *piVar12;\n  byte *pbVar13;\n  uint uVar14;\n  byte *pbVar15;\n  int iVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  byte bVar21;\n  int aiStack_94 [10];\n  undefined1 auStack_6c [8];\n  uint local_64 [2];\n  char *local_5c [9];\n  int local_38;\n  undefined1 local_34 [8];\n  undefined1 local_2c [24];\n  undefined4 uStack_14;\n  \n  bVar21 = 0;\n  uStack_14 = 0x173989;\n  local_5c[6] = (char *)param_4;\n  local_5c[7] = (char *)param_5;\n  if (*(char *)(param_1 + 0x1c) == '\0') {\n    local_5c[3] = "gnu_pubnames";\n    local_5c[4] = "gnu_pubnames";\n  }\n  else {\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }\n  local_5c[3] = local_5c[3] + 4;\n  if (1 < *(uint *)(param_2 + 0x28)) {\n    local_64[1] = 1;\n    local_5c[0] = local_34;\n    local_5c[1] = ".debug_";\n    local_5c[2] = local_2c;\n    local_5c[5] = ".zdebug_";\n    puVar11 = auStack_6c;\n    do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));\n  }\n  return 0;\nLAB_00173b74:\n  do {\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  } while (uVar14 < (uint)piVar12[10]);\n  uVar14 = 0;\nLAB_00173b9d:\n  pcVar10 = *(code **)(iVar9 + 8);\n  *(code **)(puVar11 + 8) = FUN_00094510;\n  if (pcVar10 == FUN_00094510) {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xe4);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173bbc;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  else {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  iVar3 = *piVar12;\n  if (iVar9 == 0x20) {\n    pcVar10 = *(code **)(iVar3 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173ce3;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b08;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_001776a0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n  }\n  else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }\n  *(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30) = puVar7;\n  *(int *)(puVar11 + -0xc) = iVar16;\n  *(uint *)(puVar11 + -0x10) = uVar14;\n  *(undefined4 **)(puVar11 + -0x14) = puVar7;\n  *(undefined4 *)(puVar11 + -0x18) = 0x173c81;\n  (*pcVar10)();\n  *(int *)(*(int *)(puVar11 + 0x6c) + 0x34) = iVar16;\n  return 1;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "byte *pbVar2;" (type_identifier "byte") (pointer_declarator "*pbVar2" (* "*") (identifier "pbVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "code *pcVar4;" (type_identifier "code") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "char cVar6;" (primitive_type "char") (identifier "cVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "code *pcVar10;" (type_identifier "code") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "undefined4 extraout_ECX_00;" (type_identifier "undefined4") (identifier "extraout_ECX_00") (; ";")) (declaration "undefined4 extraout_EDX;" (type_identifier "undefined4") (identifier "extraout_EDX") (; ";")) (declaration "undefined4 extraout_EDX_00;" (type_identifier "undefined4") (identifier "extraout_EDX_00") (; ";")) (declaration "undefined1 *puVar11;" (type_identifier "undefined1") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "undefined1 uVar17;" (type_identifier "undefined1") (identifier "uVar17") (; ";")) (declaration "bool bVar18;" (primitive_type "bool") (identifier "bVar18") (; ";")) (declaration "undefined1 uVar19;" (type_identifier "undefined1") (identifier "uVar19") (; ";")) (declaration "bool bVar20;" (primitive_type "bool") (identifier "bVar20") (; ";")) (declaration "byte bVar21;" (type_identifier "byte") (identifier "bVar21") (; ";")) (declaration "int aiStack_94 [10];" (primitive_type "int") (array_declarator "aiStack_94 [10]" (identifier "aiStack_94") ([ "[") (number_literal "10") (] "]")) (; ";")) (declaration "undefined1 auStack_6c [8];" (type_identifier "undefined1") (array_declarator "auStack_6c [8]" (identifier "auStack_6c") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "uint local_64 [2];" (type_identifier "uint") (array_declarator "local_64 [2]" (identifier "local_64") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "char *local_5c [9];" (primitive_type "char") (pointer_declarator "*local_5c [9]" (* "*") (array_declarator "local_5c [9]" (identifier "local_5c") ([ "[") (number_literal "9") (] "]"))) (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "undefined1 local_34 [8];" (type_identifier "undefined1") (array_declarator "local_34 [8]" (identifier "local_34") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "undefined1 local_2c [24];" (type_identifier "undefined1") (array_declarator "local_2c [24]" (identifier "local_2c") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" (identifier "bVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x173989;" (assignment_expression "uStack_14 = 0x173989" (identifier "uStack_14") (= "=") (number_literal "0x173989")) (; ";")) (expression_statement "local_5c[6] = (char *)param_4;" (assignment_expression "local_5c[6] = (char *)param_4" (subscript_expression "local_5c[6]" (identifier "local_5c") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(char *)param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4"))) (; ";")) (expression_statement "local_5c[7] = (char *)param_5;" (assignment_expression "local_5c[7] = (char *)param_5" (subscript_expression "local_5c[7]" (identifier "local_5c") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(char *)param_5" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_5"))) (; ";")) (if_statement "if (*(char *)(param_1 + 0x1c) == '\0') {\n    local_5c[3] = "gnu_pubnames";\n    local_5c[4] = "gnu_pubnames";\n  }\n  else {\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x1c) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x1c) == '\0'" (pointer_expression "*(char *)(param_1 + 0x1c)" (* "*") (cast_expression "(char *)(param_1 + 0x1c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    local_5c[3] = "gnu_pubnames";\n    local_5c[4] = "gnu_pubnames";\n  }" ({ "{") (expression_statement "local_5c[3] = "gnu_pubnames";" (assignment_expression "local_5c[3] = "gnu_pubnames"" (subscript_expression "local_5c[3]" (identifier "local_5c") ([ "[") (number_literal "3") (] "]")) (= "=") (string_literal ""gnu_pubnames"" (" """) (string_content "gnu_pubnames") (" """))) (; ";")) (expression_statement "local_5c[4] = "gnu_pubnames";" (assignment_expression "local_5c[4] = "gnu_pubnames"" (subscript_expression "local_5c[4]" (identifier "local_5c") ([ "[") (number_literal "4") (] "]")) (= "=") (string_literal ""gnu_pubnames"" (" """) (string_content "gnu_pubnames") (" """))) (; ";")) (} "}")) (else_clause "else {\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }" (else "else") (compound_statement "{\n    local_5c[3] = "gnu_pubtypes";\n    local_5c[4] = "gnu_pubtypes";\n  }" ({ "{") (expression_statement "local_5c[3] = "gnu_pubtypes";" (assignment_expression "local_5c[3] = "gnu_pubtypes"" (subscript_expression "local_5c[3]" (identifier "local_5c") ([ "[") (number_literal "3") (] "]")) (= "=") (string_literal ""gnu_pubtypes"" (" """) (string_content "gnu_pubtypes") (" """))) (; ";")) (expression_statement "local_5c[4] = "gnu_pubtypes";" (assignment_expression "local_5c[4] = "gnu_pubtypes"" (subscript_expression "local_5c[4]" (identifier "local_5c") ([ "[") (number_literal "4") (] "]")) (= "=") (string_literal ""gnu_pubtypes"" (" """) (string_content "gnu_pubtypes") (" """))) (; ";")) (} "}")))) (expression_statement "local_5c[3] = local_5c[3] + 4;" (assignment_expression "local_5c[3] = local_5c[3] + 4" (subscript_expression "local_5c[3]" (identifier "local_5c") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "local_5c[3] + 4" (subscript_expression "local_5c[3]" (identifier "local_5c") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (1 < *(uint *)(param_2 + 0x28)) {\n    local_64[1] = 1;\n    local_5c[0] = local_34;\n    local_5c[1] = ".debug_";\n    local_5c[2] = local_2c;\n    local_5c[5] = ".zdebug_";\n    puVar11 = auStack_6c;\n    do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));\n  }" (if "if") (parenthesized_expression "(1 < *(uint *)(param_2 + 0x28))" (( "(") (binary_expression "1 < *(uint *)(param_2 + 0x28)" (number_literal "1") (< "<") (pointer_expression "*(uint *)(param_2 + 0x28)" (* "*") (cast_expression "(uint *)(param_2 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x28)" (( "(") (binary_expression "param_2 + 0x28" (identifier "param_2") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    local_64[1] = 1;\n    local_5c[0] = local_34;\n    local_5c[1] = ".debug_";\n    local_5c[2] = local_2c;\n    local_5c[5] = ".zdebug_";\n    puVar11 = auStack_6c;\n    do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));\n  }" ({ "{") (expression_statement "local_64[1] = 1;" (assignment_expression "local_64[1] = 1" (subscript_expression "local_64[1]" (identifier "local_64") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_5c[0] = local_34;" (assignment_expression "local_5c[0] = local_34" (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "local_5c[1] = ".debug_";" (assignment_expression "local_5c[1] = ".debug_"" (subscript_expression "local_5c[1]" (identifier "local_5c") ([ "[") (number_literal "1") (] "]")) (= "=") (string_literal "".debug_"" (" """) (string_content ".debug_") (" """))) (; ";")) (expression_statement "local_5c[2] = local_2c;" (assignment_expression "local_5c[2] = local_2c" (subscript_expression "local_5c[2]" (identifier "local_5c") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "local_5c[5] = ".zdebug_";" (assignment_expression "local_5c[5] = ".zdebug_"" (subscript_expression "local_5c[5]" (identifier "local_5c") ([ "[") (number_literal "5") (] "]")) (= "=") (string_literal "".zdebug_"" (" """) (string_content ".zdebug_") (" """))) (; ";")) (expression_statement "puVar11 = auStack_6c;" (assignment_expression "puVar11 = auStack_6c" (identifier "puVar11") (= "=") (identifier "auStack_6c")) (; ";")) (do_statement "do {\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));" (do "do") (compound_statement "{\n      uVar17 = puVar11 < (undefined1 *)0x4;\n      uVar19 = puVar11 == (undefined1 *)0x4;\n      iVar9 = **(int **)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);\n      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);\n      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n      pcVar10 = *(code **)(iVar9 + 0x40);\n      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;\n      (*pcVar10)();\n      iVar9 = 7;\n      pbVar2 = *(byte **)(puVar11 + 0x34);\n      pbVar13 = *(byte **)(puVar11 + 0x10);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);\n      pbVar13 = pbVar2 + 7;\n      bVar18 = false;\n      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;\n      if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }\n      iVar9 = 8;\n      pbVar13 = *(byte **)(puVar11 + 0x20);\n      pbVar15 = pbVar2;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);\n      pbVar13 = pbVar2 + 8;\n      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;\nLAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }\n      piVar12 = (int *)(puVar11 + 0x70);\n      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;\n      puVar1 = (uint *)(puVar11 + 8);\n      puVar11 = puVar11 + -4;\n    }" ({ "{") (expression_statement "uVar17 = puVar11 < (undefined1 *)0x4;" (assignment_expression "uVar17 = puVar11 < (undefined1 *)0x4" (identifier "uVar17") (= "=") (binary_expression "puVar11 < (undefined1 *)0x4" (identifier "puVar11") (< "<") (cast_expression "(undefined1 *)0x4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4")))) (; ";")) (expression_statement "uVar19 = puVar11 == (undefined1 *)0x4;" (assignment_expression "uVar19 = puVar11 == (undefined1 *)0x4" (identifier "uVar19") (= "=") (binary_expression "puVar11 == (undefined1 *)0x4" (identifier "puVar11") (== "==") (cast_expression "(undefined1 *)0x4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4")))) (; ";")) (expression_statement "iVar9 = **(int **)(puVar11 + 0x74);" (assignment_expression "iVar9 = **(int **)(puVar11 + 0x74)" (identifier "iVar9") (= "=") (pointer_expression "**(int **)(puVar11 + 0x74)" (* "*") (pointer_expression "*(int **)(puVar11 + 0x74)" (* "*") (cast_expression "(int **)(puVar11 + 0x74)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x74)" (( "(") (binary_expression "puVar11 + 0x74" (identifier "puVar11") (+ "+") (number_literal "0x74")) () ")")))))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);" (assignment_expression "*(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc)" (pointer_expression "*(undefined4 *)(puVar11 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -8)" (( "(") (binary_expression "puVar11 + -8" (identifier "puVar11") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0xc)" (( "(") (binary_expression "puVar11 + 0xc" (identifier "puVar11") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);" (assignment_expression "*(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74)" (pointer_expression "*(undefined4 *)(puVar11 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0xc)" (( "(") (binary_expression "puVar11 + -0xc" (identifier "puVar11") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar11 + 0x74)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x74)" (( "(") (binary_expression "puVar11 + 0x74" (identifier "puVar11") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10)" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x10)" (( "(") (binary_expression "puVar11 + -0x10" (identifier "puVar11") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar11 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x10)" (( "(") (binary_expression "puVar11 + 0x10" (identifier "puVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "pcVar10 = *(code **)(iVar9 + 0x40);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0x40)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(iVar9 + 0x40)" (* "*") (cast_expression "(code **)(iVar9 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x40)" (( "(") (binary_expression "iVar9 + 0x40" (identifier "iVar9") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0x173a20;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0x173a20" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x173a20")) (; ";")) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" (identifier "iVar9") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar2 = *(byte **)(puVar11 + 0x34);" (assignment_expression "pbVar2 = *(byte **)(puVar11 + 0x34)" (identifier "pbVar2") (= "=") (pointer_expression "*(byte **)(puVar11 + 0x34)" (* "*") (cast_expression "(byte **)(puVar11 + 0x34)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x34)" (( "(") (binary_expression "puVar11 + 0x34" (identifier "puVar11") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "pbVar13 = *(byte **)(puVar11 + 0x10);" (assignment_expression "pbVar13 = *(byte **)(puVar11 + 0x10)" (identifier "pbVar13") (= "=") (pointer_expression "*(byte **)(puVar11 + 0x10)" (* "*") (cast_expression "(byte **)(puVar11 + 0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x10)" (( "(") (binary_expression "puVar11 + 0x10" (identifier "puVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "pbVar15 = pbVar2;" (assignment_expression "pbVar15 = pbVar2" (identifier "pbVar15") (= "=") (identifier "pbVar2")) (; ";")) (do_statement "do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while ((bool)uVar19);" (do "do") (compound_statement "{\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        uVar17 = *pbVar13 < *pbVar15;\n        uVar19 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar17 = *pbVar13 < *pbVar15;" (assignment_expression "uVar17 = *pbVar13 < *pbVar15" (identifier "uVar17") (= "=") (binary_expression "*pbVar13 < *pbVar15" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "uVar19 = *pbVar13 == *pbVar15;" (assignment_expression "uVar19 = *pbVar13 == *pbVar15" (identifier "uVar19") (= "=") (binary_expression "*pbVar13 == *pbVar15" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (uint)bVar21 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar21 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar21")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar21 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar21 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar21")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar19)" (( "(") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19")) () ")")) (; ";")) (expression_statement "pbVar13 = pbVar2 + 7;" (assignment_expression "pbVar13 = pbVar2 + 7" (identifier "pbVar13") (= "=") (binary_expression "pbVar2 + 7" (identifier "pbVar2") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";")) (expression_statement "bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;" (assignment_expression "bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (identifier "bVar20") (= "=") (binary_expression "(!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17" (parenthesized_expression "(!(bool)uVar17 && !(bool)uVar19)" (( "(") (binary_expression "!(bool)uVar17 && !(bool)uVar19" (unary_expression "!(bool)uVar17" (! "!") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17"))) (&& "&&") (unary_expression "!(bool)uVar19" (! "!") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19")))) () ")")) (== "==") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")))) (; ";")) (if_statement "if (bVar20) {\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }" (if "if") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (compound_statement "{\nLAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);\n        *(byte **)(puVar11 + -0x14) = pbVar13;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;\n        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n        if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }\n        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }\n        if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }\n        *(undefined4 *)(puVar11 + -0x14) = 0;\n        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;\n        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);\n        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);\n        *(int **)(puVar11 + -0x24) = piVar12;\n        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;\n        iVar9 = FUN_000bf200();\n        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;\n        if (iVar9 == 0) {\n          return 0;\n        }\n        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);\n        iVar9 = *piVar12;\n        pcVar10 = *(code **)(iVar9 + 0x18);\n        if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }\n        uVar14 = piVar12[10];\n        iVar16 = 0;\n        if (uVar14 == 0) goto LAB_00173b9d;\n        uVar14 = 0;\n        goto LAB_00173b74;\n      }" ({ "{") (labeled_statement "LAB_00173a59:\n        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);" (statement_identifier "LAB_00173a59") (: ":") (expression_statement "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18)" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x10)" (( "(") (binary_expression "puVar11 + -0x10" (identifier "puVar11") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar11 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x18)" (( "(") (binary_expression "puVar11 + 0x18" (identifier "puVar11") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (expression_statement "*(byte **)(puVar11 + -0x14) = pbVar13;" (assignment_expression "*(byte **)(puVar11 + -0x14) = pbVar13" (pointer_expression "*(byte **)(puVar11 + -0x14)" (* "*") (cast_expression "(byte **)(puVar11 + -0x14)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173a66;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173a66" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173a66")) (; ";")) (expression_statement "iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));" (assignment_expression "iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" (identifier "iVar9") (= "=") (call_expression "strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" (identifier "strcmp") (argument_list "(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" (( "(") (pointer_expression "*(char **)(puVar11 + -0x14)" (* "*") (cast_expression "(char **)(puVar11 + -0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (, ",") (pointer_expression "*(char **)(puVar11 + -0x10)" (* "*") (cast_expression "(char **)(puVar11 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x10)" (( "(") (binary_expression "puVar11 + -0x10" (identifier "puVar11") (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }\n        else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          piVar12 = *(int **)(puVar11 + 0x70);\n        }" ({ "{") (expression_statement "piVar12 = *(int **)(puVar11 + 0x70);" (assignment_expression "piVar12 = *(int **)(puVar11 + 0x70)" (identifier "piVar12") (= "=") (pointer_expression "*(int **)(puVar11 + 0x70)" (* "*") (cast_expression "(int **)(puVar11 + 0x70)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x70)" (( "(") (binary_expression "puVar11 + 0x70" (identifier "puVar11") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }" (else "else") (compound_statement "{\n          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);\n          *(byte **)(puVar11 + -0x14) = pbVar13;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;\n          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));\n          if (iVar9 != 0) goto LAB_00173a85;\n          piVar12 = *(int **)(puVar11 + 0x70);\n          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;\n        }" ({ "{") (expression_statement "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c)" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x10)" (( "(") (binary_expression "puVar11 + -0x10" (identifier "puVar11") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar11 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x1c)" (( "(") (binary_expression "puVar11 + 0x1c" (identifier "puVar11") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(byte **)(puVar11 + -0x14) = pbVar13;" (assignment_expression "*(byte **)(puVar11 + -0x14) = pbVar13" (pointer_expression "*(byte **)(puVar11 + -0x14)" (* "*") (cast_expression "(byte **)(puVar11 + -0x14)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173a7a;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173a7a" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173a7a")) (; ";")) (expression_statement "iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));" (assignment_expression "iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" (identifier "iVar9") (= "=") (call_expression "strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" (identifier "strcmp") (argument_list "(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10))" (( "(") (pointer_expression "*(char **)(puVar11 + -0x14)" (* "*") (cast_expression "(char **)(puVar11 + -0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (, ",") (pointer_expression "*(char **)(puVar11 + -0x10)" (* "*") (cast_expression "(char **)(puVar11 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x10)" (( "(") (binary_expression "puVar11 + -0x10" (identifier "puVar11") (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar9 != 0) goto LAB_00173a85;" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00173a85;" (goto "goto") (statement_identifier "LAB_00173a85") (; ";"))) (expression_statement "piVar12 = *(int **)(puVar11 + 0x70);" (assignment_expression "piVar12 = *(int **)(puVar11 + 0x70)" (identifier "piVar12") (= "=") (pointer_expression "*(int **)(puVar11 + 0x70)" (* "*") (cast_expression "(int **)(puVar11 + 0x70)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x70)" (( "(") (binary_expression "puVar11 + 0x70" (identifier "puVar11") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;" (assignment_expression "*(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1" (pointer_expression "*(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d)" (* "*") (cast_expression "(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x6c) + 0x1d)" (( "(") (binary_expression "*(int *)(puVar11 + 0x6c) + 0x1d" (pointer_expression "*(int *)(puVar11 + 0x6c)" (* "*") (cast_expression "(int *)(puVar11 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x6c)" (( "(") (binary_expression "puVar11 + 0x6c" (identifier "puVar11") (+ "+") (number_literal "0x6c")) () ")")))) (+ "+") (number_literal "0x1d")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")))) (if_statement "if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }" (if "if") (parenthesized_expression "(pbVar2 != *(byte **)(puVar11 + 0x14))" (( "(") (binary_expression "pbVar2 != *(byte **)(puVar11 + 0x14)" (identifier "pbVar2") (!= "!=") (pointer_expression "*(byte **)(puVar11 + 0x14)" (* "*") (cast_expression "(byte **)(puVar11 + 0x14)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n          *(byte **)(puVar11 + -0x14) = pbVar2;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;\n          FUN_001ac470();\n        }" ({ "{") (expression_statement "*(byte **)(puVar11 + -0x14) = pbVar2;" (assignment_expression "*(byte **)(puVar11 + -0x14) = pbVar2" (pointer_expression "*(byte **)(puVar11 + -0x14)" (* "*") (cast_expression "(byte **)(puVar11 + -0x14)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "pbVar2")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173af5;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173af5" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173af5")) (; ";")) (expression_statement "FUN_001ac470();" (call_expression "FUN_001ac470()" (identifier "FUN_001ac470") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar11 + 8) == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar11 + 8) == 0)" (( "(") (binary_expression "*(int *)(puVar11 + 8) == 0" (pointer_expression "*(int *)(puVar11 + 8)" (* "*") (cast_expression "(int *)(puVar11 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 8)" (( "(") (binary_expression "puVar11 + 8" (identifier "puVar11") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;" (assignment_expression "*(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc" (pointer_expression "*(int *)(puVar11 + -0x18)" (* "*") (cast_expression "(int *)(puVar11 + -0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "*(int *)(puVar11 + 0x6c) + 0xc" (pointer_expression "*(int *)(puVar11 + 0x6c)" (* "*") (cast_expression "(int *)(puVar11 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x6c)" (( "(") (binary_expression "puVar11 + 0x6c" (identifier "puVar11") (+ "+") (number_literal "0x6c")) () ")")))) (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);" (assignment_expression "*(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc)" (pointer_expression "*(undefined4 *)(puVar11 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x1c)" (( "(") (binary_expression "puVar11 + -0x1c" (identifier "puVar11") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar11 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0xc)" (( "(") (binary_expression "puVar11 + 0xc" (identifier "puVar11") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);" (assignment_expression "*(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8)" (pointer_expression "*(int *)(puVar11 + -0x20)" (* "*") (cast_expression "(int *)(puVar11 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x20)" (( "(") (binary_expression "puVar11 + -0x20" (identifier "puVar11") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (pointer_expression "*(int *)(puVar11 + 8)" (* "*") (cast_expression "(int *)(puVar11 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 8)" (( "(") (binary_expression "puVar11 + 8" (identifier "puVar11") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(int **)(puVar11 + -0x24) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x24) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x24)" (* "*") (cast_expression "(int **)(puVar11 + -0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x24)" (( "(") (binary_expression "puVar11 + -0x24" (identifier "puVar11") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x28) = 0x173b1b;" (assignment_expression "*(undefined4 *)(puVar11 + -0x28) = 0x173b1b" (pointer_expression "*(undefined4 *)(puVar11 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x28)" (( "(") (binary_expression "puVar11 + -0x28" (identifier "puVar11") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (number_literal "0x173b1b")) (; ";")) (expression_statement "iVar9 = FUN_000bf200();" (assignment_expression "iVar9 = FUN_000bf200()" (identifier "iVar9") (= "=") (call_expression "FUN_000bf200()" (identifier "FUN_000bf200") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;" (assignment_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9" (pointer_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar11 + 0x6c) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x6c) + 4)" (( "(") (binary_expression "*(int *)(puVar11 + 0x6c) + 4" (pointer_expression "*(int *)(puVar11 + 0x6c)" (* "*") (cast_expression "(int *)(puVar11 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x6c)" (( "(") (binary_expression "puVar11 + 0x6c" (identifier "puVar11") (+ "+") (number_literal "0x6c")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (if_statement "if (iVar9 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "*(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);" (assignment_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34)" (pointer_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 8)" (* "*") (cast_expression "(int *)(*(int *)(puVar11 + 0x6c) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x6c) + 8)" (( "(") (binary_expression "*(int *)(puVar11 + 0x6c) + 8" (pointer_expression "*(int *)(puVar11 + 0x6c)" (* "*") (cast_expression "(int *)(puVar11 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x6c)" (( "(") (binary_expression "puVar11 + 0x6c" (identifier "puVar11") (+ "+") (number_literal "0x6c")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "iVar9 + *(int *)(puVar11 + 0x34)" (identifier "iVar9") (+ "+") (pointer_expression "*(int *)(puVar11 + 0x34)" (* "*") (cast_expression "(int *)(puVar11 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x34)" (( "(") (binary_expression "puVar11 + 0x34" (identifier "puVar11") (+ "+") (number_literal "0x34")) () ")")))))) (; ";")) (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" (identifier "iVar9") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "pcVar10 = *(code **)(iVar9 + 0x18);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0x18)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(iVar9 + 0x18)" (* "*") (cast_expression "(code **)(iVar9 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (pcVar10 != FUN_000944b0) {\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }" (if "if") (parenthesized_expression "(pcVar10 != FUN_000944b0)" (( "(") (binary_expression "pcVar10 != FUN_000944b0" (identifier "pcVar10") (!= "!=") (identifier "FUN_000944b0")) () ")")) (compound_statement "{\n          *(int **)(puVar11 + -0x14) = piVar12;\n          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;\n          uVar8 = (*pcVar10)();\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          iVar9 = *piVar12;\n        }" ({ "{") (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" (* "*") (cast_expression "(int **)(puVar11 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173d4d;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173d4d" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173d4d")) (; ";")) (expression_statement "uVar8 = (*pcVar10)();" (assignment_expression "uVar8 = (*pcVar10)()" (identifier "uVar8") (= "=") (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((char)uVar8 != '\0') {\n            return uVar8;\n          }" (if "if") (parenthesized_expression "((char)uVar8 != '\0')" (( "(") (binary_expression "(char)uVar8 != '\0'" (cast_expression "(char)uVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar8")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            return uVar8;\n          }" ({ "{") (return_statement "return uVar8;" (return "return") (identifier "uVar8") (; ";")) (} "}"))) (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" (identifier "iVar9") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (} "}"))) (expression_statement "uVar14 = piVar12[10];" (assignment_expression "uVar14 = piVar12[10]" (identifier "uVar14") (= "=") (subscript_expression "piVar12[10]" (identifier "piVar12") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar14 == 0) goto LAB_00173b9d;" (if "if") (parenthesized_expression "(uVar14 == 0)" (( "(") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00173b9d;" (goto "goto") (statement_identifier "LAB_00173b9d") (; ";"))) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00173b74;" (goto "goto") (statement_identifier "LAB_00173b74") (; ";")) (} "}"))) (expression_statement "iVar9 = 8;" (assignment_expression "iVar9 = 8" (identifier "iVar9") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar13 = *(byte **)(puVar11 + 0x20);" (assignment_expression "pbVar13 = *(byte **)(puVar11 + 0x20)" (identifier "pbVar13") (= "=") (pointer_expression "*(byte **)(puVar11 + 0x20)" (* "*") (cast_expression "(byte **)(puVar11 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x20)" (( "(") (binary_expression "puVar11 + 0x20" (identifier "puVar11") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "pbVar15 = pbVar2;" (assignment_expression "pbVar15 = pbVar2" (identifier "pbVar15") (= "=") (identifier "pbVar2")) (; ";")) (do_statement "do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      } while (bVar20);" (do "do") (compound_statement "{\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar18 = *pbVar13 < *pbVar15;\n        bVar20 = *pbVar13 == *pbVar15;\n        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar13 < *pbVar15;" (assignment_expression "bVar18 = *pbVar13 < *pbVar15" (identifier "bVar18") (= "=") (binary_expression "*pbVar13 < *pbVar15" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "bVar20 = *pbVar13 == *pbVar15;" (assignment_expression "bVar20 = *pbVar13 == *pbVar15" (identifier "bVar20") (= "=") (binary_expression "*pbVar13 == *pbVar15" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (uint)bVar21 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar21 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar21")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar21 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar21 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar21")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (; ";")) (expression_statement "pbVar13 = pbVar2 + 8;" (assignment_expression "pbVar13 = pbVar2 + 8" (identifier "pbVar13") (= "=") (binary_expression "pbVar2 + 8" (identifier "pbVar2") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;" (if "if") (parenthesized_expression "((!bVar18 && !bVar20) == bVar18)" (( "(") (binary_expression "(!bVar18 && !bVar20) == bVar18" (parenthesized_expression "(!bVar18 && !bVar20)" (( "(") (binary_expression "!bVar18 && !bVar20" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar20" (! "!") (identifier "bVar20"))) () ")")) (== "==") (identifier "bVar18")) () ")")) (goto_statement "goto LAB_00173a59;" (goto "goto") (statement_identifier "LAB_00173a59") (; ";"))) (labeled_statement "LAB_00173a85:\n      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }" (statement_identifier "LAB_00173a85") (: ":") (if_statement "if (pbVar2 != *(byte **)(puVar11 + 0x14)) {\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }" (if "if") (parenthesized_expression "(pbVar2 != *(byte **)(puVar11 + 0x14))" (( "(") (binary_expression "pbVar2 != *(byte **)(puVar11 + 0x14)" (identifier "pbVar2") (!= "!=") (pointer_expression "*(byte **)(puVar11 + 0x14)" (* "*") (cast_expression "(byte **)(puVar11 + 0x14)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n        *(byte **)(puVar11 + -0x14) = pbVar2;\n        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;\n        FUN_001ac470();\n      }" ({ "{") (expression_statement "*(byte **)(puVar11 + -0x14) = pbVar2;" (assignment_expression "*(byte **)(puVar11 + -0x14) = pbVar2" (pointer_expression "*(byte **)(puVar11 + -0x14)" (* "*") (cast_expression "(byte **)(puVar11 + -0x14)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "pbVar2")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173a94;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173a94" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173a94")) (; ";")) (expression_statement "FUN_001ac470();" (call_expression "FUN_001ac470()" (identifier "FUN_001ac470") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "piVar12 = (int *)(puVar11 + 0x70);" (assignment_expression "piVar12 = (int *)(puVar11 + 0x70)" (identifier "piVar12") (= "=") (cast_expression "(int *)(puVar11 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x70)" (( "(") (binary_expression "puVar11 + 0x70" (identifier "puVar11") (+ "+") (number_literal "0x70")) () ")")))) (; ";")) (expression_statement "*(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;" (assignment_expression "*(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1" (pointer_expression "*(int *)(puVar11 + 8)" (* "*") (cast_expression "(int *)(puVar11 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 8)" (( "(") (binary_expression "puVar11 + 8" (identifier "puVar11") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(int *)(puVar11 + 8) + 1" (pointer_expression "*(int *)(puVar11 + 8)" (* "*") (cast_expression "(int *)(puVar11 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 8)" (( "(") (binary_expression "puVar11 + 8" (identifier "puVar11") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar1 = (uint *)(puVar11 + 8);" (assignment_expression "puVar1 = (uint *)(puVar11 + 8)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(puVar11 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 8)" (( "(") (binary_expression "puVar11 + 8" (identifier "puVar11") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "puVar11 = puVar11 + -4;" (assignment_expression "puVar11 = puVar11 + -4" (identifier "puVar11") (= "=") (binary_expression "puVar11 + -4" (identifier "puVar11") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*puVar1 < *(uint *)(*piVar12 + 0x28))" (( "(") (binary_expression "*puVar1 < *(uint *)(*piVar12 + 0x28)" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (< "<") (pointer_expression "*(uint *)(*piVar12 + 0x28)" (* "*") (cast_expression "(uint *)(*piVar12 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar12 + 0x28)" (( "(") (binary_expression "*piVar12 + 0x28" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (labeled_statement "LAB_00173b74:\n  do {\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  } while (uVar14 < (uint)piVar12[10]);" (statement_identifier "LAB_00173b74") (: ":") (do_statement "do {\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  } while (uVar14 < (uint)piVar12[10]);" (do "do") (compound_statement "{\n    *(uint *)(puVar11 + -0x10) = uVar14;\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0x50);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;\n    iVar16 = (*pcVar10)();\n    if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }\n    uVar14 = uVar14 + 1;\n    iVar9 = *piVar12;\n  }" ({ "{") (expression_statement "*(uint *)(puVar11 + -0x10) = uVar14;" (assignment_expression "*(uint *)(puVar11 + -0x10) = uVar14" (pointer_expression "*(uint *)(puVar11 + -0x10)" (* "*") (cast_expression "(uint *)(puVar11 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x10)" (( "(") (binary_expression "puVar11 + -0x10" (identifier "puVar11") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" (* "*") (cast_expression "(int **)(puVar11 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "pcVar10 = *(code **)(iVar9 + 0x50);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0x50)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(iVar9 + 0x50)" (* "*") (cast_expression "(code **)(iVar9 + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x50)" (( "(") (binary_expression "iVar9 + 0x50" (identifier "iVar9") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173b7c;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173b7c" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173b7c")) (; ";")) (expression_statement "iVar16 = (*pcVar10)();" (assignment_expression "iVar16 = (*pcVar10)()" (identifier "iVar16") (= "=") (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar16 == 9) || (iVar16 == 4)) {\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }" (if "if") (parenthesized_expression "((iVar16 == 9) || (iVar16 == 4))" (( "(") (binary_expression "(iVar16 == 9) || (iVar16 == 4)" (parenthesized_expression "(iVar16 == 9)" (( "(") (binary_expression "iVar16 == 9" (identifier "iVar16") (== "==") (number_literal "9")) () ")")) (|| "||") (parenthesized_expression "(iVar16 == 4)" (( "(") (binary_expression "iVar16 == 4" (identifier "iVar16") (== "==") (number_literal "4")) () ")"))) () ")")) (compound_statement "{\n      iVar9 = *piVar12;\n      *(uint *)(puVar11 + -0x10) = uVar14;\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0x58);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;\n      iVar9 = (*pcVar10)();\n      if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }\n    }" ({ "{") (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" (identifier "iVar9") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "*(uint *)(puVar11 + -0x10) = uVar14;" (assignment_expression "*(uint *)(puVar11 + -0x10) = uVar14" (pointer_expression "*(uint *)(puVar11 + -0x10)" (* "*") (cast_expression "(uint *)(puVar11 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x10)" (( "(") (binary_expression "puVar11 + -0x10" (identifier "puVar11") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" (* "*") (cast_expression "(int **)(puVar11 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "pcVar10 = *(code **)(iVar9 + 0x58);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0x58)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(iVar9 + 0x58)" (* "*") (cast_expression "(code **)(iVar9 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x58)" (( "(") (binary_expression "iVar9 + 0x58" (identifier "iVar9") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173b91;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173b91" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173b91")) (; ";")) (expression_statement "iVar9 = (*pcVar10)();" (assignment_expression "iVar9 = (*pcVar10)()" (identifier "iVar9") (= "=") (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (*(int *)(puVar11 + 8) == iVar9) {\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }" (if "if") (parenthesized_expression "(*(int *)(puVar11 + 8) == iVar9)" (( "(") (binary_expression "*(int *)(puVar11 + 8) == iVar9" (pointer_expression "*(int *)(puVar11 + 8)" (* "*") (cast_expression "(int *)(puVar11 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 8)" (( "(") (binary_expression "puVar11 + 8" (identifier "puVar11") (+ "+") (number_literal "8")) () ")")))) (== "==") (identifier "iVar9")) () ")")) (compound_statement "{\n        iVar9 = *piVar12;\n        goto LAB_00173b9d;\n      }" ({ "{") (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" (identifier "iVar9") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (goto_statement "goto LAB_00173b9d;" (goto "goto") (statement_identifier "LAB_00173b9d") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" (identifier "iVar9") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar14 < (uint)piVar12[10])" (( "(") (binary_expression "uVar14 < (uint)piVar12[10]" (identifier "uVar14") (< "<") (cast_expression "(uint)piVar12[10]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar12[10]" (identifier "piVar12") ([ "[") (number_literal "10") (] "]")))) () ")")) (; ";"))) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00173b9d:\n  pcVar10 = *(code **)(iVar9 + 8);" (statement_identifier "LAB_00173b9d") (: ":") (expression_statement "pcVar10 = *(code **)(iVar9 + 8);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 8)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(iVar9 + 8)" (* "*") (cast_expression "(code **)(iVar9 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (expression_statement "*(code **)(puVar11 + 8) = FUN_00094510;" (assignment_expression "*(code **)(puVar11 + 8) = FUN_00094510" (pointer_expression "*(code **)(puVar11 + 8)" (* "*") (cast_expression "(code **)(puVar11 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 8)" (( "(") (binary_expression "puVar11 + 8" (identifier "puVar11") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "FUN_00094510")) (; ";")) (if_statement "if (pcVar10 == FUN_00094510) {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xe4);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173bbc;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }\n  else {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }" (if "if") (parenthesized_expression "(pcVar10 == FUN_00094510)" (( "(") (binary_expression "pcVar10 == FUN_00094510" (identifier "pcVar10") (== "==") (identifier "FUN_00094510")) () ")")) (compound_statement "{\n    *(int **)(puVar11 + -0x14) = piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xe4);\n    *(undefined4 *)(puVar11 + -0x18) = 0x173bbc;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }" ({ "{") (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" (* "*") (cast_expression "(int **)(puVar11 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "pcVar10 = *(code **)(iVar9 + 0xe4);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0xe4)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(iVar9 + 0xe4)" (* "*") (cast_expression "(code **)(iVar9 + 0xe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0xe4)" (( "(") (binary_expression "iVar9 + 0xe4" (identifier "iVar9") (+ "+") (number_literal "0xe4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173bbc;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173bbc" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173bbc")) (; ";")) (expression_statement "iVar9 = (*pcVar10)();" (assignment_expression "iVar9 = (*pcVar10)()" (identifier "iVar9") (= "=") (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar10 = *(code **)(puVar11 + 8);" (assignment_expression "pcVar10 = *(code **)(puVar11 + 8)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(puVar11 + 8)" (* "*") (cast_expression "(code **)(puVar11 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 8)" (( "(") (binary_expression "puVar11 + 8" (identifier "puVar11") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }" (else "else") (compound_statement "{\n    *(int **)(puVar11 + -0x14) = piVar12;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;\n    iVar9 = (*pcVar10)();\n    pcVar10 = *(code **)(puVar11 + 8);\n  }" ({ "{") (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" (* "*") (cast_expression "(int **)(puVar11 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173d66;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173d66" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173d66")) (; ";")) (expression_statement "iVar9 = (*pcVar10)();" (assignment_expression "iVar9 = (*pcVar10)()" (identifier "iVar9") (= "=") (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar10 = *(code **)(puVar11 + 8);" (assignment_expression "pcVar10 = *(code **)(puVar11 + 8)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(puVar11 + 8)" (* "*") (cast_expression "(code **)(puVar11 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 8)" (( "(") (binary_expression "puVar11 + 8" (identifier "puVar11") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")))) (expression_statement "iVar3 = *piVar12;" (assignment_expression "iVar3 = *piVar12" (identifier "iVar3") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (if_statement "if (iVar9 == 0x20) {\n    pcVar10 = *(code **)(iVar3 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173ce3;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b08;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_001776a0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n  }\n  else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }" (if "if") (parenthesized_expression "(iVar9 == 0x20)" (( "(") (binary_expression "iVar9 == 0x20" (identifier "iVar9") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n    pcVar10 = *(code **)(iVar3 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173ce3;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b08;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_001776a0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n  }" ({ "{") (expression_statement "pcVar10 = *(code **)(iVar3 + 0xc);" (assignment_expression "pcVar10 = *(code **)(iVar3 + 0xc)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(iVar3 + 0xc)" (* "*") (cast_expression "(code **)(iVar3 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }" (if "if") (parenthesized_expression "(pcVar10 == FUN_00094520)" (( "(") (binary_expression "pcVar10 == FUN_00094520" (identifier "pcVar10") (== "==") (identifier "FUN_00094520")) () ")")) (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX;\n    }" ({ "{") (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" (* "*") (cast_expression "(int **)(puVar11 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "pcVar10 = *(code **)(iVar3 + 0xe8);" (assignment_expression "pcVar10 = *(code **)(iVar3 + 0xe8)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(iVar3 + 0xe8)" (* "*") (cast_expression "(code **)(iVar3 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0xe8)" (( "(") (binary_expression "iVar3 + 0xe8" (identifier "iVar3") (+ "+") (number_literal "0xe8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173cce;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173cce" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173cce")) (; ";")) (expression_statement "cVar6 = (*pcVar10)();" (assignment_expression "cVar6 = (*pcVar10)()" (identifier "cVar6") (= "=") (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar8 = extraout_ECX;" (assignment_expression "uVar8 = extraout_ECX" (identifier "uVar8") (= "=") (identifier "extraout_ECX")) (; ";")) (} "}")) (else_clause "else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }" (else "else") (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_ECX_00;\n    }" ({ "{") (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" (* "*") (cast_expression "(int **)(puVar11 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173d94;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173d94" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173d94")) (; ";")) (expression_statement "cVar6 = (*pcVar10)();" (assignment_expression "cVar6 = (*pcVar10)()" (identifier "cVar6") (= "=") (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar8 = extraout_ECX_00;" (assignment_expression "uVar8 = extraout_ECX_00" (identifier "uVar8") (= "=") (identifier "extraout_ECX_00")) (; ";")) (} "}")))) (if_statement "if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }" (if "if") (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x68;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;\n      FUN_0008b620();\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar11 + -8) = uVar8;" (assignment_expression "*(undefined4 *)(puVar11 + -8) = uVar8" (pointer_expression "*(undefined4 *)(puVar11 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -8)" (( "(") (binary_expression "puVar11 + -8" (identifier "puVar11") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";" (assignment_expression "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper"" (pointer_expression "*(char **)(puVar11 + -0xc)" (* "*") (cast_expression "(char **)(puVar11 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0xc)" (( "(") (binary_expression "puVar11 + -0xc" (identifier "puVar11") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (string_literal ""make_elf_reloc_mapper"" (" """) (string_content "make_elf_reloc_mapper") (" """))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x10) = 0x68;" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = 0x68" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x10)" (( "(") (binary_expression "puVar11 + -0x10" (identifier "puVar11") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x68")) (; ";")) (expression_statement "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";" (assignment_expression "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc"" (pointer_expression "*(char **)(puVar11 + -0x14)" (* "*") (cast_expression "(char **)(puVar11 + -0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (string_literal ""../../gold/dwarf_reader.cc"" (" """) (string_content "../../gold/dwarf_reader.cc") (" """))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173db2;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173db2" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173db2")) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0x28;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0x28" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x28")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173ce3;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173ce3" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173ce3")) (; ";")) (expression_statement "puVar7 = (undefined4 *)FUN_001aa8c0();" (assignment_expression "puVar7 = (undefined4 *)FUN_001aa8c0()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)FUN_001aa8c0()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001aa8c0()" (identifier "FUN_001aa8c0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar8 = *(undefined4 *)(puVar11 + 0x28);" (assignment_expression "uVar8 = *(undefined4 *)(puVar11 + 0x28)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x28)" (( "(") (binary_expression "puVar11 + 0x28" (identifier "puVar11") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*puVar7 = &PTR_FUN_00335b08;" (assignment_expression "*puVar7 = &PTR_FUN_00335b08" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "&PTR_FUN_00335b08" (& "&") (identifier "PTR_FUN_00335b08"))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(puVar11 + 0x74);" (assignment_expression "uVar5 = *(undefined4 *)(puVar11 + 0x74)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(puVar11 + 0x74)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x74)" (( "(") (binary_expression "puVar11 + 0x74" (identifier "puVar11") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "puVar7[1] = piVar12;" (assignment_expression "puVar7[1] = piVar12" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "puVar7[2] = uVar5;" (assignment_expression "puVar7[2] = uVar5" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(puVar11 + 0x24);" (assignment_expression "uVar5 = *(undefined4 *)(puVar11 + 0x24)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(puVar11 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x24)" (( "(") (binary_expression "puVar11 + 0x24" (identifier "puVar11") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "puVar7[4] = uVar8;" (assignment_expression "puVar7[4] = uVar8" (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar7[3] = uVar5;" (assignment_expression "puVar7[3] = uVar5" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "pcVar10 = FUN_001776a0;" (assignment_expression "pcVar10 = FUN_001776a0" (identifier "pcVar10") (= "=") (identifier "FUN_001776a0")) (; ";")) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" (identifier "puVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" (identifier "puVar7") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" (identifier "puVar7") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }" (else "else") (compound_statement "{\n    pcVar4 = *(code **)(iVar3 + 8);\n    if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }\n    if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }\n    iVar9 = *piVar12;\n    pcVar10 = *(code **)(iVar9 + 0xc);\n    if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }\n    if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }\n    *(undefined4 *)(puVar11 + -0x14) = 0x28;\n    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;\n    puVar7 = (undefined4 *)FUN_001aa8c0();\n    uVar8 = *(undefined4 *)(puVar11 + 0x28);\n    *puVar7 = &PTR_FUN_00335b30;\n    uVar5 = *(undefined4 *)(puVar11 + 0x74);\n    puVar7[1] = piVar12;\n    puVar7[2] = uVar5;\n    uVar5 = *(undefined4 *)(puVar11 + 0x24);\n    puVar7[4] = uVar8;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    puVar7[3] = uVar5;\n    pcVar10 = FUN_00177610;\n  }" ({ "{") (expression_statement "pcVar4 = *(code **)(iVar3 + 8);" (assignment_expression "pcVar4 = *(code **)(iVar3 + 8)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(iVar3 + 8)" (* "*") (cast_expression "(code **)(iVar3 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (pcVar4 == pcVar10) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }" (if "if") (parenthesized_expression "(pcVar4 == pcVar10)" (( "(") (binary_expression "pcVar4 == pcVar10" (identifier "pcVar4") (== "==") (identifier "pcVar10")) () ")")) (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar3 + 0xe4);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;\n      iVar9 = (*pcVar10)();\n    }" ({ "{") (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" (* "*") (cast_expression "(int **)(puVar11 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "pcVar10 = *(code **)(iVar3 + 0xe4);" (assignment_expression "pcVar10 = *(code **)(iVar3 + 0xe4)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(iVar3 + 0xe4)" (* "*") (cast_expression "(code **)(iVar3 + 0xe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0xe4)" (( "(") (binary_expression "iVar3 + 0xe4" (identifier "iVar3") (+ "+") (number_literal "0xe4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173be4;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173be4" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173be4")) (; ";")) (expression_statement "iVar9 = (*pcVar10)();" (assignment_expression "iVar9 = (*pcVar10)()" (identifier "iVar9") (= "=") (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }" (else "else") (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;\n      iVar9 = (*pcVar4)();\n    }" ({ "{") (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" (* "*") (cast_expression "(int **)(puVar11 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173d86;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173d86" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173d86")) (; ";")) (expression_statement "iVar9 = (*pcVar4)();" (assignment_expression "iVar9 = (*pcVar4)()" (identifier "iVar9") (= "=") (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar9 != 0x40) {\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }" (if "if") (parenthesized_expression "(iVar9 != 0x40)" (( "(") (binary_expression "iVar9 != 0x40" (identifier "iVar9") (!= "!=") (number_literal "0x40")) () ")")) (compound_statement "{\n      *(int *)(puVar11 + -8) = iVar9;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x8b;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;\n      FUN_0008b620();\n    }" ({ "{") (expression_statement "*(int *)(puVar11 + -8) = iVar9;" (assignment_expression "*(int *)(puVar11 + -8) = iVar9" (pointer_expression "*(int *)(puVar11 + -8)" (* "*") (cast_expression "(int *)(puVar11 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -8)" (( "(") (binary_expression "puVar11 + -8" (identifier "puVar11") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";" (assignment_expression "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper"" (pointer_expression "*(char **)(puVar11 + -0xc)" (* "*") (cast_expression "(char **)(puVar11 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0xc)" (( "(") (binary_expression "puVar11 + -0xc" (identifier "puVar11") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (string_literal ""make_elf_reloc_mapper"" (" """) (string_content "make_elf_reloc_mapper") (" """))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x10) = 0x8b;" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = 0x8b" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x10)" (( "(") (binary_expression "puVar11 + -0x10" (identifier "puVar11") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x8b")) (; ";")) (expression_statement "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";" (assignment_expression "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc"" (pointer_expression "*(char **)(puVar11 + -0x14)" (* "*") (cast_expression "(char **)(puVar11 + -0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (string_literal ""../../gold/dwarf_reader.cc"" (" """) (string_content "../../gold/dwarf_reader.cc") (" """))) (; ";")) (expression_statement "*(undefined **)(puVar11 + -0x18) = &UNK_00173de1;" (assignment_expression "*(undefined **)(puVar11 + -0x18) = &UNK_00173de1" (pointer_expression "*(undefined **)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined **)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&UNK_00173de1" (& "&") (identifier "UNK_00173de1"))) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar9 = *piVar12;" (assignment_expression "iVar9 = *piVar12" (identifier "iVar9") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "pcVar10 = *(code **)(iVar9 + 0xc);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0xc)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(iVar9 + 0xc)" (* "*") (cast_expression "(code **)(iVar9 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar10 == FUN_00094520) {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }\n    else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }" (if "if") (parenthesized_expression "(pcVar10 == FUN_00094520)" (( "(") (binary_expression "pcVar10 == FUN_00094520" (identifier "pcVar10") (== "==") (identifier "FUN_00094520")) () ")")) (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      pcVar10 = *(code **)(iVar9 + 0xe8);\n      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX;\n    }" ({ "{") (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" (* "*") (cast_expression "(int **)(puVar11 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "pcVar10 = *(code **)(iVar9 + 0xe8);" (assignment_expression "pcVar10 = *(code **)(iVar9 + 0xe8)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(iVar9 + 0xe8)" (* "*") (cast_expression "(code **)(iVar9 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0xe8)" (( "(") (binary_expression "iVar9 + 0xe8" (identifier "iVar9") (+ "+") (number_literal "0xe8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173c0e;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173c0e" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173c0e")) (; ";")) (expression_statement "cVar6 = (*pcVar10)();" (assignment_expression "cVar6 = (*pcVar10)()" (identifier "cVar6") (= "=") (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar8 = extraout_EDX;" (assignment_expression "uVar8 = extraout_EDX" (identifier "uVar8") (= "=") (identifier "extraout_EDX")) (; ";")) (} "}")) (else_clause "else {\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }" (else "else") (compound_statement "{\n      *(int **)(puVar11 + -0x14) = piVar12;\n      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;\n      cVar6 = (*pcVar10)();\n      uVar8 = extraout_EDX_00;\n    }" ({ "{") (expression_statement "*(int **)(puVar11 + -0x14) = piVar12;" (assignment_expression "*(int **)(puVar11 + -0x14) = piVar12" (pointer_expression "*(int **)(puVar11 + -0x14)" (* "*") (cast_expression "(int **)(puVar11 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173d78;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173d78" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173d78")) (; ";")) (expression_statement "cVar6 = (*pcVar10)();" (assignment_expression "cVar6 = (*pcVar10)()" (identifier "cVar6") (= "=") (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar8 = extraout_EDX_00;" (assignment_expression "uVar8 = extraout_EDX_00" (identifier "uVar8") (= "=") (identifier "extraout_EDX_00")) (; ";")) (} "}")))) (if_statement "if (cVar6 != '\0') {\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }" (if "if") (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      *(undefined4 *)(puVar11 + -8) = uVar8;\n      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";\n      *(undefined4 *)(puVar11 + -0x10) = 0x7d;\n      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";\n                    \n      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;\n      FUN_0008b620();\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar11 + -8) = uVar8;" (assignment_expression "*(undefined4 *)(puVar11 + -8) = uVar8" (pointer_expression "*(undefined4 *)(puVar11 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -8)" (( "(") (binary_expression "puVar11 + -8" (identifier "puVar11") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";" (assignment_expression "*(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper"" (pointer_expression "*(char **)(puVar11 + -0xc)" (* "*") (cast_expression "(char **)(puVar11 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0xc)" (( "(") (binary_expression "puVar11 + -0xc" (identifier "puVar11") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (string_literal ""make_elf_reloc_mapper"" (" """) (string_content "make_elf_reloc_mapper") (" """))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x10) = 0x7d;" (assignment_expression "*(undefined4 *)(puVar11 + -0x10) = 0x7d" (pointer_expression "*(undefined4 *)(puVar11 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x10)" (( "(") (binary_expression "puVar11 + -0x10" (identifier "puVar11") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x7d")) (; ";")) (expression_statement "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";" (assignment_expression "*(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc"" (pointer_expression "*(char **)(puVar11 + -0x14)" (* "*") (cast_expression "(char **)(puVar11 + -0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (string_literal ""../../gold/dwarf_reader.cc"" (" """) (string_content "../../gold/dwarf_reader.cc") (" """))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173dc8;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173dc8" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173dc8")) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0x28;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0x28" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x28")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173c23;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173c23" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173c23")) (; ";")) (expression_statement "puVar7 = (undefined4 *)FUN_001aa8c0();" (assignment_expression "puVar7 = (undefined4 *)FUN_001aa8c0()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)FUN_001aa8c0()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001aa8c0()" (identifier "FUN_001aa8c0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar8 = *(undefined4 *)(puVar11 + 0x28);" (assignment_expression "uVar8 = *(undefined4 *)(puVar11 + 0x28)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(puVar11 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x28)" (( "(") (binary_expression "puVar11 + 0x28" (identifier "puVar11") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*puVar7 = &PTR_FUN_00335b30;" (assignment_expression "*puVar7 = &PTR_FUN_00335b30" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "&PTR_FUN_00335b30" (& "&") (identifier "PTR_FUN_00335b30"))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(puVar11 + 0x74);" (assignment_expression "uVar5 = *(undefined4 *)(puVar11 + 0x74)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(puVar11 + 0x74)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x74)" (( "(") (binary_expression "puVar11 + 0x74" (identifier "puVar11") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "puVar7[1] = piVar12;" (assignment_expression "puVar7[1] = piVar12" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "puVar7[2] = uVar5;" (assignment_expression "puVar7[2] = uVar5" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(puVar11 + 0x24);" (assignment_expression "uVar5 = *(undefined4 *)(puVar11 + 0x24)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(puVar11 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x24)" (( "(") (binary_expression "puVar11 + 0x24" (identifier "puVar11") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "puVar7[4] = uVar8;" (assignment_expression "puVar7[4] = uVar8" (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" (identifier "puVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" (identifier "puVar7") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" (identifier "puVar7") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[3] = uVar5;" (assignment_expression "puVar7[3] = uVar5" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "pcVar10 = FUN_00177610;" (assignment_expression "pcVar10 = FUN_00177610" (identifier "pcVar10") (= "=") (identifier "FUN_00177610")) (; ";")) (} "}")))) (expression_statement "*(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30) = puVar7;" (assignment_expression "*(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30) = puVar7" (pointer_expression "*(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30)" (* "*") (cast_expression "(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x6c) + 0x30)" (( "(") (binary_expression "*(int *)(puVar11 + 0x6c) + 0x30" (pointer_expression "*(int *)(puVar11 + 0x6c)" (* "*") (cast_expression "(int *)(puVar11 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x6c)" (( "(") (binary_expression "puVar11 + 0x6c" (identifier "puVar11") (+ "+") (number_literal "0x6c")) () ")")))) (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "*(int *)(puVar11 + -0xc) = iVar16;" (assignment_expression "*(int *)(puVar11 + -0xc) = iVar16" (pointer_expression "*(int *)(puVar11 + -0xc)" (* "*") (cast_expression "(int *)(puVar11 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0xc)" (( "(") (binary_expression "puVar11 + -0xc" (identifier "puVar11") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "iVar16")) (; ";")) (expression_statement "*(uint *)(puVar11 + -0x10) = uVar14;" (assignment_expression "*(uint *)(puVar11 + -0x10) = uVar14" (pointer_expression "*(uint *)(puVar11 + -0x10)" (* "*") (cast_expression "(uint *)(puVar11 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x10)" (( "(") (binary_expression "puVar11 + -0x10" (identifier "puVar11") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "*(undefined4 **)(puVar11 + -0x14) = puVar7;" (assignment_expression "*(undefined4 **)(puVar11 + -0x14) = puVar7" (pointer_expression "*(undefined4 **)(puVar11 + -0x14)" (* "*") (cast_expression "(undefined4 **)(puVar11 + -0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x18) = 0x173c81;" (assignment_expression "*(undefined4 *)(puVar11 + -0x18) = 0x173c81" (pointer_expression "*(undefined4 *)(puVar11 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x173c81")) (; ";")) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(int *)(*(int *)(puVar11 + 0x6c) + 0x34) = iVar16;" (assignment_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 0x34) = iVar16" (pointer_expression "*(int *)(*(int *)(puVar11 + 0x6c) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(puVar11 + 0x6c) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0x6c) + 0x34)" (( "(") (binary_expression "*(int *)(puVar11 + 0x6c) + 0x34" (pointer_expression "*(int *)(puVar11 + 0x6c)" (* "*") (cast_expression "(int *)(puVar11 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x6c)" (( "(") (binary_expression "puVar11 + 0x6c" (identifier "puVar11") (+ "+") (number_literal "0x6c")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "iVar16")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: bool read_section(Dwarf_pubnames_table * this, Relobj * object, uchar *
   symtab, off_t symtab_size) */

bool __thiscall
gold::type_1::function_1
          (type_1 *this,type_2 *object,type_3 *symtab,type_4 symtab_size)

{
  type_5 *puVar1;
  type_6 *var_6;
  int var_16;
  type_7 *var_22;
  type_8 uVar5;
  char *var_1;
  char var_12;
  type_3 *var_10;
  type_8 *puVar9;
  int var_3;
  type_7 *var_11;
  type_8 extraout_ECX;
  type_8 uVar12;
  type_8 extraout_ECX_00;
  type_8 extraout_EDX;
  type_8 extraout_EDX_00;
  type_9 *var_2;
  int *piVar14;
  type_6 *var_4;
  type_5 var_13;
  type_6 *var_5;
  int var_15;
  type_9 uVar19;
  bool var_14;
  type_9 uVar21;
  bool bVar22;
  type_6 bVar23;
  type_5 auStack_94 [10];
  type_9 auStack_6c [8];
  type_5 local_64 [2];
  type_10 *local_5c [6];
  type_4 local_44;
  int local_38;
  type_10 buffer_size;
  type_9 local_2c [24];
  type_8 uStack_14;
  
  bVar23 = 0;
  uStack_14 = 0x173989;
  local_44._0_4_ = (type_8)symtab_size;
  if (this->is_pubtypes_ == false) {
    var_1 = "gnu_pubnames";
    local_5c[4] = (type_10 *)0x25568b;
  }
  else {
    var_1 = "gnu_pubtypes";
    local_5c[4] = (type_10 *)0x255698;
  }
  local_5c[3] = (type_10 *)(var_1 + 4);
  if (1 < (object->super_Object).shnum_) {
    local_64[1] = 1;
    local_5c[0] = &buffer_size;
    local_5c[1] = (type_10 *)0x255d66;
    local_5c[2] = (type_10 *)local_2c;
    local_5c[5] = (type_10 *)0x255d6e;
    var_2 = auStack_6c;
    do {
      uVar19 = var_2 < (type_9 *)0x4;
      uVar21 = var_2 == (type_9 *)0x4;
      var_3 = **(int **)(var_2 + 0x74);
      *(type_8 *)(var_2 + -8) = *(type_8 *)(var_2 + 0xc);
      *(type_8 *)(var_2 + -0xc) = *(type_8 *)(var_2 + 0x74);
      *(type_8 *)(var_2 + -0x10) = *(type_8 *)(var_2 + 0x10);
      var_11 = *(type_7 **)(var_3 + 0x40);
      *(type_8 *)(var_2 + -0x14) = 0x173a20;
      local_44 = symtab_size;
      (*var_11)();
      var_3 = 7;
      var_6 = *(type_6 **)(var_2 + 0x34);
      var_4 = *(type_6 **)(var_2 + 0x10);
      var_5 = var_6;
      do {
        if (var_3 == 0) break;
        var_3 = var_3 + -1;
        uVar19 = *var_4 < *var_5;
        uVar21 = *var_4 == *var_5;
        var_4 = var_4 + (type_5)bVar23 * -2 + 1;
        var_5 = var_5 + (type_5)bVar23 * -2 + 1;
      } while ((bool)uVar21);
      var_4 = var_6 + 7;
      var_14 = false;
      bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;
      if (bVar22) {
LAB_00173a59:
        *(type_8 *)(var_2 + -0x10) = *(type_8 *)(var_2 + 0x18);
        *(type_6 **)(var_2 + -0x14) = var_4;
        *(type_8 *)(var_2 + -0x18) = 0x173a66;
        var_3 = var_7(*(char **)(var_2 + -0x14),*(char **)(var_2 + -0x10));
        if (var_3 == 0) {
          piVar14 = *(int **)(var_2 + 0x70);
        }
        else {
          *(type_8 *)(var_2 + -0x10) = *(type_8 *)(var_2 + 0x1c);
          *(type_6 **)(var_2 + -0x14) = var_4;
          *(type_8 *)(var_2 + -0x18) = 0x173a7a;
          var_3 = var_7(*(char **)(var_2 + -0x14),*(char **)(var_2 + -0x10));
          if (var_3 != 0) goto LAB_00173a85;
          piVar14 = *(int **)(var_2 + 0x70);
          *(type_9 *)(*(int *)(var_2 + 0x6c) + 0x1d) = 1;
        }
        if (var_6 != *(type_6 **)(var_2 + 0x14)) {
          *(type_6 **)(var_2 + -0x14) = var_6;
          *(type_8 *)(var_2 + -0x18) = 0x173af5;
          var_8(*(void **)(var_2 + -0x14));
        }
        if (*(int *)(var_2 + 8) == 0) {
          return false;
        }
        *(type_8 *)(var_2 + -0x14) = 0;
        *(int *)(var_2 + -0x18) = *(int *)(var_2 + 0x6c) + 0xc;
        *(type_8 *)(var_2 + -0x1c) = *(type_8 *)(var_2 + 0xc);
        *(int *)(var_2 + -0x20) = *(int *)(var_2 + 8);
        *(int **)(var_2 + -0x24) = piVar14;
        *(type_8 *)(var_2 + -0x28) = 0x173b1b;
        var_10 = type_11::var_9
                           (*(type_11 **)(var_2 + -0x24),*(type_5 *)(var_2 + -0x20),
                            *(type_10 **)(var_2 + -0x1c),*(bool **)(var_2 + -0x18),
                            *(uint64_t **)(var_2 + -0x14));
        *(type_3 **)(*(int *)(var_2 + 0x6c) + 4) = var_10;
        if (var_10 == (type_3 *)0x0) {
          return false;
        }
        *(type_3 **)(*(int *)(var_2 + 0x6c) + 8) = var_10 + *(int *)(var_2 + 0x34);
        var_3 = *piVar14;
        var_11 = *(type_7 **)(var_3 + 0x18);
        if (var_11 != type_11::do_is_incremental) {
          *(int **)(var_2 + -0x14) = piVar14;
          *(type_8 *)(var_2 + -0x18) = 0x173d4d;
          var_12 = (*var_11)();
          if (var_12 != '\0') {
            return (bool)var_12;
          }
          var_3 = *piVar14;
        }
        var_13 = piVar14[10];
        var_15 = 0;
        if (var_13 == 0) goto LAB_00173b9d;
        var_13 = 0;
        goto LAB_00173b74;
      }
      var_3 = 8;
      var_4 = *(type_6 **)(var_2 + 0x20);
      var_5 = var_6;
      do {
        if (var_3 == 0) break;
        var_3 = var_3 + -1;
        var_14 = *var_4 < *var_5;
        bVar22 = *var_4 == *var_5;
        var_4 = var_4 + (type_5)bVar23 * -2 + 1;
        var_5 = var_5 + (type_5)bVar23 * -2 + 1;
      } while (bVar22);
      var_4 = var_6 + 8;
      if ((!var_14 && !bVar22) == var_14) goto LAB_00173a59;
LAB_00173a85:
      symtab_size = local_44;
      if (var_6 != *(type_6 **)(var_2 + 0x14)) {
        *(type_6 **)(var_2 + -0x14) = var_6;
        *(type_8 *)(var_2 + -0x18) = 0x173a94;
        var_8(*(void **)(var_2 + -0x14));
        symtab_size = local_44;
      }
      piVar14 = (int *)(var_2 + 0x70);
      *(int *)(var_2 + 8) = *(int *)(var_2 + 8) + 1;
      puVar1 = (type_5 *)(var_2 + 8);
      var_2 = var_2 + -4;
    } while (*puVar1 < *(type_5 *)(*piVar14 + 0x28));
  }
  return false;
LAB_00173b74:
  do {
    *(type_5 *)(var_2 + -0x10) = var_13;
    *(int **)(var_2 + -0x14) = piVar14;
    var_11 = *(type_7 **)(var_3 + 0x50);
    *(type_8 *)(var_2 + -0x18) = 0x173b7c;
    var_15 = (*var_11)();
    if ((var_15 == 9) || (var_15 == 4)) {
      var_3 = *piVar14;
      *(type_5 *)(var_2 + -0x10) = var_13;
      *(int **)(var_2 + -0x14) = piVar14;
      var_11 = *(type_7 **)(var_3 + 0x58);
      *(type_8 *)(var_2 + -0x18) = 0x173b91;
      var_3 = (*var_11)();
      if (*(int *)(var_2 + 8) == var_3) {
        var_3 = *piVar14;
        goto LAB_00173b9d;
      }
    }
    var_13 = var_13 + 1;
    var_3 = *piVar14;
  } while (var_13 < (type_5)piVar14[10]);
  var_13 = 0;
LAB_00173b9d:
  var_11 = *(type_7 **)(var_3 + 8);
  *(type_7 **)(var_2 + 8) = type_2::elfsize;
  if (var_11 == type_2::elfsize) {
    *(int **)(var_2 + -0x14) = piVar14;
    var_11 = *(type_7 **)(var_3 + 0xe4);
    *(type_8 *)(var_2 + -0x18) = 0x173bbc;
    var_3 = (*var_11)();
    var_11 = *(type_7 **)(var_2 + 8);
  }
  else {
    *(int **)(var_2 + -0x14) = piVar14;
    *(type_8 *)(var_2 + -0x18) = 0x173d66;
    var_3 = (*var_11)();
    var_11 = *(type_7 **)(var_2 + 8);
  }
  var_16 = *piVar14;
  if (var_3 == 0x20) {
    var_11 = *(type_7 **)(var_16 + 0xc);
    if (var_11 == type_2::is_big_endian) {
      *(int **)(var_2 + -0x14) = piVar14;
      var_11 = *(type_7 **)(var_16 + 0xe8);
      *(type_8 *)(var_2 + -0x18) = 0x173cce;
      var_12 = (*var_11)();
      uVar12 = extraout_ECX;
    }
    else {
      *(int **)(var_2 + -0x14) = piVar14;
      *(type_8 *)(var_2 + -0x18) = 0x173d94;
      var_12 = (*var_11)();
      uVar12 = extraout_ECX_00;
    }
    if (var_12 != '\0') {
      *(type_8 *)(var_2 + -8) = uVar12;
      *(char **)(var_2 + -0xc) = "make_elf_reloc_mapper";
      *(type_8 *)(var_2 + -0x10) = 0x68;
      *(char **)(var_2 + -0x14) = "../../gold/dwarf_reader.cc";
                    /* WARNING: Subroutine does not return */
      *(type_8 *)(var_2 + -0x18) = 0x173db2;
      var_17(*(char **)(var_2 + -0x14),*(int *)(var_2 + -0x10),
                          *(char **)(var_2 + -0xc));
    }
    *(type_8 *)(var_2 + -0x14) = 0x28;
    *(type_8 *)(var_2 + -0x18) = 0x173ce3;
    puVar9 = (type_8 *)var_18(*(type_5 *)(var_2 + -0x14));
    uVar12 = *(type_8 *)(var_2 + 0x28);
    *puVar9 = &PTR__Sized_elf_reloc_mapper_00335b08;
    uVar5 = *(type_8 *)(var_2 + 0x74);
    puVar9[1] = piVar14;
    puVar9[2] = uVar5;
    uVar5 = *(type_8 *)(var_2 + 0x24);
    puVar9[4] = uVar12;
    puVar9[3] = uVar5;
    var_11 = var_19<32,var_20>::var_21;
    puVar9[5] = 0;
    puVar9[6] = 0;
    puVar9[7] = 0;
    puVar9[8] = 0;
    puVar9[9] = 0;
  }
  else {
    var_22 = *(type_7 **)(var_16 + 8);
    if (var_22 == var_11) {
      *(int **)(var_2 + -0x14) = piVar14;
      var_11 = *(type_7 **)(var_16 + 0xe4);
      *(type_8 *)(var_2 + -0x18) = 0x173be4;
      var_3 = (*var_11)();
    }
    else {
      *(int **)(var_2 + -0x14) = piVar14;
      *(type_8 *)(var_2 + -0x18) = 0x173d86;
      var_3 = (*var_22)();
    }
    if (var_3 != 0x40) {
      *(int *)(var_2 + -8) = var_3;
      *(char **)(var_2 + -0xc) = "make_elf_reloc_mapper";
      *(type_8 *)(var_2 + -0x10) = 0x8b;
      *(char **)(var_2 + -0x14) = "../../gold/dwarf_reader.cc";
                    /* WARNING: Subroutine does not return */
      *(type_12 **)(var_2 + -0x18) = &UNK_00173de1;
      var_17(*(char **)(var_2 + -0x14),*(int *)(var_2 + -0x10),
                          *(char **)(var_2 + -0xc));
    }
    var_3 = *piVar14;
    var_11 = *(type_7 **)(var_3 + 0xc);
    if (var_11 == type_2::is_big_endian) {
      *(int **)(var_2 + -0x14) = piVar14;
      var_11 = *(type_7 **)(var_3 + 0xe8);
      *(type_8 *)(var_2 + -0x18) = 0x173c0e;
      var_12 = (*var_11)();
      uVar12 = extraout_EDX;
    }
    else {
      *(int **)(var_2 + -0x14) = piVar14;
      *(type_8 *)(var_2 + -0x18) = 0x173d78;
      var_12 = (*var_11)();
      uVar12 = extraout_EDX_00;
    }
    if (var_12 != '\0') {
      *(type_8 *)(var_2 + -8) = uVar12;
      *(char **)(var_2 + -0xc) = "make_elf_reloc_mapper";
      *(type_8 *)(var_2 + -0x10) = 0x7d;
      *(char **)(var_2 + -0x14) = "../../gold/dwarf_reader.cc";
                    /* WARNING: Subroutine does not return */
      *(type_8 *)(var_2 + -0x18) = 0x173dc8;
      var_17(*(char **)(var_2 + -0x14),*(int *)(var_2 + -0x10),
                          *(char **)(var_2 + -0xc));
    }
    *(type_8 *)(var_2 + -0x14) = 0x28;
    *(type_8 *)(var_2 + -0x18) = 0x173c23;
    puVar9 = (type_8 *)var_18(*(type_5 *)(var_2 + -0x14));
    uVar12 = *(type_8 *)(var_2 + 0x28);
    *puVar9 = &PTR__Sized_elf_reloc_mapper_00335b30;
    uVar5 = *(type_8 *)(var_2 + 0x74);
    puVar9[1] = piVar14;
    puVar9[2] = uVar5;
    uVar5 = *(type_8 *)(var_2 + 0x24);
    puVar9[4] = uVar12;
    puVar9[5] = 0;
    puVar9[6] = 0;
    puVar9[7] = 0;
    puVar9[8] = 0;
    puVar9[9] = 0;
    puVar9[3] = uVar5;
    var_11 = var_19<64,var_20>::var_21;
  }
  *(type_8 **)(*(int *)(var_2 + 0x6c) + 0x30) = puVar9;
  *(int *)(var_2 + -0xc) = var_15;
  *(type_5 *)(var_2 + -0x10) = var_13;
  *(type_8 **)(var_2 + -0x14) = puVar9;
  *(type_8 *)(var_2 + -0x18) = 0x173c81;
  (*var_11)();
  *(int *)(*(int *)(var_2 + 0x6c) + 0x34) = var_15;
  return true;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4
MASKED(int param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5)

{
  uint *puVar1;
  byte *pbVar2;
  int iVar3;
  code *pcVar4;
  undefined4 uVar5;
  char cVar6;
  undefined4 *puVar7;
  undefined4 uVar8;
  int iVar9;
  code *pcVar10;
  undefined4 extraout_ECX;
  undefined4 extraout_ECX_00;
  undefined4 extraout_EDX;
  undefined4 extraout_EDX_00;
  undefined1 *puVar11;
  int *piVar12;
  byte *pbVar13;
  uint uVar14;
  byte *pbVar15;
  int iVar16;
  undefined1 uVar17;
  bool bVar18;
  undefined1 uVar19;
  bool bVar20;
  byte bVar21;
  int aiStack_94 [10];
  undefined1 auStack_6c [8];
  uint local_64 [2];
  char *local_5c [9];
  int local_38;
  undefined1 local_34 [8];
  undefined1 local_2c [24];
  undefined4 uStack_14;
  
  bVar21 = 0;
  uStack_14 = 0x173989;
  local_5c[6] = (char *)param_4;
  local_5c[7] = (char *)param_5;
  if (*(char *)(param_1 + 0x1c) == '\0') {
    local_5c[3] = "gnu_pubnames";
    local_5c[4] = "gnu_pubnames";
  }
  else {
    local_5c[3] = "gnu_pubtypes";
    local_5c[4] = "gnu_pubtypes";
  }
  local_5c[3] = local_5c[3] + 4;
  if (1 < *(uint *)(param_2 + 0x28)) {
    local_64[1] = 1;
    local_5c[0] = local_34;
    local_5c[1] = ".debug_";
    local_5c[2] = local_2c;
    local_5c[5] = ".zdebug_";
    puVar11 = auStack_6c;
    do {
      uVar17 = puVar11 < (undefined1 *)0x4;
      uVar19 = puVar11 == (undefined1 *)0x4;
      iVar9 = **(int **)(puVar11 + 0x74);
      *(undefined4 *)(puVar11 + -8) = *(undefined4 *)(puVar11 + 0xc);
      *(undefined4 *)(puVar11 + -0xc) = *(undefined4 *)(puVar11 + 0x74);
      *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x10);
      pcVar10 = *(code **)(iVar9 + 0x40);
      *(undefined4 *)(puVar11 + -0x14) = 0x173a20;
      (*pcVar10)();
      iVar9 = 7;
      pbVar2 = *(byte **)(puVar11 + 0x34);
      pbVar13 = *(byte **)(puVar11 + 0x10);
      pbVar15 = pbVar2;
      do {
        if (iVar9 == 0) break;
        iVar9 = iVar9 + -1;
        uVar17 = *pbVar13 < *pbVar15;
        uVar19 = *pbVar13 == *pbVar15;
        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;
        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;
      } while ((bool)uVar19);
      pbVar13 = pbVar2 + 7;
      bVar18 = false;
      bVar20 = (!(bool)uVar17 && !(bool)uVar19) == (bool)uVar17;
      if (bVar20) {
LAB_00173a59:
        *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x18);
        *(byte **)(puVar11 + -0x14) = pbVar13;
        *(undefined4 *)(puVar11 + -0x18) = 0x173a66;
        iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));
        if (iVar9 == 0) {
          piVar12 = *(int **)(puVar11 + 0x70);
        }
        else {
          *(undefined4 *)(puVar11 + -0x10) = *(undefined4 *)(puVar11 + 0x1c);
          *(byte **)(puVar11 + -0x14) = pbVar13;
          *(undefined4 *)(puVar11 + -0x18) = 0x173a7a;
          iVar9 = strcmp(*(char **)(puVar11 + -0x14),*(char **)(puVar11 + -0x10));
          if (iVar9 != 0) goto LAB_00173a85;
          piVar12 = *(int **)(puVar11 + 0x70);
          *(undefined1 *)(*(int *)(puVar11 + 0x6c) + 0x1d) = 1;
        }
        if (pbVar2 != *(byte **)(puVar11 + 0x14)) {
          *(byte **)(puVar11 + -0x14) = pbVar2;
          *(undefined4 *)(puVar11 + -0x18) = 0x173af5;
          FUN_001ac470();
        }
        if (*(int *)(puVar11 + 8) == 0) {
          return 0;
        }
        *(undefined4 *)(puVar11 + -0x14) = 0;
        *(int *)(puVar11 + -0x18) = *(int *)(puVar11 + 0x6c) + 0xc;
        *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(puVar11 + 0xc);
        *(int *)(puVar11 + -0x20) = *(int *)(puVar11 + 8);
        *(int **)(puVar11 + -0x24) = piVar12;
        *(undefined4 *)(puVar11 + -0x28) = 0x173b1b;
        iVar9 = FUN_000bf200();
        *(int *)(*(int *)(puVar11 + 0x6c) + 4) = iVar9;
        if (iVar9 == 0) {
          return 0;
        }
        *(int *)(*(int *)(puVar11 + 0x6c) + 8) = iVar9 + *(int *)(puVar11 + 0x34);
        iVar9 = *piVar12;
        pcVar10 = *(code **)(iVar9 + 0x18);
        if (pcVar10 != FUN_000944b0) {
          *(int **)(puVar11 + -0x14) = piVar12;
          *(undefined4 *)(puVar11 + -0x18) = 0x173d4d;
          uVar8 = (*pcVar10)();
          if ((char)uVar8 != '\0') {
            return uVar8;
          }
          iVar9 = *piVar12;
        }
        uVar14 = piVar12[10];
        iVar16 = 0;
        if (uVar14 == 0) goto LAB_00173b9d;
        uVar14 = 0;
        goto LAB_00173b74;
      }
      iVar9 = 8;
      pbVar13 = *(byte **)(puVar11 + 0x20);
      pbVar15 = pbVar2;
      do {
        if (iVar9 == 0) break;
        iVar9 = iVar9 + -1;
        bVar18 = *pbVar13 < *pbVar15;
        bVar20 = *pbVar13 == *pbVar15;
        pbVar13 = pbVar13 + (uint)bVar21 * -2 + 1;
        pbVar15 = pbVar15 + (uint)bVar21 * -2 + 1;
      } while (bVar20);
      pbVar13 = pbVar2 + 8;
      if ((!bVar18 && !bVar20) == bVar18) goto LAB_00173a59;
LAB_00173a85:
      if (pbVar2 != *(byte **)(puVar11 + 0x14)) {
        *(byte **)(puVar11 + -0x14) = pbVar2;
        *(undefined4 *)(puVar11 + -0x18) = 0x173a94;
        FUN_001ac470();
      }
      piVar12 = (int *)(puVar11 + 0x70);
      *(int *)(puVar11 + 8) = *(int *)(puVar11 + 8) + 1;
      puVar1 = (uint *)(puVar11 + 8);
      puVar11 = puVar11 + -4;
    } while (*puVar1 < *(uint *)(*piVar12 + 0x28));
  }
  return 0;
LAB_00173b74:
  do {
    *(uint *)(puVar11 + -0x10) = uVar14;
    *(int **)(puVar11 + -0x14) = piVar12;
    pcVar10 = *(code **)(iVar9 + 0x50);
    *(undefined4 *)(puVar11 + -0x18) = 0x173b7c;
    iVar16 = (*pcVar10)();
    if ((iVar16 == 9) || (iVar16 == 4)) {
      iVar9 = *piVar12;
      *(uint *)(puVar11 + -0x10) = uVar14;
      *(int **)(puVar11 + -0x14) = piVar12;
      pcVar10 = *(code **)(iVar9 + 0x58);
      *(undefined4 *)(puVar11 + -0x18) = 0x173b91;
      iVar9 = (*pcVar10)();
      if (*(int *)(puVar11 + 8) == iVar9) {
        iVar9 = *piVar12;
        goto LAB_00173b9d;
      }
    }
    uVar14 = uVar14 + 1;
    iVar9 = *piVar12;
  } while (uVar14 < (uint)piVar12[10]);
  uVar14 = 0;
LAB_00173b9d:
  pcVar10 = *(code **)(iVar9 + 8);
  *(code **)(puVar11 + 8) = FUN_00094510;
  if (pcVar10 == FUN_00094510) {
    *(int **)(puVar11 + -0x14) = piVar12;
    pcVar10 = *(code **)(iVar9 + 0xe4);
    *(undefined4 *)(puVar11 + -0x18) = 0x173bbc;
    iVar9 = (*pcVar10)();
    pcVar10 = *(code **)(puVar11 + 8);
  }
  else {
    *(int **)(puVar11 + -0x14) = piVar12;
    *(undefined4 *)(puVar11 + -0x18) = 0x173d66;
    iVar9 = (*pcVar10)();
    pcVar10 = *(code **)(puVar11 + 8);
  }
  iVar3 = *piVar12;
  if (iVar9 == 0x20) {
    pcVar10 = *(code **)(iVar3 + 0xc);
    if (pcVar10 == FUN_00094520) {
      *(int **)(puVar11 + -0x14) = piVar12;
      pcVar10 = *(code **)(iVar3 + 0xe8);
      *(undefined4 *)(puVar11 + -0x18) = 0x173cce;
      cVar6 = (*pcVar10)();
      uVar8 = extraout_ECX;
    }
    else {
      *(int **)(puVar11 + -0x14) = piVar12;
      *(undefined4 *)(puVar11 + -0x18) = 0x173d94;
      cVar6 = (*pcVar10)();
      uVar8 = extraout_ECX_00;
    }
    if (cVar6 != '\0') {
      *(undefined4 *)(puVar11 + -8) = uVar8;
      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";
      *(undefined4 *)(puVar11 + -0x10) = 0x68;
      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";
                    /* WARNING: Subroutine does not return */
      *(undefined4 *)(puVar11 + -0x18) = 0x173db2;
      FUN_0008b620();
    }
    *(undefined4 *)(puVar11 + -0x14) = 0x28;
    *(undefined4 *)(puVar11 + -0x18) = 0x173ce3;
    puVar7 = (undefined4 *)FUN_001aa8c0();
    uVar8 = *(undefined4 *)(puVar11 + 0x28);
    *puVar7 = &PTR_FUN_00335b08;
    uVar5 = *(undefined4 *)(puVar11 + 0x74);
    puVar7[1] = piVar12;
    puVar7[2] = uVar5;
    uVar5 = *(undefined4 *)(puVar11 + 0x24);
    puVar7[4] = uVar8;
    puVar7[3] = uVar5;
    pcVar10 = FUN_001776a0;
    puVar7[5] = 0;
    puVar7[6] = 0;
    puVar7[7] = 0;
    puVar7[8] = 0;
    puVar7[9] = 0;
  }
  else {
    pcVar4 = *(code **)(iVar3 + 8);
    if (pcVar4 == pcVar10) {
      *(int **)(puVar11 + -0x14) = piVar12;
      pcVar10 = *(code **)(iVar3 + 0xe4);
      *(undefined4 *)(puVar11 + -0x18) = 0x173be4;
      iVar9 = (*pcVar10)();
    }
    else {
      *(int **)(puVar11 + -0x14) = piVar12;
      *(undefined4 *)(puVar11 + -0x18) = 0x173d86;
      iVar9 = (*pcVar4)();
    }
    if (iVar9 != 0x40) {
      *(int *)(puVar11 + -8) = iVar9;
      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";
      *(undefined4 *)(puVar11 + -0x10) = 0x8b;
      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";
                    /* WARNING: Subroutine does not return */
      *(undefined **)(puVar11 + -0x18) = &UNK_00173de1;
      FUN_0008b620();
    }
    iVar9 = *piVar12;
    pcVar10 = *(code **)(iVar9 + 0xc);
    if (pcVar10 == FUN_00094520) {
      *(int **)(puVar11 + -0x14) = piVar12;
      pcVar10 = *(code **)(iVar9 + 0xe8);
      *(undefined4 *)(puVar11 + -0x18) = 0x173c0e;
      cVar6 = (*pcVar10)();
      uVar8 = extraout_EDX;
    }
    else {
      *(int **)(puVar11 + -0x14) = piVar12;
      *(undefined4 *)(puVar11 + -0x18) = 0x173d78;
      cVar6 = (*pcVar10)();
      uVar8 = extraout_EDX_00;
    }
    if (cVar6 != '\0') {
      *(undefined4 *)(puVar11 + -8) = uVar8;
      *(char **)(puVar11 + -0xc) = "make_elf_reloc_mapper";
      *(undefined4 *)(puVar11 + -0x10) = 0x7d;
      *(char **)(puVar11 + -0x14) = "../../gold/dwarf_reader.cc";
                    /* WARNING: Subroutine does not return */
      *(undefined4 *)(puVar11 + -0x18) = 0x173dc8;
      FUN_0008b620();
    }
    *(undefined4 *)(puVar11 + -0x14) = 0x28;
    *(undefined4 *)(puVar11 + -0x18) = 0x173c23;
    puVar7 = (undefined4 *)FUN_001aa8c0();
    uVar8 = *(undefined4 *)(puVar11 + 0x28);
    *puVar7 = &PTR_FUN_00335b30;
    uVar5 = *(undefined4 *)(puVar11 + 0x74);
    puVar7[1] = piVar12;
    puVar7[2] = uVar5;
    uVar5 = *(undefined4 *)(puVar11 + 0x24);
    puVar7[4] = uVar8;
    puVar7[5] = 0;
    puVar7[6] = 0;
    puVar7[7] = 0;
    puVar7[8] = 0;
    puVar7[9] = 0;
    puVar7[3] = uVar5;
    pcVar10 = FUN_00177610;
  }
  *(undefined4 **)(*(int *)(puVar11 + 0x6c) + 0x30) = puVar7;
  *(int *)(puVar11 + -0xc) = iVar16;
  *(uint *)(puVar11 + -0x10) = uVar14;
  *(undefined4 **)(puVar11 + -0x14) = puVar7;
  *(undefined4 *)(puVar11 + -0x18) = 0x173c81;
  (*pcVar10)();
  *(int *)(*(int *)(puVar11 + 0x6c) + 0x34) = iVar16;
  return 1;
}

