
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Heritage AFTER dead removal. Example location: r0x00091c50 : 0x0002d690 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Restarted to delay deadcode elimination for space: ram */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void ldwrite(void)

{
  byte bVar1;
  bfd_section *pbVar2;
  bfd_section *pbVar3;
  flagword fVar4;
  bfd_vma bVar5;
  bfd_target *pbVar6;
  bfd_section *pbVar7;
  code *pcVar8;
  undefined *puVar9;
  bfd *pbVar10;
  uint uVar11;
  size_t sVar12;
  char *pcVar13;
  sec_ptr pbVar14;
  bfd_section *pbVar15;
  bfd_boolean bVar16;
  int iVar17;
  uint uVar18;
  sec_ptr pbVar19;
  byte *pbVar20;
  byte *pbVar21;
  byte *pbVar22;
  bool bVar23;
  bool bVar24;
  bool bVar25;
  byte bVar26;
  int *in_stack_ffffff7c;
  uint local_70;
  uint local_6c;
  bfd_size_type local_68;
  bfd_size_type local_64;
  bfd_section *local_5c;
  uint local_58;
  bfd_link_info *local_54;
  bfd_vma local_4c;
  bfd_section *local_48;
  int count;
  undefined4 uStack_14;
  
  bVar26 = 0;
  uStack_14 = 0x2d1e9;
  bfd_set_error();
  lang_clear_os_map();
  lang_for_each_statement(build_link_order);
  pbVar10 = link_info.output_bfd;
  puVar9 = PTR__sch_istable_00090fa8;
  if ((config.split_by_reloc & config.split_by_file) != 0xffffffff) {
    pbVar2 = (bfd_section *)(link_info.output_bfd)->section_count;
    pbVar3 = (link_info.output_bfd)->sections;
    pbVar7 = pbVar3;
    pbVar15 = pbVar2;
    while ((pbVar15 != (bfd_section *)0x0 && (pbVar7 != (bfd_section *)0x0))) {
      count = 0;
      local_4c = pbVar3->vma;
      if ((pbVar3->map_head).s != (bfd_section *)0x0) {
        local_64 = 0;
        local_58 = 0;
        local_6c = 0;
        local_48 = (bfd_section *)0x0;
        pbVar19 = pbVar3;
        local_5c = (pbVar3->map_head).s;
        do {
          uVar18 = local_6c;
          if (local_5c->id == 1) {
            local_70 = 0;
            pbVar15 = local_5c->prev;
            if ((link_info._1_1_ & 0x20) == 0) {
              local_70 = pbVar15->lineno_count;
            }
            uVar11 = 0;
            if ((link_info._0_1_ & 3) == 2) {
              uVar11 = pbVar15->reloc_count;
              local_6c = local_6c + uVar11;
            }
            local_68 = pbVar15->size;
            uVar18 = local_6c;
            local_6c = uVar11;
          }
          else if ((link_info._0_1_ & 3) == 2) {
            local_68 = 0;
            local_70 = 0;
            uVar11 = (uint)(local_5c->id - 3 < 2);
            uVar18 = local_6c + uVar11;
            local_6c = uVar11;
          }
          else {
            local_68 = 0;
            local_6c = 0;
            local_70 = 0;
          }
          if (local_48 == (bfd_section *)0x0) {
LAB_0002d64e:
            local_64 = local_68 + local_64;
            local_58 = local_70 + local_58;
            pbVar15 = (bfd_section *)local_5c->name;
            local_6c = uVar18;
          }
          else {
            bVar23 = config.split_by_reloc < uVar18;
            bVar25 = config.split_by_reloc == uVar18;
            if (uVar18 < config.split_by_reloc) {
              uVar11 = local_70 + local_58;
              bVar23 = config.split_by_reloc < uVar11;
              bVar25 = config.split_by_reloc == uVar11;
              if (uVar11 < config.split_by_reloc) {
                bVar23 = local_68 + local_64 < config.split_by_file;
                bVar25 = local_68 + local_64 == config.split_by_file;
                if (bVar23) goto LAB_0002d64e;
              }
            }
            pbVar21 = (byte *)pbVar19->name;
            iVar17 = 5;
            pbVar20 = pbVar21;
            pbVar22 = (byte *)".stab";
            do {
              if (iVar17 == 0) break;
              iVar17 = iVar17 + -1;
              bVar23 = *pbVar20 < *pbVar22;
              bVar25 = *pbVar20 == *pbVar22;
              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;
              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;
            } while (bVar25);
            bVar24 = false;
            bVar23 = (!bVar23 && !bVar25) == bVar23;
            if (bVar23) {
              sVar12 = strlen((char *)pbVar21);
              iVar17 = 4;
              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;
              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;
              pbVar21 = pbVar21 + (sVar12 - 3);
              pbVar20 = &DAT_0004de1c;
              do {
                if (iVar17 == 0) break;
                iVar17 = iVar17 + -1;
                bVar23 = *pbVar21 < *pbVar20;
                bVar25 = *pbVar21 == *pbVar20;
                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;
                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;
              } while (bVar25);
              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;
            }
            else {
              iVar17 = 0xe;
              pbVar20 = (byte *)"$GDB_STRINGS$";
              do {
                if (iVar17 == 0) break;
                iVar17 = iVar17 + -1;
                bVar24 = *pbVar21 < *pbVar20;
                bVar23 = *pbVar21 == *pbVar20;
                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;
                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;
              } while (bVar23);
              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;
            }
            pbVar21 = (byte *)pbVar3->name;
            sVar12 = strlen((char *)pbVar21);
            pcVar13 = (char *)xmalloc();
            memcpy(pcVar13,pbVar21,sVar12 + 1);
            if (sVar12 != 0) {
              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];
              while ((bVar1 & 4) != 0) {
                if (sVar12 - 1 == 0) goto LAB_0002d408;
                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];
                sVar12 = sVar12 - 1;
              }
              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {
                pcVar13[sVar12 - 1] = '\0';
              }
            }
LAB_0002d408:
            if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {
              sVar12 = strlen(pcVar13);
              bVar23 = sVar12 < 5;
              bVar25 = sVar12 == 5;
              if (5 < sVar12) {
                iVar17 = 5;
                pbVar20 = pbVar21;
                pbVar22 = (byte *)".stab";
                do {
                  if (iVar17 == 0) break;
                  iVar17 = iVar17 + -1;
                  bVar23 = *pbVar20 < *pbVar22;
                  bVar25 = *pbVar20 == *pbVar22;
                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;
                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;
                } while (bVar25);
                bVar24 = false;
                bVar23 = (!bVar23 && !bVar25) == bVar23;
                if (!bVar23) {
                  iVar17 = 0xe;
                  pbVar20 = (byte *)"$GDB_SYMBOLS$";
                  do {
                    if (iVar17 == 0) break;
                    iVar17 = iVar17 + -1;
                    bVar24 = *pbVar21 < *pbVar20;
                    bVar23 = *pbVar21 == *pbVar20;
                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;
                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;
                  } while (bVar23);
                  if ((!bVar24 && !bVar23) != bVar24) {
                    pcVar13[5] = '\0';
                    goto LAB_0002d470;
                  }
                }
                pcVar13 = (char *)dcgettext();
                einfo(pcVar13);
                goto LAB_0002d60e;
              }
            }
LAB_0002d470:
            in_stack_ffffff7c = &count;
            iVar17 = bfd_get_unique_section_name();
            if (((iVar17 == 0) ||
                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||
               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)) {
              pcVar13 = (char *)dcgettext();
              einfo(pcVar13);
LAB_0002d60e:
              _DAT_000000a0 = local_5c;
                    /* WARNING: Does not return */
              pcVar8 = (code *)invalidInstructionException();
              (*pcVar8)();
            }
            free(pcVar13);
            fVar4 = pbVar19->flags;
            *(undefined1 *)(iVar17 + 0xc) = 3;
            *(undefined4 *)(iVar17 + 0x18) = 0;
            *(sec_ptr *)(iVar17 + 0x14) = pbVar14;
            pbVar14->flags = fVar4;
            pbVar14->vma = pbVar19->vma;
            pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;
            bVar5 = pbVar19->lma;
            pbVar14->size = 0;
            pbVar14->lma = bVar5;
            bVar5 = pbVar19->output_offset;
            pbVar14->output_section = pbVar14;
            pbVar14->output_offset = bVar5;
            uVar18 = pbVar19->alignment_power;
            pbVar14->orelocation = (reloc_cache_entry **)0x0;
            pbVar14->alignment_power = uVar18;
            pbVar6 = pbVar10->xvec;
            pbVar14->reloc_count = 0;
            (*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14);
            pbVar14->map_tail = pbVar19->map_tail;
            uVar18 = local_5c->index;
            (pbVar14->map_head).s = local_5c;
            (pbVar19->map_tail).link_order = (bfd_link_order *)local_48;
            local_48->name = (char *)0x0;
            local_4c = local_4c + uVar18;
            pbVar14->size = pbVar19->size - uVar18;
            pbVar19->size = uVar18;
            pbVar14->vma = local_4c;
            pbVar14->lma = local_4c;
            pbVar15 = local_5c;
            uVar11 = uVar18;
            while( true ) {
              pbVar15->index = uVar11 - uVar18;
              if (pbVar15->id == 1) {
                pbVar7 = pbVar15->prev;
                pbVar7->output_section = pbVar14;
                pbVar7->output_offset = uVar11 - uVar18;
              }
              pbVar15 = (bfd_section *)pbVar15->name;
              if (pbVar15 == (bfd_section *)0x0) break;
              uVar11 = pbVar15->index;
            }
            pbVar15 = (bfd_section *)local_5c->name;
            local_58 = local_70;
            local_64 = local_68;
            pbVar19 = pbVar14;
          }
          if (pbVar15 == (bfd_section *)0x0) break;
          local_48 = local_5c;
          local_5c = pbVar15;
        } while( true );
      }
      pbVar3 = pbVar3->next;
      pbVar2 = (bfd_section *)((int)&pbVar2[-1].map_tail + 3);
      pbVar15 = pbVar3;
      pbVar7 = pbVar2;
    }
  }
  local_54 = &link_info;
  bVar16 = (*(link_info.output_bfd)->xvec->_bfd_final_link)(link_info.output_bfd,&link_info);
  if (bVar16 != 0) {
    return;
  }
  iVar17 = bfd_get_error();
  if (iVar17 == 0) {
    xexit();
    if ((local_54 == (bfd_link_info *)0x0) &&
       (local_54 = (bfd_link_info *)bfd_hash_allocate(in_stack_ffffff7c,0x14),
       local_54 == (bfd_link_info *)0x0)) {
      pcVar13 = (char *)dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);
      einfo(pcVar13,0x2d795);
      _DAT_00000010 = _DAT_00000010 & 0xfeff;
                    /* WARNING: Does not return */
      pcVar8 = (code *)invalidInstructionException();
      (*pcVar8)();
    }
    *(ushort *)&local_54->stacksize = (ushort)local_54->stacksize & 0xfe00;
    return;
  }
  pcVar13 = (char *)dcgettext();
  einfo(pcVar13);
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Heritage AFTER dead removal. Example location: r0x00091c50 : 0x0002d690 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Restarted to delay deadcode elimination for space: ram */

void FUN_0002d1e0(void)

{
  byte bVar1;
  undefined4 *puVar2;
  undefined4 *puVar3;
  int iVar4;
  undefined4 *puVar5;
  code *pcVar6;
  undefined *puVar7;
  undefined4 uVar8;
  uint uVar9;
  size_t sVar10;
  char *__s;
  undefined4 *puVar11;
  undefined4 *puVar12;
  int iVar13;
  int iVar14;
  uint uVar15;
  int iVar16;
  byte *pbVar17;
  byte *pbVar18;
  byte *pbVar19;
  bool bVar20;
  bool bVar21;
  bool bVar22;
  byte bVar23;
  undefined4 *in_stack_ffffff7c;
  int local_70;
  uint local_6c;
  int local_68;
  int local_64;
  undefined4 *local_5c;
  int local_58;
  undefined4 *local_54;
  int local_4c;
  undefined4 *local_48;
  undefined4 local_20 [3];
  undefined4 uStack_14;
  
  bVar23 = 0;
  uStack_14 = 0x2d1e9;
  bfd_set_error();
  FUN_00024760();
  FUN_000217c0();
  iVar13 = DAT_00091c50;
  puVar7 = PTR__sch_istable_00090fa8;
  if ((DAT_00091d74 & DAT_00091d78) != 0xffffffff) {
    puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);
    puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);
    puVar5 = puVar3;
    puVar12 = puVar2;
    while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {
      local_20[0] = 0;
      local_4c = puVar3[7];
      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {
        local_64 = 0;
        local_58 = 0;
        local_6c = 0;
        local_48 = (undefined4 *)0x0;
        puVar12 = puVar3;
        local_5c = (undefined4 *)puVar3[0x28];
        do {
          uVar15 = local_6c;
          if (local_5c[1] == 1) {
            local_70 = 0;
            iVar14 = local_5c[4];
            if ((DAT_00091c20._1_1_ & 0x20) == 0) {
              local_70 = *(int *)(iVar14 + 0x74);
            }
            uVar9 = 0;
            if (((byte)DAT_00091c20 & 3) == 2) {
              uVar9 = *(uint *)(iVar14 + 0x4c);
              local_6c = local_6c + uVar9;
            }
            local_68 = *(int *)(iVar14 + 0x24);
            uVar15 = local_6c;
            local_6c = uVar9;
          }
          else if (((byte)DAT_00091c20 & 3) == 2) {
            local_68 = 0;
            local_70 = 0;
            uVar9 = (uint)(local_5c[1] - 3 < 2);
            uVar15 = local_6c + uVar9;
            local_6c = uVar9;
          }
          else {
            local_68 = 0;
            local_6c = 0;
            local_70 = 0;
          }
          if (local_48 == (undefined4 *)0x0) {
LAB_0002d64e:
            local_64 = local_68 + local_64;
            local_58 = local_70 + local_58;
            puVar5 = (undefined4 *)*local_5c;
            local_6c = uVar15;
          }
          else {
            bVar20 = DAT_00091d74 < uVar15;
            bVar22 = DAT_00091d74 == uVar15;
            if (uVar15 < DAT_00091d74) {
              uVar9 = local_70 + local_58;
              bVar20 = DAT_00091d74 < uVar9;
              bVar22 = DAT_00091d74 == uVar9;
              if (uVar9 < DAT_00091d74) {
                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;
                bVar22 = local_68 + local_64 == DAT_00091d78;
                if (bVar20) goto LAB_0002d64e;
              }
            }
            pbVar18 = (byte *)*puVar12;
            iVar14 = 5;
            pbVar17 = pbVar18;
            pbVar19 = (byte *)".stab";
            do {
              if (iVar14 == 0) break;
              iVar14 = iVar14 + -1;
              bVar20 = *pbVar17 < *pbVar19;
              bVar22 = *pbVar17 == *pbVar19;
              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;
              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;
            } while (bVar22);
            bVar21 = false;
            bVar20 = (!bVar20 && !bVar22) == bVar20;
            if (bVar20) {
              sVar10 = strlen((char *)pbVar18);
              iVar14 = 4;
              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;
              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;
              pbVar18 = pbVar18 + (sVar10 - 3);
              pbVar17 = &DAT_0004de1c;
              do {
                if (iVar14 == 0) break;
                iVar14 = iVar14 + -1;
                bVar20 = *pbVar18 < *pbVar17;
                bVar22 = *pbVar18 == *pbVar17;
                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;
                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;
              } while (bVar22);
              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;
            }
            else {
              iVar14 = 0xe;
              pbVar17 = (byte *)"$GDB_STRINGS$";
              do {
                if (iVar14 == 0) break;
                iVar14 = iVar14 + -1;
                bVar21 = *pbVar18 < *pbVar17;
                bVar20 = *pbVar18 == *pbVar17;
                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;
                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;
              } while (bVar20);
              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;
            }
            pbVar18 = (byte *)*puVar3;
            sVar10 = strlen((char *)pbVar18);
            __s = (char *)xmalloc();
            memcpy(__s,pbVar18,sVar10 + 1);
            if (sVar10 != 0) {
              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];
              while ((bVar1 & 4) != 0) {
                if (sVar10 - 1 == 0) goto LAB_0002d408;
                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];
                sVar10 = sVar10 - 1;
              }
              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {
                __s[sVar10 - 1] = '\0';
              }
            }
LAB_0002d408:
            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {
              sVar10 = strlen(__s);
              bVar20 = sVar10 < 5;
              bVar22 = sVar10 == 5;
              if (5 < sVar10) {
                iVar14 = 5;
                pbVar17 = pbVar18;
                pbVar19 = (byte *)".stab";
                do {
                  if (iVar14 == 0) break;
                  iVar14 = iVar14 + -1;
                  bVar20 = *pbVar17 < *pbVar19;
                  bVar22 = *pbVar17 == *pbVar19;
                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;
                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;
                } while (bVar22);
                bVar21 = false;
                bVar20 = (!bVar20 && !bVar22) == bVar20;
                if (!bVar20) {
                  iVar14 = 0xe;
                  pbVar17 = (byte *)"$GDB_SYMBOLS$";
                  do {
                    if (iVar14 == 0) break;
                    iVar14 = iVar14 + -1;
                    bVar21 = *pbVar18 < *pbVar17;
                    bVar20 = *pbVar18 == *pbVar17;
                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;
                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;
                  } while (bVar20);
                  if ((!bVar21 && !bVar20) != bVar21) {
                    __s[5] = '\0';
                    goto LAB_0002d470;
                  }
                }
                dcgettext();
                FUN_00031760();
                goto LAB_0002d60e;
              }
            }
LAB_0002d470:
            in_stack_ffffff7c = local_20;
            iVar14 = bfd_get_unique_section_name();
            if (((iVar14 == 0) ||
                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))
               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {
              dcgettext();
              FUN_00031760();
LAB_0002d60e:
              _DAT_000000a0 = local_5c;
                    /* WARNING: Does not return */
              pcVar6 = (code *)invalidInstructionException();
              (*pcVar6)();
            }
            free(__s);
            uVar8 = puVar12[5];
            *(undefined1 *)(iVar14 + 0xc) = 3;
            *(undefined4 *)(iVar14 + 0x18) = 0;
            *(undefined4 **)(iVar14 + 0x14) = puVar11;
            puVar11[5] = uVar8;
            puVar11[7] = puVar12[7];
            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;
            uVar8 = puVar12[8];
            puVar11[9] = 0;
            puVar11[8] = uVar8;
            uVar8 = puVar12[0xe];
            puVar11[0xf] = puVar11;
            puVar11[0xe] = uVar8;
            uVar8 = puVar12[0x10];
            puVar11[0x12] = 0;
            puVar11[0x10] = uVar8;
            iVar14 = *(int *)(iVar13 + 4);
            puVar11[0x13] = 0;
            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);
            puVar11[0x29] = puVar12[0x29];
            iVar14 = local_5c[2];
            puVar11[0x28] = local_5c;
            puVar12[0x29] = local_48;
            *local_48 = 0;
            local_4c = local_4c + iVar14;
            puVar11[9] = puVar12[9] - iVar14;
            puVar12[9] = iVar14;
            puVar11[7] = local_4c;
            puVar11[8] = local_4c;
            puVar12 = local_5c;
            iVar16 = iVar14;
            while( true ) {
              puVar12[2] = iVar16 - iVar14;
              if (puVar12[1] == 1) {
                iVar4 = puVar12[4];
                *(undefined4 **)(iVar4 + 0x3c) = puVar11;
                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;
              }
              puVar12 = (undefined4 *)*puVar12;
              if (puVar12 == (undefined4 *)0x0) break;
              iVar16 = puVar12[2];
            }
            puVar5 = (undefined4 *)*local_5c;
            local_58 = local_70;
            local_64 = local_68;
            puVar12 = puVar11;
          }
          if (puVar5 == (undefined4 *)0x0) break;
          local_48 = local_5c;
          local_5c = puVar5;
        } while( true );
      }
      puVar3 = (undefined4 *)puVar3[3];
      puVar2 = (undefined4 *)((int)puVar2 + -1);
      puVar12 = puVar3;
      puVar5 = puVar2;
    }
  }
  local_54 = &DAT_00091c20;
  iVar13 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))();
  if (iVar13 != 0) {
    return;
  }
  iVar13 = bfd_get_error();
  if (iVar13 == 0) {
    xexit();
    if ((local_54 == (undefined4 *)0x0) &&
       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),
       local_54 == (undefined4 *)0x0)) {
      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);
      FUN_00031760(uVar8,0x2d795);
      _DAT_00000010 = _DAT_00000010 & 0xfeff;
                    /* WARNING: Does not return */
      pcVar6 = (code *)invalidInstructionException();
      (*pcVar6)();
    }
    *(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;
    return;
  }
  dcgettext();
  FUN_00031760();
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00015a80
ADD EBX,0x63e17
SUB ESP,0x78
PUSH 0x0
CALL 0x00014490
CALL 0x00024760
LEA EAX,[EBX + 0xfff9bb40]
MOV dword ptr [ESP],EAX
CALL 0x000217c0
LEA EDI,[EBX + 0xd20]
MOV EAX,dword ptr [EDI + 0x54]
AND EAX,dword ptr [EDI + 0x58]
MOV dword ptr [ESP + 0x58],EDI
ADD ESP,0x10
CMP EAX,-0x1
LEA EAX,[EBX + 0xc20]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [EAX + 0x30]
MOV dword ptr [ESP + 0x1c],EAX
JZ 0x0002d697
MOV EDI,dword ptr [EAX + 0x68]
MOV EAX,dword ptr [EAX + 0x60]
MOV dword ptr [ESP + 0x38],EDI
MOV dword ptr [ESP + 0x2c],EAX
TEST EDI,EDI
JZ 0x0002d697
TEST EAX,EAX
JZ 0x0002d697
MOV EAX,dword ptr [EBX + 0xffffffa8]
MOV dword ptr [ESP + 0x40],EAX
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x5c],0x0
MOV ECX,dword ptr [EAX + 0x1c]
MOV EAX,dword ptr [EAX + 0xa0]
MOV dword ptr [ESP + 0x30],ECX
MOV dword ptr [ESP + 0x20],EAX
TEST EAX,EAX
JZ 0x0002d66c
MOV dword ptr [ESP + 0x18],0x0
MOV EBP,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0x10],0x0
MOV dword ptr [ESP + 0x34],0x0
LEA ESI,[ESI]
MOV ESI,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [ESP + 0x20]
MOVZX EDX,byte ptr [ESI]
MOV EAX,dword ptr [EAX + 0x4]
MOV ECX,EDX
MOV byte ptr [ESP + 0xc],DL
AND ECX,0x3
CMP EAX,0x1
JZ 0x0002d720
CMP CL,0x2
JZ 0x0002d6f0
MOV EDX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x14],0x0
MOV dword ptr [ESP + 0x10],0x0
MOV dword ptr [ESP + 0xc],0x0
MOV ESI,dword ptr [ESP + 0x34]
TEST ESI,ESI
JZ 0x0002d63e
MOV ESI,dword ptr [ESP + 0x48]
MOV ECX,dword ptr [ESI + 0x54]
CMP ECX,EDX
JBE 0x0002d338
MOV EAX,dword ptr [ESP + 0xc]
ADD EAX,dword ptr [ESP + 0x24]
CMP ECX,EAX
JBE 0x0002d338
MOV ECX,dword ptr [ESP + 0x14]
ADD ECX,dword ptr [ESP + 0x18]
CMP ECX,dword ptr [ESI + 0x58]
JC 0x0002d64e
LEA ESI,[ESI]
MOV ESI,dword ptr [EBP]
LEA EDI,[EBX + 0xfffbce16]
MOV ECX,0x5
MOV dword ptr [ESP + 0x44],EDI
MOV dword ptr [ESP + 0x3c],ESI
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0002d620
MOV dword ptr [ESP + 0x4c],EDX
SUB ESP,0xc
LEA EDI,[EBX + 0xfffbce1c]
MOV ESI,dword ptr [ESP + 0x48]
PUSH ESI
CALL 0x00014720
MOV ECX,0x4
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x4c]
LEA ESI,[ESI + EAX*0x1 + -0x3]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0002d63e
MOV EAX,dword ptr [ESP + 0x2c]
SUB ESP,0xc
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x30],EAX
PUSH EAX
CALL 0x00014720
LEA EDI,[EAX + 0x1]
MOV ESI,EAX
MOV dword ptr [ESP],EDI
CALL 0x00014cc8
MOV dword ptr [ESP + 0x28],EAX
ADD ESP,0xc
PUSH EDI
MOV EDI,EAX
PUSH dword ptr [ESP + 0x2c]
PUSH EAX
CALL 0x00014200
ADD ESP,0x10
TEST ESI,ESI
JZ 0x0002d408
MOVZX ECX,byte ptr [EDI + ESI*0x1 + -0x1]
MOV EDX,dword ptr [ESP + 0x40]
LEA EAX,[ESI + -0x1]
TEST byte ptr [EDX + ECX*0x2],0x4
JNZ 0x0002d404
JMP 0x0002d6c0
MOV ECX,dword ptr [ESP + 0x18]
MOV ESI,dword ptr [ESP + 0x40]
LEA EDX,[EAX + -0x1]
MOVZX ECX,byte ptr [ECX + EAX*0x1 + -0x1]
TEST byte ptr [ESI + ECX*0x2],0x4
JZ 0x0002d6c8
MOV EAX,EDX
TEST EAX,EAX
JNZ 0x0002d3e8
MOV EAX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX + 0x4]
SUB EAX,0x2
AND EAX,0xfffffffd
JNZ 0x0002d470
SUB ESP,0xc
PUSH dword ptr [ESP + 0x24]
CALL 0x00014720
ADD ESP,0x10
CMP EAX,0x5
JBE 0x0002d470
MOV ESI,dword ptr [ESP + 0x24]
MOV EDI,dword ptr [ESP + 0x44]
MOV ECX,0x5
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0002d768
MOV ESI,dword ptr [ESP + 0x24]
MOV ECX,0xe
LEA EDI,[EBX + 0xfffbce2e]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0002d768
MOV EAX,dword ptr [ESP + 0x18]
MOV byte ptr [EAX + 0x5],0x0
SUB ESP,0x4
LEA EAX,[ESP + 0x60]
PUSH EAX
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [ESP + 0x28]
CALL 0x00014840
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JZ 0x0002d5f0
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x28]
CALL 0x000148e0
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0002d5f0
SUB ESP,0xc
PUSH 0x0
PUSH 0x1
PUSH 0x1
PUSH EDI
MOV EAX,dword ptr [ESP + 0x44]
PUSH dword ptr [EAX + 0x1c]
CALL 0x00014550
ADD ESP,0x20
MOV EDI,EAX
TEST EAX,EAX
JZ 0x0002d5f0
SUB ESP,0xc
PUSH dword ptr [ESP + 0x24]
CALL 0x00014cb0
MOV EAX,dword ptr [EBP + 0x14]
MOV EDX,dword ptr [ESP + 0x2c]
MOV byte ptr [EDI + 0xc],0x3
MOV dword ptr [EDI + 0x18],0x0
MOV dword ptr [EDI + 0x14],ESI
MOV dword ptr [ESI + 0x14],EAX
MOV EAX,dword ptr [EBP + 0x1c]
MOV dword ptr [ESI + 0x1c],EAX
MOVZX EAX,byte ptr [ESI + 0x18]
MOVZX ECX,byte ptr [EBP + 0x18]
AND EAX,0xfffffffe
AND ECX,0x1
OR EAX,ECX
MOV byte ptr [ESI + 0x18],AL
MOV EAX,dword ptr [EBP + 0x20]
MOV dword ptr [ESI + 0x24],0x0
MOV dword ptr [ESI + 0x20],EAX
MOV EAX,dword ptr [EBP + 0x38]
MOV dword ptr [ESI + 0x3c],ESI
MOV dword ptr [ESI + 0x38],EAX
MOV EAX,dword ptr [EBP + 0x40]
MOV dword ptr [ESI + 0x48],0x0
MOV dword ptr [ESI + 0x40],EAX
MOV EAX,dword ptr [EDX + 0x4]
MOV dword ptr [ESI + 0x4c],0x0
PUSH ESI
PUSH EDX
PUSH EBP
PUSH EDX
CALL dword ptr [EAX + 0xb4]
MOV EAX,dword ptr [EBP + 0xa4]
MOV EDI,dword ptr [ESP + 0x40]
MOV dword ptr [ESI + 0xa4],EAX
MOV EAX,dword ptr [ESP + 0x54]
MOV ECX,dword ptr [EDI + 0x8]
MOV dword ptr [ESI + 0xa0],EDI
MOV dword ptr [EBP + 0xa4],EAX
MOV dword ptr [EAX],0x0
MOV EAX,dword ptr [EBP + 0x24]
ADD dword ptr [ESP + 0x50],ECX
MOV EDX,dword ptr [ESP + 0x50]
ADD ESP,0x20
SUB EAX,ECX
MOV dword ptr [ESI + 0x24],EAX
MOV EAX,EDI
MOV dword ptr [EBP + 0x24],ECX
MOV dword ptr [ESI + 0x1c],EDX
MOV dword ptr [ESI + 0x20],EDX
MOV EDX,ECX
JMP 0x0002d59b
MOV EDX,dword ptr [EAX + 0x8]
SUB EDX,ECX
CMP dword ptr [EAX + 0x4],0x1
MOV dword ptr [EAX + 0x8],EDX
JNZ 0x0002d5af
MOV EDI,dword ptr [EAX + 0x10]
MOV dword ptr [EDI + 0x3c],ESI
MOV dword ptr [EDI + 0x38],EDX
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x0002d598
MOV EDX,dword ptr [ESP + 0x20]
MOV EBP,ESI
MOV EAX,dword ptr [EDX]
MOV dword ptr [ESP + 0x34],EDX
TEST EAX,EAX
JZ 0x0002d66c
LEA ESI,[ESI]
MOV EDX,dword ptr [ESP + 0x14]
MOV ECX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x20],EAX
MOV dword ptr [ESP + 0x18],EDX
MOV dword ptr [ESP + 0x24],ECX
JMP 0x0002d2b8
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbceb0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142f0
MOV dword ptr [ESP],EAX
CALL 0x00031760
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x20]
MOV [0x000000a0],EAX
UD2
MOV ESI,dword ptr [ESP + 0x3c]
MOV ECX,0xe
LEA EDI,[EBX + 0xfffbce20]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0002d393
MOV EAX,dword ptr [ESP + 0xc]
MOV ECX,dword ptr [ESP + 0x14]
ADD EAX,dword ptr [ESP + 0x24]
ADD ECX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x10],EDX
MOV EDX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [EDX]
MOV dword ptr [ESP + 0x14],ECX
MOV dword ptr [ESP + 0x34],EDX
TEST EAX,EAX
JNZ 0x0002d5d0
MOV EAX,dword ptr [ESP + 0x2c]
SUB dword ptr [ESP + 0x38],0x1
MOV ECX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x2c],ECX
TEST ECX,ECX
JZ 0x0002d68c
TEST EAX,EAX
JNZ 0x0002d268
MOV EAX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EAX + 0x30]
MOV dword ptr [ESP + 0x1c],EAX
SUB ESP,0x8
MOV EDX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EDX + 0x4]
PUSH dword ptr [ESP + 0x30]
PUSH EDX
CALL dword ptr [EAX + 0x178]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002d790
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,ESI
LEA ESI,[ESI]
CMP EAX,0x1
JZ 0x0002d408
MOV EDX,dword ptr [ESP + 0x18]
LEA EAX,[EDX + EAX*0x1 + -0x1]
CMP byte ptr [EAX],0x2e
JNZ 0x0002d408
MOV byte ptr [EAX],0x0
JMP 0x0002d408
SUB EAX,0x3
MOV EDX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x14],0x0
CMP EAX,0x1
MOV dword ptr [ESP + 0xc],0x0
SETBE AL
MOVZX EAX,AL
ADD EDX,EAX
MOV dword ptr [ESP + 0x10],EAX
JMP 0x0002d2fd
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0xc],0x0
MOV ESI,dword ptr [EAX + 0x10]
MOV EAX,dword ptr [ESP + 0x28]
TEST byte ptr [EAX + 0x1],0x20
JNZ 0x0002d740
MOV EAX,dword ptr [ESI + 0x74]
MOV dword ptr [ESP + 0xc],EAX
XOR EAX,EAX
CMP CL,0x2
JNZ 0x0002d74e
MOV EAX,dword ptr [ESI + 0x4c]
ADD dword ptr [ESP + 0x10],EAX
MOV EDI,dword ptr [ESI + 0x24]
MOV EDX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x14],EDI
JMP 0x0002d2fd
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbce80]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142f0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x2c]
PUSH EAX
CALL 0x00031760
ADD ESP,0x10
JMP 0x0002d60e
CALL 0x00014440
TEST EAX,EAX
JZ 0x0002d7bf
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbce3c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142f0
MOV dword ptr [ESP],EAX
CALL 0x00031760
ADD ESP,0x10
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH 0x1
CALL 0x00014980
NOP
NOP
NOP
NOP
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Heritage AFTER dead removal. Example location: r0x00091c50 : 0x0002d690 */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n/* WARNING: Restarted to delay deadcode elimination for space: ram */\n\nvoid FUN_0002d1e0(void)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  code *pcVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  size_t sVar10;\n  char *__s;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  bool bVar20;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  undefined4 *in_stack_ffffff7c;\n  int local_70;\n  uint local_6c;\n  int local_68;\n  int local_64;\n  undefined4 *local_5c;\n  int local_58;\n  undefined4 *local_54;\n  int local_4c;\n  undefined4 *local_48;\n  undefined4 local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x2d1e9;\n  bfd_set_error();\n  FUN_00024760();\n  FUN_000217c0();\n  iVar13 = DAT_00091c50;\n  puVar7 = PTR__sch_istable_00090fa8;\n  if ((DAT_00091d74 & DAT_00091d78) != 0xffffffff) {\n    puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);\n    puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    puVar5 = puVar3;\n    puVar12 = puVar2;\n    while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }\n  }\n  local_54 = &DAT_00091c20;\n  iVar13 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))();\n  if (iVar13 != 0) {\n    return;\n  }\n  iVar13 = bfd_get_error();\n  if (iVar13 == 0) {\n    xexit();\n    if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    /* WARNING: Does not return */\n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }\n    *(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;\n    return;\n  }\n  dcgettext();\n  FUN_00031760();\n  return;\n}\n\n" comment comment comment comment (function_definition "void FUN_0002d1e0(void)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  code *pcVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  size_t sVar10;\n  char *__s;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  bool bVar20;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  undefined4 *in_stack_ffffff7c;\n  int local_70;\n  uint local_6c;\n  int local_68;\n  int local_64;\n  undefined4 *local_5c;\n  int local_58;\n  undefined4 *local_54;\n  int local_4c;\n  undefined4 *local_48;\n  undefined4 local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x2d1e9;\n  bfd_set_error();\n  FUN_00024760();\n  FUN_000217c0();\n  iVar13 = DAT_00091c50;\n  puVar7 = PTR__sch_istable_00090fa8;\n  if ((DAT_00091d74 & DAT_00091d78) != 0xffffffff) {\n    puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);\n    puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    puVar5 = puVar3;\n    puVar12 = puVar2;\n    while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }\n  }\n  local_54 = &DAT_00091c20;\n  iVar13 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))();\n  if (iVar13 != 0) {\n    return;\n  }\n  iVar13 = bfd_get_error();\n  if (iVar13 == 0) {\n    xexit();\n    if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    /* WARNING: Does not return */\n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }\n    *(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;\n    return;\n  }\n  dcgettext();\n  FUN_00031760();\n  return;\n}" primitive_type (function_declarator "FUN_0002d1e0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  code *pcVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  size_t sVar10;\n  char *__s;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  bool bVar20;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  undefined4 *in_stack_ffffff7c;\n  int local_70;\n  uint local_6c;\n  int local_68;\n  int local_64;\n  undefined4 *local_5c;\n  int local_58;\n  undefined4 *local_54;\n  int local_4c;\n  undefined4 *local_48;\n  undefined4 local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x2d1e9;\n  bfd_set_error();\n  FUN_00024760();\n  FUN_000217c0();\n  iVar13 = DAT_00091c50;\n  puVar7 = PTR__sch_istable_00090fa8;\n  if ((DAT_00091d74 & DAT_00091d78) != 0xffffffff) {\n    puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);\n    puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    puVar5 = puVar3;\n    puVar12 = puVar2;\n    while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }\n  }\n  local_54 = &DAT_00091c20;\n  iVar13 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))();\n  if (iVar13 != 0) {\n    return;\n  }\n  iVar13 = bfd_get_error();\n  if (iVar13 == 0) {\n    xexit();\n    if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    /* WARNING: Does not return */\n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }\n    *(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;\n    return;\n  }\n  dcgettext();\n  FUN_00031760();\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "undefined4 *in_stack_ffffff7c;" type_identifier (pointer_declarator "*in_stack_ffffff7c" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "undefined4 *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "undefined4 *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "undefined4 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined4 local_20 [3];" type_identifier (array_declarator "local_20 [3]" 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 = 0x2d1e9;" (assignment_expression "uStack_14 = 0x2d1e9" identifier = number_literal) ;) (expression_statement "bfd_set_error();" (call_expression "bfd_set_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00024760();" (call_expression "FUN_00024760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000217c0();" (call_expression "FUN_000217c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar13 = DAT_00091c50;" (assignment_expression "iVar13 = DAT_00091c50" identifier = identifier) ;) (expression_statement "puVar7 = PTR__sch_istable_00090fa8;" (assignment_expression "puVar7 = PTR__sch_istable_00090fa8" identifier = identifier) ;) (if_statement "if ((DAT_00091d74 & DAT_00091d78) != 0xffffffff) {\n    puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);\n    puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    puVar5 = puVar3;\n    puVar12 = puVar2;\n    while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }\n  }" if (parenthesized_expression "((DAT_00091d74 & DAT_00091d78) != 0xffffffff)" ( (binary_expression "(DAT_00091d74 & DAT_00091d78) != 0xffffffff" (parenthesized_expression "(DAT_00091d74 & DAT_00091d78)" ( (binary_expression "DAT_00091d74 & DAT_00091d78" identifier & identifier) )) != number_literal) )) (compound_statement "{\n    puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);\n    puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    puVar5 = puVar3;\n    puVar12 = puVar2;\n    while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }\n  }" { (expression_statement "puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);" (assignment_expression "puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68)" identifier = (pointer_expression "*(undefined4 **)(DAT_00091c50 + 0x68)" * (cast_expression "(undefined4 **)(DAT_00091c50 + 0x68)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00091c50 + 0x68)" ( (binary_expression "DAT_00091c50 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);" (assignment_expression "puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(DAT_00091c50 + 0x60)" * (cast_expression "(undefined4 **)(DAT_00091c50 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00091c50 + 0x60)" ( (binary_expression "DAT_00091c50 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "puVar5 = puVar3;" (assignment_expression "puVar5 = puVar3" identifier = identifier) ;) (expression_statement "puVar12 = puVar2;" (assignment_expression "puVar12 = puVar2" identifier = identifier) ;) (while_statement "while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }" while (parenthesized_expression "((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0)))" ( (parenthesized_expression "(puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))" ( (binary_expression "puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0)" (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" ( (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) )) (compound_statement "{\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }" { (expression_statement "local_20[0] = 0;" (assignment_expression "local_20[0] = 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_4c = puVar3[7];" (assignment_expression "local_4c = puVar3[7]" identifier = (subscript_expression "puVar3[7]" identifier [ number_literal ])) ;) (if_statement "if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }" if (parenthesized_expression "((undefined4 *)puVar3[0x28] != (undefined4 *)0x0)" ( (binary_expression "(undefined4 *)puVar3[0x28] != (undefined4 *)0x0" (cast_expression "(undefined4 *)puVar3[0x28]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x28]" identifier [ number_literal ])) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }" { (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_48 = (undefined4 *)0x0;" (assignment_expression "local_48 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar12 = puVar3;" (assignment_expression "puVar12 = puVar3" identifier = identifier) ;) (expression_statement "local_5c = (undefined4 *)puVar3[0x28];" (assignment_expression "local_5c = (undefined4 *)puVar3[0x28]" identifier = (cast_expression "(undefined4 *)puVar3[0x28]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x28]" identifier [ number_literal ]))) ;) (do_statement "do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );" do (compound_statement "{\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        }" { (expression_statement "uVar15 = local_6c;" (assignment_expression "uVar15 = local_6c" identifier = identifier) ;) (if_statement "if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" if (parenthesized_expression "(local_5c[1] == 1)" ( (binary_expression "local_5c[1] == 1" (subscript_expression "local_5c[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }" { (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "iVar14 = local_5c[4];" (assignment_expression "iVar14 = local_5c[4]" identifier = (subscript_expression "local_5c[4]" identifier [ number_literal ])) ;) (if_statement "if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }" if (parenthesized_expression "((DAT_00091c20._1_1_ & 0x20) == 0)" ( (binary_expression "(DAT_00091c20._1_1_ & 0x20) == 0" (parenthesized_expression "(DAT_00091c20._1_1_ & 0x20)" ( (binary_expression "DAT_00091c20._1_1_ & 0x20" (field_expression "DAT_00091c20._1_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              local_70 = *(int *)(iVar14 + 0x74);\n            }" { (expression_statement "local_70 = *(int *)(iVar14 + 0x74);" (assignment_expression "local_70 = *(int *)(iVar14 + 0x74)" identifier = (pointer_expression "*(int *)(iVar14 + 0x74)" * (cast_expression "(int *)(iVar14 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x74)" ( (binary_expression "iVar14 + 0x74" identifier + number_literal) ))))) ;) })) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (if_statement "if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }" if (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2)" ( (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }" { (expression_statement "uVar9 = *(uint *)(iVar14 + 0x4c);" (assignment_expression "uVar9 = *(uint *)(iVar14 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar14 + 0x4c)" * (cast_expression "(uint *)(iVar14 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x4c)" ( (binary_expression "iVar14 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "local_6c = local_6c + uVar9;" (assignment_expression "local_6c = local_6c + uVar9" identifier = (binary_expression "local_6c + uVar9" identifier + identifier)) ;) })) (expression_statement "local_68 = *(int *)(iVar14 + 0x24);" (assignment_expression "local_68 = *(int *)(iVar14 + 0x24)" identifier = (pointer_expression "*(int *)(iVar14 + 0x24)" * (cast_expression "(int *)(iVar14 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = local_6c;" (assignment_expression "uVar15 = local_6c" identifier = identifier) ;) (expression_statement "local_6c = uVar9;" (assignment_expression "local_6c = uVar9" identifier = identifier) ;) }) (else_clause "else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" else (if_statement "if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" if (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2)" ( (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }" { (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = (uint)(local_5c[1] - 3 < 2);" (assignment_expression "uVar9 = (uint)(local_5c[1] - 3 < 2)" identifier = (call_expression "(uint)(local_5c[1] - 3 < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c[1] - 3 < 2)" ( (binary_expression "local_5c[1] - 3 < 2" (binary_expression "local_5c[1] - 3" (subscript_expression "local_5c[1]" identifier [ number_literal ]) - number_literal) < number_literal) )))) ;) (expression_statement "uVar15 = local_6c + uVar9;" (assignment_expression "uVar15 = local_6c + uVar9" identifier = (binary_expression "local_6c + uVar9" identifier + identifier)) ;) (expression_statement "local_6c = uVar9;" (assignment_expression "local_6c = uVar9" identifier = identifier) ;) }) (else_clause "else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" else (compound_statement "{\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" { (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) }))))) (if_statement "if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }" if (parenthesized_expression "(local_48 == (undefined4 *)0x0)" ( (binary_expression "local_48 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }" { (labeled_statement "LAB_0002d64e:\n            local_64 = local_68 + local_64;" statement_identifier : (expression_statement "local_64 = local_68 + local_64;" (assignment_expression "local_64 = local_68 + local_64" identifier = (binary_expression "local_68 + local_64" identifier + identifier)) ;)) (expression_statement "local_58 = local_70 + local_58;" (assignment_expression "local_58 = local_70 + local_58" identifier = (binary_expression "local_70 + local_58" identifier + identifier)) ;) (expression_statement "puVar5 = (undefined4 *)*local_5c;" (assignment_expression "puVar5 = (undefined4 *)*local_5c" identifier = (cast_expression "(undefined4 *)*local_5c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_5c" * identifier))) ;) (expression_statement "local_6c = uVar15;" (assignment_expression "local_6c = uVar15" identifier = identifier) ;) }) (else_clause "else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }" else (compound_statement "{\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }" { (expression_statement "bVar20 = DAT_00091d74 < uVar15;" (assignment_expression "bVar20 = DAT_00091d74 < uVar15" identifier = (binary_expression "DAT_00091d74 < uVar15" identifier < identifier)) ;) (expression_statement "bVar22 = DAT_00091d74 == uVar15;" (assignment_expression "bVar22 = DAT_00091d74 == uVar15" identifier = (binary_expression "DAT_00091d74 == uVar15" identifier == identifier)) ;) (if_statement "if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }" if (parenthesized_expression "(uVar15 < DAT_00091d74)" ( (binary_expression "uVar15 < DAT_00091d74" identifier < identifier) )) (compound_statement "{\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }" { (expression_statement "uVar9 = local_70 + local_58;" (assignment_expression "uVar9 = local_70 + local_58" identifier = (binary_expression "local_70 + local_58" identifier + identifier)) ;) (expression_statement "bVar20 = DAT_00091d74 < uVar9;" (assignment_expression "bVar20 = DAT_00091d74 < uVar9" identifier = (binary_expression "DAT_00091d74 < uVar9" identifier < identifier)) ;) (expression_statement "bVar22 = DAT_00091d74 == uVar9;" (assignment_expression "bVar22 = DAT_00091d74 == uVar9" identifier = (binary_expression "DAT_00091d74 == uVar9" identifier == identifier)) ;) (if_statement "if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }" if (parenthesized_expression "(uVar9 < DAT_00091d74)" ( (binary_expression "uVar9 < DAT_00091d74" identifier < identifier) )) (compound_statement "{\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }" { (expression_statement "bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;" (assignment_expression "bVar20 = (uint)(local_68 + local_64) < DAT_00091d78" identifier = (binary_expression "(uint)(local_68 + local_64) < DAT_00091d78" (call_expression "(uint)(local_68 + local_64)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_68 + local_64)" ( (binary_expression "local_68 + local_64" identifier + identifier) ))) < identifier)) ;) (expression_statement "bVar22 = local_68 + local_64 == DAT_00091d78;" (assignment_expression "bVar22 = local_68 + local_64 == DAT_00091d78" identifier = (binary_expression "local_68 + local_64 == DAT_00091d78" (binary_expression "local_68 + local_64" identifier + identifier) == identifier)) ;) (if_statement "if (bVar20) goto LAB_0002d64e;" if (parenthesized_expression "(bVar20)" ( identifier )) (goto_statement "goto LAB_0002d64e;" goto statement_identifier ;)) })) })) (expression_statement "pbVar18 = (byte *)*puVar12;" (assignment_expression "pbVar18 = (byte *)*puVar12" identifier = (cast_expression "(byte *)*puVar12" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar12" * identifier))) ;) (expression_statement "iVar14 = 5;" (assignment_expression "iVar14 = 5" identifier = number_literal) ;) (expression_statement "pbVar17 = pbVar18;" (assignment_expression "pbVar17 = pbVar18" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)".stab";" (assignment_expression "pbVar19 = (byte *)".stab"" identifier = (cast_expression "(byte *)".stab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".stab"" " string_content "))) ;) (do_statement "do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);" do (compound_statement "{\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            }" { (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar17 < *pbVar19;" (assignment_expression "bVar20 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar22 = *pbVar17 == *pbVar19;" (assignment_expression "bVar22 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar20 && !bVar22) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar22) == bVar20" identifier = (binary_expression "(!bVar20 && !bVar22) == bVar20" (parenthesized_expression "(!bVar20 && !bVar22)" ( (binary_expression "!bVar20 && !bVar22" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }" if (parenthesized_expression "(bVar20)" ( identifier )) (compound_statement "{\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }" { (expression_statement "sVar10 = strlen((char *)pbVar18);" (assignment_expression "sVar10 = strlen((char *)pbVar18)" identifier = (call_expression "strlen((char *)pbVar18)" identifier (argument_list "((char *)pbVar18)" ( (cast_expression "(char *)pbVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "iVar14 = 4;" (assignment_expression "iVar14 = 4" identifier = number_literal) ;) (expression_statement "bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;" (assignment_expression "bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff74" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff74" & identifier))) ;) (expression_statement "bVar22 = &stack0x00000000 == (undefined1 *)0x7c;" (assignment_expression "bVar22 = &stack0x00000000 == (undefined1 *)0x7c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x7c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x7c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar18 = pbVar18 + (sVar10 - 3);" (assignment_expression "pbVar18 = pbVar18 + (sVar10 - 3)" identifier = (binary_expression "pbVar18 + (sVar10 - 3)" identifier + (parenthesized_expression "(sVar10 - 3)" ( (binary_expression "sVar10 - 3" identifier - number_literal) )))) ;) (expression_statement "pbVar17 = &DAT_0004de1c;" (assignment_expression "pbVar17 = &DAT_0004de1c" identifier = (pointer_expression "&DAT_0004de1c" & identifier)) ;) (do_statement "do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);" do (compound_statement "{\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              }" { (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar18 < *pbVar17;" (assignment_expression "bVar20 = *pbVar18 < *pbVar17" identifier = (binary_expression "*pbVar18 < *pbVar17" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar17;" (assignment_expression "bVar22 = *pbVar18 == *pbVar17" identifier = (binary_expression "*pbVar18 == *pbVar17" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (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 )) ;) (if_statement "if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;" 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_0002d64e;" goto statement_identifier ;)) }) (else_clause "else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }" else (compound_statement "{\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }" { (expression_statement "iVar14 = 0xe;" (assignment_expression "iVar14 = 0xe" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)"$GDB_STRINGS$";" (assignment_expression "pbVar17 = (byte *)"$GDB_STRINGS$"" identifier = (cast_expression "(byte *)"$GDB_STRINGS$"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""$GDB_STRINGS$"" " string_content "))) ;) (do_statement "do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);" do (compound_statement "{\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              }" { (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar18 < *pbVar17;" (assignment_expression "bVar21 = *pbVar18 < *pbVar17" identifier = (binary_expression "*pbVar18 < *pbVar17" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar20 = *pbVar18 == *pbVar17;" (assignment_expression "bVar20 = *pbVar18 == *pbVar17" identifier = (binary_expression "*pbVar18 == *pbVar17" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (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 "(bVar20)" ( identifier )) ;) (if_statement "if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;" if (parenthesized_expression "((!bVar21 && !bVar20) == bVar21)" ( (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" ( (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0002d64e;" goto statement_identifier ;)) }))) (expression_statement "pbVar18 = (byte *)*puVar3;" (assignment_expression "pbVar18 = (byte *)*puVar3" identifier = (cast_expression "(byte *)*puVar3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier))) ;) (expression_statement "sVar10 = strlen((char *)pbVar18);" (assignment_expression "sVar10 = strlen((char *)pbVar18)" identifier = (call_expression "strlen((char *)pbVar18)" identifier (argument_list "((char *)pbVar18)" ( (cast_expression "(char *)pbVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "__s = (char *)xmalloc();" (assignment_expression "__s = (char *)xmalloc()" identifier = (cast_expression "(char *)xmalloc()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "memcpy(__s,pbVar18,sVar10 + 1);" (call_expression "memcpy(__s,pbVar18,sVar10 + 1)" identifier (argument_list "(__s,pbVar18,sVar10 + 1)" ( identifier , identifier , (binary_expression "sVar10 + 1" identifier + number_literal) ))) ;) (if_statement "if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }" if (parenthesized_expression "(sVar10 != 0)" ( (binary_expression "sVar10 != 0" identifier != number_literal) )) (compound_statement "{\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }" { (expression_statement "bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];" (assignment_expression "bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2]" identifier = (subscript_expression "puVar7[(uint)(byte)__s[sVar10 - 1] * 2]" identifier [ (binary_expression "(uint)(byte)__s[sVar10 - 1] * 2" (cast_expression "(uint)(byte)__s[sVar10 - 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)__s[sVar10 - 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "__s[sVar10 - 1]" identifier [ (binary_expression "sVar10 - 1" identifier - number_literal) ]))) * number_literal) ])) ;) (while_statement "while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }" while (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }" { (if_statement "if (sVar10 - 1 == 0) goto LAB_0002d408;" if (parenthesized_expression "(sVar10 - 1 == 0)" ( (binary_expression "sVar10 - 1 == 0" (binary_expression "sVar10 - 1" identifier - number_literal) == number_literal) )) (goto_statement "goto LAB_0002d408;" goto statement_identifier ;)) (expression_statement "bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];" (assignment_expression "bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2]" identifier = (subscript_expression "puVar7[(uint)(byte)__s[sVar10 - 2] * 2]" identifier [ (binary_expression "(uint)(byte)__s[sVar10 - 2] * 2" (cast_expression "(uint)(byte)__s[sVar10 - 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)__s[sVar10 - 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "__s[sVar10 - 2]" identifier [ (binary_expression "sVar10 - 2" identifier - number_literal) ]))) * number_literal) ])) ;) (expression_statement "sVar10 = sVar10 - 1;" (assignment_expression "sVar10 = sVar10 - 1" identifier = (binary_expression "sVar10 - 1" identifier - number_literal)) ;) })) (if_statement "if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }" if (parenthesized_expression "((sVar10 != 1) && (__s[sVar10 - 1] == '.'))" ( (binary_expression "(sVar10 != 1) && (__s[sVar10 - 1] == '.')" (parenthesized_expression "(sVar10 != 1)" ( (binary_expression "sVar10 != 1" identifier != number_literal) )) && (parenthesized_expression "(__s[sVar10 - 1] == '.')" ( (binary_expression "__s[sVar10 - 1] == '.'" (subscript_expression "__s[sVar10 - 1]" identifier [ (binary_expression "sVar10 - 1" identifier - number_literal) ]) == (char_literal "'.'" ' character ')) ))) )) (compound_statement "{\n                __s[sVar10 - 1] = '\0';\n              }" { (expression_statement "__s[sVar10 - 1] = '\0';" (assignment_expression "__s[sVar10 - 1] = '\0'" (subscript_expression "__s[sVar10 - 1]" identifier [ (binary_expression "sVar10 - 1" identifier - number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) })) (labeled_statement "LAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }" statement_identifier : (if_statement "if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }" if (parenthesized_expression "((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0)" ( (binary_expression "(*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0" (parenthesized_expression "(*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd)" ( (binary_expression "*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd" (binary_expression "*(int *)(*(int *)(iVar13 + 4) + 4) - 2U" (pointer_expression "*(int *)(*(int *)(iVar13 + 4) + 4)" * (cast_expression "(int *)(*(int *)(iVar13 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar13 + 4) + 4)" ( (binary_expression "*(int *)(iVar13 + 4) + 4" (pointer_expression "*(int *)(iVar13 + 4)" * (cast_expression "(int *)(iVar13 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))) + number_literal) )))) - number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }" { (expression_statement "sVar10 = strlen(__s);" (assignment_expression "sVar10 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "bVar20 = sVar10 < 5;" (assignment_expression "bVar20 = sVar10 < 5" identifier = (binary_expression "sVar10 < 5" identifier < number_literal)) ;) (expression_statement "bVar22 = sVar10 == 5;" (assignment_expression "bVar22 = sVar10 == 5" identifier = (binary_expression "sVar10 == 5" identifier == number_literal)) ;) (if_statement "if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }" if (parenthesized_expression "(5 < sVar10)" ( (binary_expression "5 < sVar10" number_literal < identifier) )) (compound_statement "{\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }" { (expression_statement "iVar14 = 5;" (assignment_expression "iVar14 = 5" identifier = number_literal) ;) (expression_statement "pbVar17 = pbVar18;" (assignment_expression "pbVar17 = pbVar18" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)".stab";" (assignment_expression "pbVar19 = (byte *)".stab"" identifier = (cast_expression "(byte *)".stab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".stab"" " string_content "))) ;) (do_statement "do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);" do (compound_statement "{\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                }" { (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar17 < *pbVar19;" (assignment_expression "bVar20 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar22 = *pbVar17 == *pbVar19;" (assignment_expression "bVar22 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar20 && !bVar22) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar22) == bVar20" identifier = (binary_expression "(!bVar20 && !bVar22) == bVar20" (parenthesized_expression "(!bVar20 && !bVar22)" ( (binary_expression "!bVar20 && !bVar22" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }" if (parenthesized_expression "(!bVar20)" ( (unary_expression "!bVar20" ! identifier) )) (compound_statement "{\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }" { (expression_statement "iVar14 = 0xe;" (assignment_expression "iVar14 = 0xe" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)"$GDB_SYMBOLS$";" (assignment_expression "pbVar17 = (byte *)"$GDB_SYMBOLS$"" identifier = (cast_expression "(byte *)"$GDB_SYMBOLS$"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""$GDB_SYMBOLS$"" " string_content "))) ;) (do_statement "do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);" do (compound_statement "{\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  }" { (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar18 < *pbVar17;" (assignment_expression "bVar21 = *pbVar18 < *pbVar17" identifier = (binary_expression "*pbVar18 < *pbVar17" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar20 = *pbVar18 == *pbVar17;" (assignment_expression "bVar20 = *pbVar18 == *pbVar17" identifier = (binary_expression "*pbVar18 == *pbVar17" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (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 "(bVar20)" ( identifier )) ;) (if_statement "if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }" if (parenthesized_expression "((!bVar21 && !bVar20) != bVar21)" ( (binary_expression "(!bVar21 && !bVar20) != bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" ( (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) != identifier) )) (compound_statement "{\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }" { (expression_statement "__s[5] = '\0';" (assignment_expression "__s[5] = '\0'" (subscript_expression "__s[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_0002d470;" goto statement_identifier ;) })) })) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00031760();" (call_expression "FUN_00031760()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0002d60e;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0002d470:\n            in_stack_ffffff7c = local_20;" statement_identifier : (expression_statement "in_stack_ffffff7c = local_20;" (assignment_expression "in_stack_ffffff7c = local_20" identifier = identifier) ;)) (expression_statement "iVar14 = bfd_get_unique_section_name();" (assignment_expression "iVar14 = bfd_get_unique_section_name()" identifier = (call_expression "bfd_get_unique_section_name()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }" if (parenthesized_expression "(((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0))" ( (binary_expression "((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)" (parenthesized_expression "((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))" ( (binary_expression "(iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0)" (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) || (parenthesized_expression "(puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0)" ( (comma_expression "puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0" (assignment_expression "puVar11 = (undefined4 *)bfd_make_section_anyway()" identifier = (cast_expression "(undefined4 *)bfd_make_section_anyway()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_make_section_anyway()" identifier (argument_list "()" ( ))))) , (binary_expression "puVar11 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) || (parenthesized_expression "(iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)" ( (comma_expression "iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0" (assignment_expression "iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1)" identifier (argument_list "(DAT_00091c3c,iVar14,1,1)" ( identifier , identifier , number_literal , number_literal )))) , (binary_expression "iVar14 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }" { (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00031760();" (call_expression "FUN_00031760()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0002d60e:\n              _DAT_000000a0 = local_5c;" statement_identifier : (expression_statement "_DAT_000000a0 = local_5c;" (assignment_expression "_DAT_000000a0 = local_5c" identifier = identifier) ;)) comment (expression_statement "pcVar6 = (code *)invalidInstructionException();" (assignment_expression "pcVar6 = (code *)invalidInstructionException()" identifier = (cast_expression "(code *)invalidInstructionException()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "invalidInstructionException()" identifier (argument_list "()" ( ))))) ;) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) })) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "uVar8 = puVar12[5];" (assignment_expression "uVar8 = puVar12[5]" identifier = (subscript_expression "puVar12[5]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(iVar14 + 0xc) = 3;" (assignment_expression "*(undefined1 *)(iVar14 + 0xc) = 3" (pointer_expression "*(undefined1 *)(iVar14 + 0xc)" * (cast_expression "(undefined1 *)(iVar14 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar14 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar14 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar14 + 0x18)" * (cast_expression "(undefined4 *)(iVar14 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x18)" ( (binary_expression "iVar14 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar14 + 0x14) = puVar11;" (assignment_expression "*(undefined4 **)(iVar14 + 0x14) = puVar11" (pointer_expression "*(undefined4 **)(iVar14 + 0x14)" * (cast_expression "(undefined4 **)(iVar14 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11[5] = uVar8;" (assignment_expression "puVar11[5] = uVar8" (subscript_expression "puVar11[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[7] = puVar12[7];" (assignment_expression "puVar11[7] = puVar12[7]" (subscript_expression "puVar11[7]" identifier [ number_literal ]) = (subscript_expression "puVar12[7]" identifier [ number_literal ])) ;) (expression_statement "*(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;" (assignment_expression "*(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1" (pointer_expression "*(byte *)(puVar11 + 6)" * (cast_expression "(byte *)(puVar11 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 6)" ( (binary_expression "puVar11 + 6" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1" (binary_expression "*(byte *)(puVar11 + 6) & 0xfe" (pointer_expression "*(byte *)(puVar11 + 6)" * (cast_expression "(byte *)(puVar11 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 6)" ( (binary_expression "puVar11 + 6" identifier + number_literal) )))) & number_literal) | (binary_expression "*(byte *)(puVar12 + 6) & 1" (pointer_expression "*(byte *)(puVar12 + 6)" * (cast_expression "(byte *)(puVar12 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 6)" ( (binary_expression "puVar12 + 6" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar8 = puVar12[8];" (assignment_expression "uVar8 = puVar12[8]" identifier = (subscript_expression "puVar12[8]" identifier [ number_literal ])) ;) (expression_statement "puVar11[9] = 0;" (assignment_expression "puVar11[9] = 0" (subscript_expression "puVar11[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar11[8] = uVar8;" (assignment_expression "puVar11[8] = uVar8" (subscript_expression "puVar11[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar8 = puVar12[0xe];" (assignment_expression "uVar8 = puVar12[0xe]" identifier = (subscript_expression "puVar12[0xe]" identifier [ number_literal ])) ;) (expression_statement "puVar11[0xf] = puVar11;" (assignment_expression "puVar11[0xf] = puVar11" (subscript_expression "puVar11[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[0xe] = uVar8;" (assignment_expression "puVar11[0xe] = uVar8" (subscript_expression "puVar11[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar8 = puVar12[0x10];" (assignment_expression "uVar8 = puVar12[0x10]" identifier = (subscript_expression "puVar12[0x10]" identifier [ number_literal ])) ;) (expression_statement "puVar11[0x12] = 0;" (assignment_expression "puVar11[0x12] = 0" (subscript_expression "puVar11[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar11[0x10] = uVar8;" (assignment_expression "puVar11[0x10] = uVar8" (subscript_expression "puVar11[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar14 = *(int *)(iVar13 + 4);" (assignment_expression "iVar14 = *(int *)(iVar13 + 4)" identifier = (pointer_expression "*(int *)(iVar13 + 4)" * (cast_expression "(int *)(iVar13 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar11[0x13] = 0;" (assignment_expression "puVar11[0x13] = 0" (subscript_expression "puVar11[0x13]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);" (call_expression "(**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11)" (parenthesized_expression "(**(code **)(iVar14 + 0xb4))" ( (pointer_expression "**(code **)(iVar14 + 0xb4)" * (pointer_expression "*(code **)(iVar14 + 0xb4)" * (cast_expression "(code **)(iVar14 + 0xb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0xb4)" ( (binary_expression "iVar14 + 0xb4" identifier + number_literal) ))))) )) (argument_list "(iVar13,puVar12,iVar13,puVar11)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar11[0x29] = puVar12[0x29];" (assignment_expression "puVar11[0x29] = puVar12[0x29]" (subscript_expression "puVar11[0x29]" identifier [ number_literal ]) = (subscript_expression "puVar12[0x29]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = local_5c[2];" (assignment_expression "iVar14 = local_5c[2]" identifier = (subscript_expression "local_5c[2]" identifier [ number_literal ])) ;) (expression_statement "puVar11[0x28] = local_5c;" (assignment_expression "puVar11[0x28] = local_5c" (subscript_expression "puVar11[0x28]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x29] = local_48;" (assignment_expression "puVar12[0x29] = local_48" (subscript_expression "puVar12[0x29]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*local_48 = 0;" (assignment_expression "*local_48 = 0" (pointer_expression "*local_48" * identifier) = number_literal) ;) (expression_statement "local_4c = local_4c + iVar14;" (assignment_expression "local_4c = local_4c + iVar14" identifier = (binary_expression "local_4c + iVar14" identifier + identifier)) ;) (expression_statement "puVar11[9] = puVar12[9] - iVar14;" (assignment_expression "puVar11[9] = puVar12[9] - iVar14" (subscript_expression "puVar11[9]" identifier [ number_literal ]) = (binary_expression "puVar12[9] - iVar14" (subscript_expression "puVar12[9]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "puVar12[9] = iVar14;" (assignment_expression "puVar12[9] = iVar14" (subscript_expression "puVar12[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[7] = local_4c;" (assignment_expression "puVar11[7] = local_4c" (subscript_expression "puVar11[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[8] = local_4c;" (assignment_expression "puVar11[8] = local_4c" (subscript_expression "puVar11[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12 = local_5c;" (assignment_expression "puVar12 = local_5c" identifier = identifier) ;) (expression_statement "iVar16 = iVar14;" (assignment_expression "iVar16 = iVar14" identifier = identifier) ;) (while_statement "while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }" { (expression_statement "puVar12[2] = iVar16 - iVar14;" (assignment_expression "puVar12[2] = iVar16 - iVar14" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = (binary_expression "iVar16 - iVar14" identifier - identifier)) ;) (if_statement "if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }" if (parenthesized_expression "(puVar12[1] == 1)" ( (binary_expression "puVar12[1] == 1" (subscript_expression "puVar12[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }" { (expression_statement "iVar4 = puVar12[4];" (assignment_expression "iVar4 = puVar12[4]" identifier = (subscript_expression "puVar12[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 **)(iVar4 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(iVar4 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(iVar4 + 0x3c)" * (cast_expression "(undefined4 **)(iVar4 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x3c)" ( (binary_expression "iVar4 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar4 + 0x38) = iVar16 - iVar14;" (assignment_expression "*(int *)(iVar4 + 0x38) = iVar16 - iVar14" (pointer_expression "*(int *)(iVar4 + 0x38)" * (cast_expression "(int *)(iVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) = (binary_expression "iVar16 - iVar14" identifier - identifier)) ;) })) (expression_statement "puVar12 = (undefined4 *)*puVar12;" (assignment_expression "puVar12 = (undefined4 *)*puVar12" identifier = (cast_expression "(undefined4 *)*puVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar12" * identifier))) ;) (if_statement "if (puVar12 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar12 == (undefined4 *)0x0)" ( (binary_expression "puVar12 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = puVar12[2];" (assignment_expression "iVar16 = puVar12[2]" identifier = (subscript_expression "puVar12[2]" identifier [ number_literal ])) ;) })) (expression_statement "puVar5 = (undefined4 *)*local_5c;" (assignment_expression "puVar5 = (undefined4 *)*local_5c" identifier = (cast_expression "(undefined4 *)*local_5c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_5c" * identifier))) ;) (expression_statement "local_58 = local_70;" (assignment_expression "local_58 = local_70" identifier = identifier) ;) (expression_statement "local_64 = local_68;" (assignment_expression "local_64 = local_68" identifier = identifier) ;) (expression_statement "puVar12 = puVar11;" (assignment_expression "puVar12 = puVar11" identifier = identifier) ;) }))) (if_statement "if (puVar5 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" ( (binary_expression "puVar5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "local_48 = local_5c;" (assignment_expression "local_48 = local_5c" identifier = identifier) ;) (expression_statement "local_5c = puVar5;" (assignment_expression "local_5c = puVar5" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "puVar3 = (undefined4 *)puVar3[3];" (assignment_expression "puVar3 = (undefined4 *)puVar3[3]" identifier = (cast_expression "(undefined4 *)puVar3[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar2 = (undefined4 *)((int)puVar2 + -1);" (assignment_expression "puVar2 = (undefined4 *)((int)puVar2 + -1)" identifier = (cast_expression "(undefined4 *)((int)puVar2 + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + -1)" ( (binary_expression "(int)puVar2 + -1" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar12 = puVar3;" (assignment_expression "puVar12 = puVar3" identifier = identifier) ;) (expression_statement "puVar5 = puVar2;" (assignment_expression "puVar5 = puVar2" identifier = identifier) ;) })) })) (expression_statement "local_54 = &DAT_00091c20;" (assignment_expression "local_54 = &DAT_00091c20" identifier = (pointer_expression "&DAT_00091c20" & identifier)) ;) (expression_statement "iVar13 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))();" (assignment_expression "iVar13 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))()" identifier = (call_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))()" (parenthesized_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))" ( (pointer_expression "**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178)" * (pointer_expression "*(code **)(*(int *)(DAT_00091c50 + 4) + 0x178)" * (cast_expression "(code **)(*(int *)(DAT_00091c50 + 4) + 0x178)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_00091c50 + 4) + 0x178)" ( (binary_expression "*(int *)(DAT_00091c50 + 4) + 0x178" (pointer_expression "*(int *)(DAT_00091c50 + 4)" * (cast_expression "(int *)(DAT_00091c50 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 4)" ( (binary_expression "DAT_00091c50 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar13 != 0) {\n    return;\n  }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar13 = bfd_get_error();" (assignment_expression "iVar13 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar13 == 0) {\n    xexit();\n    if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    /* WARNING: Does not return */\n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }\n    *(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;\n    return;\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    xexit();\n    if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    /* WARNING: Does not return */\n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }\n    *(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;\n    return;\n  }" { (expression_statement "xexit();" (call_expression "xexit()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    /* WARNING: Does not return */\n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }" if (parenthesized_expression "((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0))" ( (binary_expression "(local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)" (parenthesized_expression "(local_54 == (undefined4 *)0x0)" ( (binary_expression "local_54 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)" ( (comma_expression "local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0" (assignment_expression "local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14)" identifier = (cast_expression "(undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_hash_allocate(in_stack_ffffff7c,0x14)" identifier (argument_list "(in_stack_ffffff7c,0x14)" ( identifier , number_literal ))))) , (binary_expression "local_54 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    /* WARNING: Does not return */\n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }" { (expression_statement "uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);" (assignment_expression "uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0)" identifier = (call_expression "dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0)" identifier (argument_list "(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0)" ( number_literal , (string_literal ""%F%P: bfd_hash_allocate failed creating symbol %s\n"" " string_content escape_sequence ") , number_literal , number_literal )))) ;) (expression_statement "FUN_00031760(uVar8,0x2d795);" (call_expression "FUN_00031760(uVar8,0x2d795)" identifier (argument_list "(uVar8,0x2d795)" ( identifier , number_literal ))) ;) (expression_statement "_DAT_00000010 = _DAT_00000010 & 0xfeff;" (assignment_expression "_DAT_00000010 = _DAT_00000010 & 0xfeff" identifier = (binary_expression "_DAT_00000010 & 0xfeff" identifier & number_literal)) ;) comment (expression_statement "pcVar6 = (code *)invalidInstructionException();" (assignment_expression "pcVar6 = (code *)invalidInstructionException()" identifier = (cast_expression "(code *)invalidInstructionException()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "invalidInstructionException()" identifier (argument_list "()" ( ))))) ;) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) })) (expression_statement "*(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;" (assignment_expression "*(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00" (pointer_expression "*(ushort *)(local_54 + 4)" * (cast_expression "(ushort *)(local_54 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 4)" ( (binary_expression "local_54 + 4" identifier + number_literal) )))) = (binary_expression "*(ushort *)(local_54 + 4) & 0xfe00" (pointer_expression "*(ushort *)(local_54 + 4)" * (cast_expression "(ushort *)(local_54 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 4)" ( (binary_expression "local_54 + 4" identifier + number_literal) )))) & number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00031760();" (call_expression "FUN_00031760()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Heritage AFTER dead removal. Example location: r0x00091c50 : 0x0002d690 */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n/* WARNING: Restarted to delay deadcode elimination for space: ram */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid ldwrite(void)\n\n{\n  byte bVar1;\n  bfd_section *pbVar2;\n  bfd_section *pbVar3;\n  flagword fVar4;\n  bfd_vma bVar5;\n  bfd_target *pbVar6;\n  bfd_section *pbVar7;\n  code *pcVar8;\n  undefined *puVar9;\n  bfd *pbVar10;\n  uint uVar11;\n  size_t sVar12;\n  char *pcVar13;\n  sec_ptr pbVar14;\n  bfd_section *pbVar15;\n  bfd_boolean bVar16;\n  int iVar17;\n  uint uVar18;\n  sec_ptr pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  bool bVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  int *in_stack_ffffff7c;\n  uint local_70;\n  uint local_6c;\n  bfd_size_type local_68;\n  bfd_size_type local_64;\n  bfd_section *local_5c;\n  uint local_58;\n  bfd_link_info *local_54;\n  bfd_vma local_4c;\n  bfd_section *local_48;\n  int count;\n  undefined4 uStack_14;\n  \n  bVar26 = 0;\n  uStack_14 = 0x2d1e9;\n  bfd_set_error();\n  lang_clear_os_map();\n  lang_for_each_statement(build_link_order);\n  pbVar10 = link_info.output_bfd;\n  puVar9 = PTR__sch_istable_00090fa8;\n  if ((config.split_by_reloc & config.split_by_file) != 0xffffffff) {\n    pbVar2 = (bfd_section *)(link_info.output_bfd)->section_count;\n    pbVar3 = (link_info.output_bfd)->sections;\n    pbVar7 = pbVar3;\n    pbVar15 = pbVar2;\n    while ((pbVar15 != (bfd_section *)0x0 && (pbVar7 != (bfd_section *)0x0))) {\n      count = 0;\n      local_4c = pbVar3->vma;\n      if ((pbVar3->map_head).s != (bfd_section *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (bfd_section *)0x0;\n        pbVar19 = pbVar3;\n        local_5c = (pbVar3->map_head).s;\n        do {\n          uVar18 = local_6c;\n          if (local_5c->id == 1) {\n            local_70 = 0;\n            pbVar15 = local_5c->prev;\n            if ((link_info._1_1_ & 0x20) == 0) {\n              local_70 = pbVar15->lineno_count;\n            }\n            uVar11 = 0;\n            if ((link_info._0_1_ & 3) == 2) {\n              uVar11 = pbVar15->reloc_count;\n              local_6c = local_6c + uVar11;\n            }\n            local_68 = pbVar15->size;\n            uVar18 = local_6c;\n            local_6c = uVar11;\n          }\n          else if ((link_info._0_1_ & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar11 = (uint)(local_5c->id - 3 < 2);\n            uVar18 = local_6c + uVar11;\n            local_6c = uVar11;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (bfd_section *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_6c = uVar18;\n          }\n          else {\n            bVar23 = config.split_by_reloc < uVar18;\n            bVar25 = config.split_by_reloc == uVar18;\n            if (uVar18 < config.split_by_reloc) {\n              uVar11 = local_70 + local_58;\n              bVar23 = config.split_by_reloc < uVar11;\n              bVar25 = config.split_by_reloc == uVar11;\n              if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }\n            }\n            pbVar21 = (byte *)pbVar19->name;\n            iVar17 = 5;\n            pbVar20 = pbVar21;\n            pbVar22 = (byte *)".stab";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = *pbVar20 < *pbVar22;\n              bVar25 = *pbVar20 == *pbVar22;\n              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (bVar23) {\n              sVar12 = strlen((char *)pbVar21);\n              iVar17 = 4;\n              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar21 = pbVar21 + (sVar12 - 3);\n              pbVar20 = &DAT_0004de1c;\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;\n            }\n            else {\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }\n            pbVar21 = (byte *)pbVar3->name;\n            sVar12 = strlen((char *)pbVar21);\n            pcVar13 = (char *)xmalloc();\n            memcpy(pcVar13,pbVar21,sVar12 + 1);\n            if (sVar12 != 0) {\n              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }\n              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = &count;\n            iVar17 = bfd_get_unique_section_name();\n            if (((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)) {\n              pcVar13 = (char *)dcgettext();\n              einfo(pcVar13);\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar8 = (code *)invalidInstructionException();\n              (*pcVar8)();\n            }\n            free(pcVar13);\n            fVar4 = pbVar19->flags;\n            *(undefined1 *)(iVar17 + 0xc) = 3;\n            *(undefined4 *)(iVar17 + 0x18) = 0;\n            *(sec_ptr *)(iVar17 + 0x14) = pbVar14;\n            pbVar14->flags = fVar4;\n            pbVar14->vma = pbVar19->vma;\n            pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;\n            bVar5 = pbVar19->lma;\n            pbVar14->size = 0;\n            pbVar14->lma = bVar5;\n            bVar5 = pbVar19->output_offset;\n            pbVar14->output_section = pbVar14;\n            pbVar14->output_offset = bVar5;\n            uVar18 = pbVar19->alignment_power;\n            pbVar14->orelocation = (reloc_cache_entry **)0x0;\n            pbVar14->alignment_power = uVar18;\n            pbVar6 = pbVar10->xvec;\n            pbVar14->reloc_count = 0;\n            (*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14);\n            pbVar14->map_tail = pbVar19->map_tail;\n            uVar18 = local_5c->index;\n            (pbVar14->map_head).s = local_5c;\n            (pbVar19->map_tail).link_order = (bfd_link_order *)local_48;\n            local_48->name = (char *)0x0;\n            local_4c = local_4c + uVar18;\n            pbVar14->size = pbVar19->size - uVar18;\n            pbVar19->size = uVar18;\n            pbVar14->vma = local_4c;\n            pbVar14->lma = local_4c;\n            pbVar15 = local_5c;\n            uVar11 = uVar18;\n            while( true ) {\n              pbVar15->index = uVar11 - uVar18;\n              if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }\n              pbVar15 = (bfd_section *)pbVar15->name;\n              if (pbVar15 == (bfd_section *)0x0) break;\n              uVar11 = pbVar15->index;\n            }\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_58 = local_70;\n            local_64 = local_68;\n            pbVar19 = pbVar14;\n          }\n          if (pbVar15 == (bfd_section *)0x0) break;\n          local_48 = local_5c;\n          local_5c = pbVar15;\n        } while( true );\n      }\n      pbVar3 = pbVar3->next;\n      pbVar2 = (bfd_section *)((int)&pbVar2[-1].map_tail + 3);\n      pbVar15 = pbVar3;\n      pbVar7 = pbVar2;\n    }\n  }\n  local_54 = &link_info;\n  bVar16 = (*(link_info.output_bfd)->xvec->_bfd_final_link)(link_info.output_bfd,&link_info);\n  if (bVar16 != 0) {\n    return;\n  }\n  iVar17 = bfd_get_error();\n  if (iVar17 == 0) {\n    xexit();\n    if ((local_54 == (bfd_link_info *)0x0) &&\n       (local_54 = (bfd_link_info *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (bfd_link_info *)0x0)) {\n      pcVar13 = (char *)dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      einfo(pcVar13,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    /* WARNING: Does not return */\n      pcVar8 = (code *)invalidInstructionException();\n      (*pcVar8)();\n    }\n    *(ushort *)&local_54->stacksize = (ushort)local_54->stacksize & 0xfe00;\n    return;\n  }\n  pcVar13 = (char *)dcgettext();\n  einfo(pcVar13);\n  return;\n}\n\n" comment comment comment comment comment (function_definition "void ldwrite(void)\n\n{\n  byte bVar1;\n  bfd_section *pbVar2;\n  bfd_section *pbVar3;\n  flagword fVar4;\n  bfd_vma bVar5;\n  bfd_target *pbVar6;\n  bfd_section *pbVar7;\n  code *pcVar8;\n  undefined *puVar9;\n  bfd *pbVar10;\n  uint uVar11;\n  size_t sVar12;\n  char *pcVar13;\n  sec_ptr pbVar14;\n  bfd_section *pbVar15;\n  bfd_boolean bVar16;\n  int iVar17;\n  uint uVar18;\n  sec_ptr pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  bool bVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  int *in_stack_ffffff7c;\n  uint local_70;\n  uint local_6c;\n  bfd_size_type local_68;\n  bfd_size_type local_64;\n  bfd_section *local_5c;\n  uint local_58;\n  bfd_link_info *local_54;\n  bfd_vma local_4c;\n  bfd_section *local_48;\n  int count;\n  undefined4 uStack_14;\n  \n  bVar26 = 0;\n  uStack_14 = 0x2d1e9;\n  bfd_set_error();\n  lang_clear_os_map();\n  lang_for_each_statement(build_link_order);\n  pbVar10 = link_info.output_bfd;\n  puVar9 = PTR__sch_istable_00090fa8;\n  if ((config.split_by_reloc & config.split_by_file) != 0xffffffff) {\n    pbVar2 = (bfd_section *)(link_info.output_bfd)->section_count;\n    pbVar3 = (link_info.output_bfd)->sections;\n    pbVar7 = pbVar3;\n    pbVar15 = pbVar2;\n    while ((pbVar15 != (bfd_section *)0x0 && (pbVar7 != (bfd_section *)0x0))) {\n      count = 0;\n      local_4c = pbVar3->vma;\n      if ((pbVar3->map_head).s != (bfd_section *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (bfd_section *)0x0;\n        pbVar19 = pbVar3;\n        local_5c = (pbVar3->map_head).s;\n        do {\n          uVar18 = local_6c;\n          if (local_5c->id == 1) {\n            local_70 = 0;\n            pbVar15 = local_5c->prev;\n            if ((link_info._1_1_ & 0x20) == 0) {\n              local_70 = pbVar15->lineno_count;\n            }\n            uVar11 = 0;\n            if ((link_info._0_1_ & 3) == 2) {\n              uVar11 = pbVar15->reloc_count;\n              local_6c = local_6c + uVar11;\n            }\n            local_68 = pbVar15->size;\n            uVar18 = local_6c;\n            local_6c = uVar11;\n          }\n          else if ((link_info._0_1_ & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar11 = (uint)(local_5c->id - 3 < 2);\n            uVar18 = local_6c + uVar11;\n            local_6c = uVar11;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (bfd_section *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_6c = uVar18;\n          }\n          else {\n            bVar23 = config.split_by_reloc < uVar18;\n            bVar25 = config.split_by_reloc == uVar18;\n            if (uVar18 < config.split_by_reloc) {\n              uVar11 = local_70 + local_58;\n              bVar23 = config.split_by_reloc < uVar11;\n              bVar25 = config.split_by_reloc == uVar11;\n              if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }\n            }\n            pbVar21 = (byte *)pbVar19->name;\n            iVar17 = 5;\n            pbVar20 = pbVar21;\n            pbVar22 = (byte *)".stab";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = *pbVar20 < *pbVar22;\n              bVar25 = *pbVar20 == *pbVar22;\n              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (bVar23) {\n              sVar12 = strlen((char *)pbVar21);\n              iVar17 = 4;\n              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar21 = pbVar21 + (sVar12 - 3);\n              pbVar20 = &DAT_0004de1c;\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;\n            }\n            else {\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }\n            pbVar21 = (byte *)pbVar3->name;\n            sVar12 = strlen((char *)pbVar21);\n            pcVar13 = (char *)xmalloc();\n            memcpy(pcVar13,pbVar21,sVar12 + 1);\n            if (sVar12 != 0) {\n              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }\n              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = &count;\n            iVar17 = bfd_get_unique_section_name();\n            if (((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)) {\n              pcVar13 = (char *)dcgettext();\n              einfo(pcVar13);\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar8 = (code *)invalidInstructionException();\n              (*pcVar8)();\n            }\n            free(pcVar13);\n            fVar4 = pbVar19->flags;\n            *(undefined1 *)(iVar17 + 0xc) = 3;\n            *(undefined4 *)(iVar17 + 0x18) = 0;\n            *(sec_ptr *)(iVar17 + 0x14) = pbVar14;\n            pbVar14->flags = fVar4;\n            pbVar14->vma = pbVar19->vma;\n            pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;\n            bVar5 = pbVar19->lma;\n            pbVar14->size = 0;\n            pbVar14->lma = bVar5;\n            bVar5 = pbVar19->output_offset;\n            pbVar14->output_section = pbVar14;\n            pbVar14->output_offset = bVar5;\n            uVar18 = pbVar19->alignment_power;\n            pbVar14->orelocation = (reloc_cache_entry **)0x0;\n            pbVar14->alignment_power = uVar18;\n            pbVar6 = pbVar10->xvec;\n            pbVar14->reloc_count = 0;\n            (*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14);\n            pbVar14->map_tail = pbVar19->map_tail;\n            uVar18 = local_5c->index;\n            (pbVar14->map_head).s = local_5c;\n            (pbVar19->map_tail).link_order = (bfd_link_order *)local_48;\n            local_48->name = (char *)0x0;\n            local_4c = local_4c + uVar18;\n            pbVar14->size = pbVar19->size - uVar18;\n            pbVar19->size = uVar18;\n            pbVar14->vma = local_4c;\n            pbVar14->lma = local_4c;\n            pbVar15 = local_5c;\n            uVar11 = uVar18;\n            while( true ) {\n              pbVar15->index = uVar11 - uVar18;\n              if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }\n              pbVar15 = (bfd_section *)pbVar15->name;\n              if (pbVar15 == (bfd_section *)0x0) break;\n              uVar11 = pbVar15->index;\n            }\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_58 = local_70;\n            local_64 = local_68;\n            pbVar19 = pbVar14;\n          }\n          if (pbVar15 == (bfd_section *)0x0) break;\n          local_48 = local_5c;\n          local_5c = pbVar15;\n        } while( true );\n      }\n      pbVar3 = pbVar3->next;\n      pbVar2 = (bfd_section *)((int)&pbVar2[-1].map_tail + 3);\n      pbVar15 = pbVar3;\n      pbVar7 = pbVar2;\n    }\n  }\n  local_54 = &link_info;\n  bVar16 = (*(link_info.output_bfd)->xvec->_bfd_final_link)(link_info.output_bfd,&link_info);\n  if (bVar16 != 0) {\n    return;\n  }\n  iVar17 = bfd_get_error();\n  if (iVar17 == 0) {\n    xexit();\n    if ((local_54 == (bfd_link_info *)0x0) &&\n       (local_54 = (bfd_link_info *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (bfd_link_info *)0x0)) {\n      pcVar13 = (char *)dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      einfo(pcVar13,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    /* WARNING: Does not return */\n      pcVar8 = (code *)invalidInstructionException();\n      (*pcVar8)();\n    }\n    *(ushort *)&local_54->stacksize = (ushort)local_54->stacksize & 0xfe00;\n    return;\n  }\n  pcVar13 = (char *)dcgettext();\n  einfo(pcVar13);\n  return;\n}" primitive_type (function_declarator "ldwrite(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  bfd_section *pbVar2;\n  bfd_section *pbVar3;\n  flagword fVar4;\n  bfd_vma bVar5;\n  bfd_target *pbVar6;\n  bfd_section *pbVar7;\n  code *pcVar8;\n  undefined *puVar9;\n  bfd *pbVar10;\n  uint uVar11;\n  size_t sVar12;\n  char *pcVar13;\n  sec_ptr pbVar14;\n  bfd_section *pbVar15;\n  bfd_boolean bVar16;\n  int iVar17;\n  uint uVar18;\n  sec_ptr pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  bool bVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  int *in_stack_ffffff7c;\n  uint local_70;\n  uint local_6c;\n  bfd_size_type local_68;\n  bfd_size_type local_64;\n  bfd_section *local_5c;\n  uint local_58;\n  bfd_link_info *local_54;\n  bfd_vma local_4c;\n  bfd_section *local_48;\n  int count;\n  undefined4 uStack_14;\n  \n  bVar26 = 0;\n  uStack_14 = 0x2d1e9;\n  bfd_set_error();\n  lang_clear_os_map();\n  lang_for_each_statement(build_link_order);\n  pbVar10 = link_info.output_bfd;\n  puVar9 = PTR__sch_istable_00090fa8;\n  if ((config.split_by_reloc & config.split_by_file) != 0xffffffff) {\n    pbVar2 = (bfd_section *)(link_info.output_bfd)->section_count;\n    pbVar3 = (link_info.output_bfd)->sections;\n    pbVar7 = pbVar3;\n    pbVar15 = pbVar2;\n    while ((pbVar15 != (bfd_section *)0x0 && (pbVar7 != (bfd_section *)0x0))) {\n      count = 0;\n      local_4c = pbVar3->vma;\n      if ((pbVar3->map_head).s != (bfd_section *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (bfd_section *)0x0;\n        pbVar19 = pbVar3;\n        local_5c = (pbVar3->map_head).s;\n        do {\n          uVar18 = local_6c;\n          if (local_5c->id == 1) {\n            local_70 = 0;\n            pbVar15 = local_5c->prev;\n            if ((link_info._1_1_ & 0x20) == 0) {\n              local_70 = pbVar15->lineno_count;\n            }\n            uVar11 = 0;\n            if ((link_info._0_1_ & 3) == 2) {\n              uVar11 = pbVar15->reloc_count;\n              local_6c = local_6c + uVar11;\n            }\n            local_68 = pbVar15->size;\n            uVar18 = local_6c;\n            local_6c = uVar11;\n          }\n          else if ((link_info._0_1_ & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar11 = (uint)(local_5c->id - 3 < 2);\n            uVar18 = local_6c + uVar11;\n            local_6c = uVar11;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (bfd_section *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_6c = uVar18;\n          }\n          else {\n            bVar23 = config.split_by_reloc < uVar18;\n            bVar25 = config.split_by_reloc == uVar18;\n            if (uVar18 < config.split_by_reloc) {\n              uVar11 = local_70 + local_58;\n              bVar23 = config.split_by_reloc < uVar11;\n              bVar25 = config.split_by_reloc == uVar11;\n              if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }\n            }\n            pbVar21 = (byte *)pbVar19->name;\n            iVar17 = 5;\n            pbVar20 = pbVar21;\n            pbVar22 = (byte *)".stab";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = *pbVar20 < *pbVar22;\n              bVar25 = *pbVar20 == *pbVar22;\n              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (bVar23) {\n              sVar12 = strlen((char *)pbVar21);\n              iVar17 = 4;\n              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar21 = pbVar21 + (sVar12 - 3);\n              pbVar20 = &DAT_0004de1c;\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;\n            }\n            else {\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }\n            pbVar21 = (byte *)pbVar3->name;\n            sVar12 = strlen((char *)pbVar21);\n            pcVar13 = (char *)xmalloc();\n            memcpy(pcVar13,pbVar21,sVar12 + 1);\n            if (sVar12 != 0) {\n              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }\n              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = &count;\n            iVar17 = bfd_get_unique_section_name();\n            if (((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)) {\n              pcVar13 = (char *)dcgettext();\n              einfo(pcVar13);\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar8 = (code *)invalidInstructionException();\n              (*pcVar8)();\n            }\n            free(pcVar13);\n            fVar4 = pbVar19->flags;\n            *(undefined1 *)(iVar17 + 0xc) = 3;\n            *(undefined4 *)(iVar17 + 0x18) = 0;\n            *(sec_ptr *)(iVar17 + 0x14) = pbVar14;\n            pbVar14->flags = fVar4;\n            pbVar14->vma = pbVar19->vma;\n            pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;\n            bVar5 = pbVar19->lma;\n            pbVar14->size = 0;\n            pbVar14->lma = bVar5;\n            bVar5 = pbVar19->output_offset;\n            pbVar14->output_section = pbVar14;\n            pbVar14->output_offset = bVar5;\n            uVar18 = pbVar19->alignment_power;\n            pbVar14->orelocation = (reloc_cache_entry **)0x0;\n            pbVar14->alignment_power = uVar18;\n            pbVar6 = pbVar10->xvec;\n            pbVar14->reloc_count = 0;\n            (*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14);\n            pbVar14->map_tail = pbVar19->map_tail;\n            uVar18 = local_5c->index;\n            (pbVar14->map_head).s = local_5c;\n            (pbVar19->map_tail).link_order = (bfd_link_order *)local_48;\n            local_48->name = (char *)0x0;\n            local_4c = local_4c + uVar18;\n            pbVar14->size = pbVar19->size - uVar18;\n            pbVar19->size = uVar18;\n            pbVar14->vma = local_4c;\n            pbVar14->lma = local_4c;\n            pbVar15 = local_5c;\n            uVar11 = uVar18;\n            while( true ) {\n              pbVar15->index = uVar11 - uVar18;\n              if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }\n              pbVar15 = (bfd_section *)pbVar15->name;\n              if (pbVar15 == (bfd_section *)0x0) break;\n              uVar11 = pbVar15->index;\n            }\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_58 = local_70;\n            local_64 = local_68;\n            pbVar19 = pbVar14;\n          }\n          if (pbVar15 == (bfd_section *)0x0) break;\n          local_48 = local_5c;\n          local_5c = pbVar15;\n        } while( true );\n      }\n      pbVar3 = pbVar3->next;\n      pbVar2 = (bfd_section *)((int)&pbVar2[-1].map_tail + 3);\n      pbVar15 = pbVar3;\n      pbVar7 = pbVar2;\n    }\n  }\n  local_54 = &link_info;\n  bVar16 = (*(link_info.output_bfd)->xvec->_bfd_final_link)(link_info.output_bfd,&link_info);\n  if (bVar16 != 0) {\n    return;\n  }\n  iVar17 = bfd_get_error();\n  if (iVar17 == 0) {\n    xexit();\n    if ((local_54 == (bfd_link_info *)0x0) &&\n       (local_54 = (bfd_link_info *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (bfd_link_info *)0x0)) {\n      pcVar13 = (char *)dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      einfo(pcVar13,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    /* WARNING: Does not return */\n      pcVar8 = (code *)invalidInstructionException();\n      (*pcVar8)();\n    }\n    *(ushort *)&local_54->stacksize = (ushort)local_54->stacksize & 0xfe00;\n    return;\n  }\n  pcVar13 = (char *)dcgettext();\n  einfo(pcVar13);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bfd_section *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "bfd_section *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "flagword fVar4;" type_identifier identifier ;) (declaration "bfd_vma bVar5;" type_identifier identifier ;) (declaration "bfd_target *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "bfd_section *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "bfd *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "sec_ptr pbVar14;" type_identifier identifier ;) (declaration "bfd_section *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "bfd_boolean bVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "sec_ptr pbVar19;" type_identifier identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "byte bVar26;" type_identifier identifier ;) (declaration "int *in_stack_ffffff7c;" primitive_type (pointer_declarator "*in_stack_ffffff7c" * identifier) ;) (declaration "uint local_70;" type_identifier identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "bfd_size_type local_68;" type_identifier identifier ;) (declaration "bfd_size_type local_64;" type_identifier identifier ;) (declaration "bfd_section *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "bfd_link_info *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "bfd_vma local_4c;" type_identifier identifier ;) (declaration "bfd_section *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "int count;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar26 = 0;" (assignment_expression "bVar26 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x2d1e9;" (assignment_expression "uStack_14 = 0x2d1e9" identifier = number_literal) ;) (expression_statement "bfd_set_error();" (call_expression "bfd_set_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "lang_clear_os_map();" (call_expression "lang_clear_os_map()" identifier (argument_list "()" ( ))) ;) (expression_statement "lang_for_each_statement(build_link_order);" (call_expression "lang_for_each_statement(build_link_order)" identifier (argument_list "(build_link_order)" ( identifier ))) ;) (expression_statement "pbVar10 = link_info.output_bfd;" (assignment_expression "pbVar10 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) (expression_statement "puVar9 = PTR__sch_istable_00090fa8;" (assignment_expression "puVar9 = PTR__sch_istable_00090fa8" identifier = identifier) ;) (if_statement "if ((config.split_by_reloc & config.split_by_file) != 0xffffffff) {\n    pbVar2 = (bfd_section *)(link_info.output_bfd)->section_count;\n    pbVar3 = (link_info.output_bfd)->sections;\n    pbVar7 = pbVar3;\n    pbVar15 = pbVar2;\n    while ((pbVar15 != (bfd_section *)0x0 && (pbVar7 != (bfd_section *)0x0))) {\n      count = 0;\n      local_4c = pbVar3->vma;\n      if ((pbVar3->map_head).s != (bfd_section *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (bfd_section *)0x0;\n        pbVar19 = pbVar3;\n        local_5c = (pbVar3->map_head).s;\n        do {\n          uVar18 = local_6c;\n          if (local_5c->id == 1) {\n            local_70 = 0;\n            pbVar15 = local_5c->prev;\n            if ((link_info._1_1_ & 0x20) == 0) {\n              local_70 = pbVar15->lineno_count;\n            }\n            uVar11 = 0;\n            if ((link_info._0_1_ & 3) == 2) {\n              uVar11 = pbVar15->reloc_count;\n              local_6c = local_6c + uVar11;\n            }\n            local_68 = pbVar15->size;\n            uVar18 = local_6c;\n            local_6c = uVar11;\n          }\n          else if ((link_info._0_1_ & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar11 = (uint)(local_5c->id - 3 < 2);\n            uVar18 = local_6c + uVar11;\n            local_6c = uVar11;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (bfd_section *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_6c = uVar18;\n          }\n          else {\n            bVar23 = config.split_by_reloc < uVar18;\n            bVar25 = config.split_by_reloc == uVar18;\n            if (uVar18 < config.split_by_reloc) {\n              uVar11 = local_70 + local_58;\n              bVar23 = config.split_by_reloc < uVar11;\n              bVar25 = config.split_by_reloc == uVar11;\n              if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }\n            }\n            pbVar21 = (byte *)pbVar19->name;\n            iVar17 = 5;\n            pbVar20 = pbVar21;\n            pbVar22 = (byte *)".stab";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = *pbVar20 < *pbVar22;\n              bVar25 = *pbVar20 == *pbVar22;\n              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (bVar23) {\n              sVar12 = strlen((char *)pbVar21);\n              iVar17 = 4;\n              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar21 = pbVar21 + (sVar12 - 3);\n              pbVar20 = &DAT_0004de1c;\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;\n            }\n            else {\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }\n            pbVar21 = (byte *)pbVar3->name;\n            sVar12 = strlen((char *)pbVar21);\n            pcVar13 = (char *)xmalloc();\n            memcpy(pcVar13,pbVar21,sVar12 + 1);\n            if (sVar12 != 0) {\n              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }\n              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = &count;\n            iVar17 = bfd_get_unique_section_name();\n            if (((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)) {\n              pcVar13 = (char *)dcgettext();\n              einfo(pcVar13);\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar8 = (code *)invalidInstructionException();\n              (*pcVar8)();\n            }\n            free(pcVar13);\n            fVar4 = pbVar19->flags;\n            *(undefined1 *)(iVar17 + 0xc) = 3;\n            *(undefined4 *)(iVar17 + 0x18) = 0;\n            *(sec_ptr *)(iVar17 + 0x14) = pbVar14;\n            pbVar14->flags = fVar4;\n            pbVar14->vma = pbVar19->vma;\n            pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;\n            bVar5 = pbVar19->lma;\n            pbVar14->size = 0;\n            pbVar14->lma = bVar5;\n            bVar5 = pbVar19->output_offset;\n            pbVar14->output_section = pbVar14;\n            pbVar14->output_offset = bVar5;\n            uVar18 = pbVar19->alignment_power;\n            pbVar14->orelocation = (reloc_cache_entry **)0x0;\n            pbVar14->alignment_power = uVar18;\n            pbVar6 = pbVar10->xvec;\n            pbVar14->reloc_count = 0;\n            (*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14);\n            pbVar14->map_tail = pbVar19->map_tail;\n            uVar18 = local_5c->index;\n            (pbVar14->map_head).s = local_5c;\n            (pbVar19->map_tail).link_order = (bfd_link_order *)local_48;\n            local_48->name = (char *)0x0;\n            local_4c = local_4c + uVar18;\n            pbVar14->size = pbVar19->size - uVar18;\n            pbVar19->size = uVar18;\n            pbVar14->vma = local_4c;\n            pbVar14->lma = local_4c;\n            pbVar15 = local_5c;\n            uVar11 = uVar18;\n            while( true ) {\n              pbVar15->index = uVar11 - uVar18;\n              if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }\n              pbVar15 = (bfd_section *)pbVar15->name;\n              if (pbVar15 == (bfd_section *)0x0) break;\n              uVar11 = pbVar15->index;\n            }\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_58 = local_70;\n            local_64 = local_68;\n            pbVar19 = pbVar14;\n          }\n          if (pbVar15 == (bfd_section *)0x0) break;\n          local_48 = local_5c;\n          local_5c = pbVar15;\n        } while( true );\n      }\n      pbVar3 = pbVar3->next;\n      pbVar2 = (bfd_section *)((int)&pbVar2[-1].map_tail + 3);\n      pbVar15 = pbVar3;\n      pbVar7 = pbVar2;\n    }\n  }" if (parenthesized_expression "((config.split_by_reloc & config.split_by_file) != 0xffffffff)" ( (binary_expression "(config.split_by_reloc & config.split_by_file) != 0xffffffff" (parenthesized_expression "(config.split_by_reloc & config.split_by_file)" ( (binary_expression "config.split_by_reloc & config.split_by_file" (field_expression "config.split_by_reloc" identifier . field_identifier) & (field_expression "config.split_by_file" identifier . field_identifier)) )) != number_literal) )) (compound_statement "{\n    pbVar2 = (bfd_section *)(link_info.output_bfd)->section_count;\n    pbVar3 = (link_info.output_bfd)->sections;\n    pbVar7 = pbVar3;\n    pbVar15 = pbVar2;\n    while ((pbVar15 != (bfd_section *)0x0 && (pbVar7 != (bfd_section *)0x0))) {\n      count = 0;\n      local_4c = pbVar3->vma;\n      if ((pbVar3->map_head).s != (bfd_section *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (bfd_section *)0x0;\n        pbVar19 = pbVar3;\n        local_5c = (pbVar3->map_head).s;\n        do {\n          uVar18 = local_6c;\n          if (local_5c->id == 1) {\n            local_70 = 0;\n            pbVar15 = local_5c->prev;\n            if ((link_info._1_1_ & 0x20) == 0) {\n              local_70 = pbVar15->lineno_count;\n            }\n            uVar11 = 0;\n            if ((link_info._0_1_ & 3) == 2) {\n              uVar11 = pbVar15->reloc_count;\n              local_6c = local_6c + uVar11;\n            }\n            local_68 = pbVar15->size;\n            uVar18 = local_6c;\n            local_6c = uVar11;\n          }\n          else if ((link_info._0_1_ & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar11 = (uint)(local_5c->id - 3 < 2);\n            uVar18 = local_6c + uVar11;\n            local_6c = uVar11;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (bfd_section *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_6c = uVar18;\n          }\n          else {\n            bVar23 = config.split_by_reloc < uVar18;\n            bVar25 = config.split_by_reloc == uVar18;\n            if (uVar18 < config.split_by_reloc) {\n              uVar11 = local_70 + local_58;\n              bVar23 = config.split_by_reloc < uVar11;\n              bVar25 = config.split_by_reloc == uVar11;\n              if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }\n            }\n            pbVar21 = (byte *)pbVar19->name;\n            iVar17 = 5;\n            pbVar20 = pbVar21;\n            pbVar22 = (byte *)".stab";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = *pbVar20 < *pbVar22;\n              bVar25 = *pbVar20 == *pbVar22;\n              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (bVar23) {\n              sVar12 = strlen((char *)pbVar21);\n              iVar17 = 4;\n              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar21 = pbVar21 + (sVar12 - 3);\n              pbVar20 = &DAT_0004de1c;\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;\n            }\n            else {\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }\n            pbVar21 = (byte *)pbVar3->name;\n            sVar12 = strlen((char *)pbVar21);\n            pcVar13 = (char *)xmalloc();\n            memcpy(pcVar13,pbVar21,sVar12 + 1);\n            if (sVar12 != 0) {\n              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }\n              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = &count;\n            iVar17 = bfd_get_unique_section_name();\n            if (((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)) {\n              pcVar13 = (char *)dcgettext();\n              einfo(pcVar13);\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar8 = (code *)invalidInstructionException();\n              (*pcVar8)();\n            }\n            free(pcVar13);\n            fVar4 = pbVar19->flags;\n            *(undefined1 *)(iVar17 + 0xc) = 3;\n            *(undefined4 *)(iVar17 + 0x18) = 0;\n            *(sec_ptr *)(iVar17 + 0x14) = pbVar14;\n            pbVar14->flags = fVar4;\n            pbVar14->vma = pbVar19->vma;\n            pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;\n            bVar5 = pbVar19->lma;\n            pbVar14->size = 0;\n            pbVar14->lma = bVar5;\n            bVar5 = pbVar19->output_offset;\n            pbVar14->output_section = pbVar14;\n            pbVar14->output_offset = bVar5;\n            uVar18 = pbVar19->alignment_power;\n            pbVar14->orelocation = (reloc_cache_entry **)0x0;\n            pbVar14->alignment_power = uVar18;\n            pbVar6 = pbVar10->xvec;\n            pbVar14->reloc_count = 0;\n            (*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14);\n            pbVar14->map_tail = pbVar19->map_tail;\n            uVar18 = local_5c->index;\n            (pbVar14->map_head).s = local_5c;\n            (pbVar19->map_tail).link_order = (bfd_link_order *)local_48;\n            local_48->name = (char *)0x0;\n            local_4c = local_4c + uVar18;\n            pbVar14->size = pbVar19->size - uVar18;\n            pbVar19->size = uVar18;\n            pbVar14->vma = local_4c;\n            pbVar14->lma = local_4c;\n            pbVar15 = local_5c;\n            uVar11 = uVar18;\n            while( true ) {\n              pbVar15->index = uVar11 - uVar18;\n              if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }\n              pbVar15 = (bfd_section *)pbVar15->name;\n              if (pbVar15 == (bfd_section *)0x0) break;\n              uVar11 = pbVar15->index;\n            }\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_58 = local_70;\n            local_64 = local_68;\n            pbVar19 = pbVar14;\n          }\n          if (pbVar15 == (bfd_section *)0x0) break;\n          local_48 = local_5c;\n          local_5c = pbVar15;\n        } while( true );\n      }\n      pbVar3 = pbVar3->next;\n      pbVar2 = (bfd_section *)((int)&pbVar2[-1].map_tail + 3);\n      pbVar15 = pbVar3;\n      pbVar7 = pbVar2;\n    }\n  }" { (expression_statement "pbVar2 = (bfd_section *)(link_info.output_bfd)->section_count;" (assignment_expression "pbVar2 = (bfd_section *)(link_info.output_bfd)->section_count" identifier = (cast_expression "(bfd_section *)(link_info.output_bfd)->section_count" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(link_info.output_bfd)->section_count" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier))) ;) (expression_statement "pbVar3 = (link_info.output_bfd)->sections;" (assignment_expression "pbVar3 = (link_info.output_bfd)->sections" identifier = (field_expression "(link_info.output_bfd)->sections" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "pbVar7 = pbVar3;" (assignment_expression "pbVar7 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar15 = pbVar2;" (assignment_expression "pbVar15 = pbVar2" identifier = identifier) ;) (while_statement "while ((pbVar15 != (bfd_section *)0x0 && (pbVar7 != (bfd_section *)0x0))) {\n      count = 0;\n      local_4c = pbVar3->vma;\n      if ((pbVar3->map_head).s != (bfd_section *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (bfd_section *)0x0;\n        pbVar19 = pbVar3;\n        local_5c = (pbVar3->map_head).s;\n        do {\n          uVar18 = local_6c;\n          if (local_5c->id == 1) {\n            local_70 = 0;\n            pbVar15 = local_5c->prev;\n            if ((link_info._1_1_ & 0x20) == 0) {\n              local_70 = pbVar15->lineno_count;\n            }\n            uVar11 = 0;\n            if ((link_info._0_1_ & 3) == 2) {\n              uVar11 = pbVar15->reloc_count;\n              local_6c = local_6c + uVar11;\n            }\n            local_68 = pbVar15->size;\n            uVar18 = local_6c;\n            local_6c = uVar11;\n          }\n          else if ((link_info._0_1_ & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar11 = (uint)(local_5c->id - 3 < 2);\n            uVar18 = local_6c + uVar11;\n            local_6c = uVar11;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (bfd_section *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_6c = uVar18;\n          }\n          else {\n            bVar23 = config.split_by_reloc < uVar18;\n            bVar25 = config.split_by_reloc == uVar18;\n            if (uVar18 < config.split_by_reloc) {\n              uVar11 = local_70 + local_58;\n              bVar23 = config.split_by_reloc < uVar11;\n              bVar25 = config.split_by_reloc == uVar11;\n              if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }\n            }\n            pbVar21 = (byte *)pbVar19->name;\n            iVar17 = 5;\n            pbVar20 = pbVar21;\n            pbVar22 = (byte *)".stab";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = *pbVar20 < *pbVar22;\n              bVar25 = *pbVar20 == *pbVar22;\n              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (bVar23) {\n              sVar12 = strlen((char *)pbVar21);\n              iVar17 = 4;\n              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar21 = pbVar21 + (sVar12 - 3);\n              pbVar20 = &DAT_0004de1c;\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;\n            }\n            else {\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }\n            pbVar21 = (byte *)pbVar3->name;\n            sVar12 = strlen((char *)pbVar21);\n            pcVar13 = (char *)xmalloc();\n            memcpy(pcVar13,pbVar21,sVar12 + 1);\n            if (sVar12 != 0) {\n              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }\n              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = &count;\n            iVar17 = bfd_get_unique_section_name();\n            if (((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)) {\n              pcVar13 = (char *)dcgettext();\n              einfo(pcVar13);\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar8 = (code *)invalidInstructionException();\n              (*pcVar8)();\n            }\n            free(pcVar13);\n            fVar4 = pbVar19->flags;\n            *(undefined1 *)(iVar17 + 0xc) = 3;\n            *(undefined4 *)(iVar17 + 0x18) = 0;\n            *(sec_ptr *)(iVar17 + 0x14) = pbVar14;\n            pbVar14->flags = fVar4;\n            pbVar14->vma = pbVar19->vma;\n            pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;\n            bVar5 = pbVar19->lma;\n            pbVar14->size = 0;\n            pbVar14->lma = bVar5;\n            bVar5 = pbVar19->output_offset;\n            pbVar14->output_section = pbVar14;\n            pbVar14->output_offset = bVar5;\n            uVar18 = pbVar19->alignment_power;\n            pbVar14->orelocation = (reloc_cache_entry **)0x0;\n            pbVar14->alignment_power = uVar18;\n            pbVar6 = pbVar10->xvec;\n            pbVar14->reloc_count = 0;\n            (*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14);\n            pbVar14->map_tail = pbVar19->map_tail;\n            uVar18 = local_5c->index;\n            (pbVar14->map_head).s = local_5c;\n            (pbVar19->map_tail).link_order = (bfd_link_order *)local_48;\n            local_48->name = (char *)0x0;\n            local_4c = local_4c + uVar18;\n            pbVar14->size = pbVar19->size - uVar18;\n            pbVar19->size = uVar18;\n            pbVar14->vma = local_4c;\n            pbVar14->lma = local_4c;\n            pbVar15 = local_5c;\n            uVar11 = uVar18;\n            while( true ) {\n              pbVar15->index = uVar11 - uVar18;\n              if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }\n              pbVar15 = (bfd_section *)pbVar15->name;\n              if (pbVar15 == (bfd_section *)0x0) break;\n              uVar11 = pbVar15->index;\n            }\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_58 = local_70;\n            local_64 = local_68;\n            pbVar19 = pbVar14;\n          }\n          if (pbVar15 == (bfd_section *)0x0) break;\n          local_48 = local_5c;\n          local_5c = pbVar15;\n        } while( true );\n      }\n      pbVar3 = pbVar3->next;\n      pbVar2 = (bfd_section *)((int)&pbVar2[-1].map_tail + 3);\n      pbVar15 = pbVar3;\n      pbVar7 = pbVar2;\n    }" while (parenthesized_expression "((pbVar15 != (bfd_section *)0x0 && (pbVar7 != (bfd_section *)0x0)))" ( (parenthesized_expression "(pbVar15 != (bfd_section *)0x0 && (pbVar7 != (bfd_section *)0x0))" ( (binary_expression "pbVar15 != (bfd_section *)0x0 && (pbVar7 != (bfd_section *)0x0)" (binary_expression "pbVar15 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(pbVar7 != (bfd_section *)0x0)" ( (binary_expression "pbVar7 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) )) (compound_statement "{\n      count = 0;\n      local_4c = pbVar3->vma;\n      if ((pbVar3->map_head).s != (bfd_section *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (bfd_section *)0x0;\n        pbVar19 = pbVar3;\n        local_5c = (pbVar3->map_head).s;\n        do {\n          uVar18 = local_6c;\n          if (local_5c->id == 1) {\n            local_70 = 0;\n            pbVar15 = local_5c->prev;\n            if ((link_info._1_1_ & 0x20) == 0) {\n              local_70 = pbVar15->lineno_count;\n            }\n            uVar11 = 0;\n            if ((link_info._0_1_ & 3) == 2) {\n              uVar11 = pbVar15->reloc_count;\n              local_6c = local_6c + uVar11;\n            }\n            local_68 = pbVar15->size;\n            uVar18 = local_6c;\n            local_6c = uVar11;\n          }\n          else if ((link_info._0_1_ & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar11 = (uint)(local_5c->id - 3 < 2);\n            uVar18 = local_6c + uVar11;\n            local_6c = uVar11;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (bfd_section *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_6c = uVar18;\n          }\n          else {\n            bVar23 = config.split_by_reloc < uVar18;\n            bVar25 = config.split_by_reloc == uVar18;\n            if (uVar18 < config.split_by_reloc) {\n              uVar11 = local_70 + local_58;\n              bVar23 = config.split_by_reloc < uVar11;\n              bVar25 = config.split_by_reloc == uVar11;\n              if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }\n            }\n            pbVar21 = (byte *)pbVar19->name;\n            iVar17 = 5;\n            pbVar20 = pbVar21;\n            pbVar22 = (byte *)".stab";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = *pbVar20 < *pbVar22;\n              bVar25 = *pbVar20 == *pbVar22;\n              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (bVar23) {\n              sVar12 = strlen((char *)pbVar21);\n              iVar17 = 4;\n              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar21 = pbVar21 + (sVar12 - 3);\n              pbVar20 = &DAT_0004de1c;\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;\n            }\n            else {\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }\n            pbVar21 = (byte *)pbVar3->name;\n            sVar12 = strlen((char *)pbVar21);\n            pcVar13 = (char *)xmalloc();\n            memcpy(pcVar13,pbVar21,sVar12 + 1);\n            if (sVar12 != 0) {\n              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }\n              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = &count;\n            iVar17 = bfd_get_unique_section_name();\n            if (((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)) {\n              pcVar13 = (char *)dcgettext();\n              einfo(pcVar13);\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar8 = (code *)invalidInstructionException();\n              (*pcVar8)();\n            }\n            free(pcVar13);\n            fVar4 = pbVar19->flags;\n            *(undefined1 *)(iVar17 + 0xc) = 3;\n            *(undefined4 *)(iVar17 + 0x18) = 0;\n            *(sec_ptr *)(iVar17 + 0x14) = pbVar14;\n            pbVar14->flags = fVar4;\n            pbVar14->vma = pbVar19->vma;\n            pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;\n            bVar5 = pbVar19->lma;\n            pbVar14->size = 0;\n            pbVar14->lma = bVar5;\n            bVar5 = pbVar19->output_offset;\n            pbVar14->output_section = pbVar14;\n            pbVar14->output_offset = bVar5;\n            uVar18 = pbVar19->alignment_power;\n            pbVar14->orelocation = (reloc_cache_entry **)0x0;\n            pbVar14->alignment_power = uVar18;\n            pbVar6 = pbVar10->xvec;\n            pbVar14->reloc_count = 0;\n            (*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14);\n            pbVar14->map_tail = pbVar19->map_tail;\n            uVar18 = local_5c->index;\n            (pbVar14->map_head).s = local_5c;\n            (pbVar19->map_tail).link_order = (bfd_link_order *)local_48;\n            local_48->name = (char *)0x0;\n            local_4c = local_4c + uVar18;\n            pbVar14->size = pbVar19->size - uVar18;\n            pbVar19->size = uVar18;\n            pbVar14->vma = local_4c;\n            pbVar14->lma = local_4c;\n            pbVar15 = local_5c;\n            uVar11 = uVar18;\n            while( true ) {\n              pbVar15->index = uVar11 - uVar18;\n              if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }\n              pbVar15 = (bfd_section *)pbVar15->name;\n              if (pbVar15 == (bfd_section *)0x0) break;\n              uVar11 = pbVar15->index;\n            }\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_58 = local_70;\n            local_64 = local_68;\n            pbVar19 = pbVar14;\n          }\n          if (pbVar15 == (bfd_section *)0x0) break;\n          local_48 = local_5c;\n          local_5c = pbVar15;\n        } while( true );\n      }\n      pbVar3 = pbVar3->next;\n      pbVar2 = (bfd_section *)((int)&pbVar2[-1].map_tail + 3);\n      pbVar15 = pbVar3;\n      pbVar7 = pbVar2;\n    }" { (expression_statement "count = 0;" (assignment_expression "count = 0" identifier = number_literal) ;) (expression_statement "local_4c = pbVar3->vma;" (assignment_expression "local_4c = pbVar3->vma" identifier = (field_expression "pbVar3->vma" identifier -> field_identifier)) ;) (if_statement "if ((pbVar3->map_head).s != (bfd_section *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (bfd_section *)0x0;\n        pbVar19 = pbVar3;\n        local_5c = (pbVar3->map_head).s;\n        do {\n          uVar18 = local_6c;\n          if (local_5c->id == 1) {\n            local_70 = 0;\n            pbVar15 = local_5c->prev;\n            if ((link_info._1_1_ & 0x20) == 0) {\n              local_70 = pbVar15->lineno_count;\n            }\n            uVar11 = 0;\n            if ((link_info._0_1_ & 3) == 2) {\n              uVar11 = pbVar15->reloc_count;\n              local_6c = local_6c + uVar11;\n            }\n            local_68 = pbVar15->size;\n            uVar18 = local_6c;\n            local_6c = uVar11;\n          }\n          else if ((link_info._0_1_ & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar11 = (uint)(local_5c->id - 3 < 2);\n            uVar18 = local_6c + uVar11;\n            local_6c = uVar11;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (bfd_section *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_6c = uVar18;\n          }\n          else {\n            bVar23 = config.split_by_reloc < uVar18;\n            bVar25 = config.split_by_reloc == uVar18;\n            if (uVar18 < config.split_by_reloc) {\n              uVar11 = local_70 + local_58;\n              bVar23 = config.split_by_reloc < uVar11;\n              bVar25 = config.split_by_reloc == uVar11;\n              if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }\n            }\n            pbVar21 = (byte *)pbVar19->name;\n            iVar17 = 5;\n            pbVar20 = pbVar21;\n            pbVar22 = (byte *)".stab";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = *pbVar20 < *pbVar22;\n              bVar25 = *pbVar20 == *pbVar22;\n              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (bVar23) {\n              sVar12 = strlen((char *)pbVar21);\n              iVar17 = 4;\n              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar21 = pbVar21 + (sVar12 - 3);\n              pbVar20 = &DAT_0004de1c;\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;\n            }\n            else {\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }\n            pbVar21 = (byte *)pbVar3->name;\n            sVar12 = strlen((char *)pbVar21);\n            pcVar13 = (char *)xmalloc();\n            memcpy(pcVar13,pbVar21,sVar12 + 1);\n            if (sVar12 != 0) {\n              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }\n              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = &count;\n            iVar17 = bfd_get_unique_section_name();\n            if (((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)) {\n              pcVar13 = (char *)dcgettext();\n              einfo(pcVar13);\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar8 = (code *)invalidInstructionException();\n              (*pcVar8)();\n            }\n            free(pcVar13);\n            fVar4 = pbVar19->flags;\n            *(undefined1 *)(iVar17 + 0xc) = 3;\n            *(undefined4 *)(iVar17 + 0x18) = 0;\n            *(sec_ptr *)(iVar17 + 0x14) = pbVar14;\n            pbVar14->flags = fVar4;\n            pbVar14->vma = pbVar19->vma;\n            pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;\n            bVar5 = pbVar19->lma;\n            pbVar14->size = 0;\n            pbVar14->lma = bVar5;\n            bVar5 = pbVar19->output_offset;\n            pbVar14->output_section = pbVar14;\n            pbVar14->output_offset = bVar5;\n            uVar18 = pbVar19->alignment_power;\n            pbVar14->orelocation = (reloc_cache_entry **)0x0;\n            pbVar14->alignment_power = uVar18;\n            pbVar6 = pbVar10->xvec;\n            pbVar14->reloc_count = 0;\n            (*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14);\n            pbVar14->map_tail = pbVar19->map_tail;\n            uVar18 = local_5c->index;\n            (pbVar14->map_head).s = local_5c;\n            (pbVar19->map_tail).link_order = (bfd_link_order *)local_48;\n            local_48->name = (char *)0x0;\n            local_4c = local_4c + uVar18;\n            pbVar14->size = pbVar19->size - uVar18;\n            pbVar19->size = uVar18;\n            pbVar14->vma = local_4c;\n            pbVar14->lma = local_4c;\n            pbVar15 = local_5c;\n            uVar11 = uVar18;\n            while( true ) {\n              pbVar15->index = uVar11 - uVar18;\n              if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }\n              pbVar15 = (bfd_section *)pbVar15->name;\n              if (pbVar15 == (bfd_section *)0x0) break;\n              uVar11 = pbVar15->index;\n            }\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_58 = local_70;\n            local_64 = local_68;\n            pbVar19 = pbVar14;\n          }\n          if (pbVar15 == (bfd_section *)0x0) break;\n          local_48 = local_5c;\n          local_5c = pbVar15;\n        } while( true );\n      }" if (parenthesized_expression "((pbVar3->map_head).s != (bfd_section *)0x0)" ( (binary_expression "(pbVar3->map_head).s != (bfd_section *)0x0" (field_expression "(pbVar3->map_head).s" (parenthesized_expression "(pbVar3->map_head)" ( (field_expression "pbVar3->map_head" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (bfd_section *)0x0;\n        pbVar19 = pbVar3;\n        local_5c = (pbVar3->map_head).s;\n        do {\n          uVar18 = local_6c;\n          if (local_5c->id == 1) {\n            local_70 = 0;\n            pbVar15 = local_5c->prev;\n            if ((link_info._1_1_ & 0x20) == 0) {\n              local_70 = pbVar15->lineno_count;\n            }\n            uVar11 = 0;\n            if ((link_info._0_1_ & 3) == 2) {\n              uVar11 = pbVar15->reloc_count;\n              local_6c = local_6c + uVar11;\n            }\n            local_68 = pbVar15->size;\n            uVar18 = local_6c;\n            local_6c = uVar11;\n          }\n          else if ((link_info._0_1_ & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar11 = (uint)(local_5c->id - 3 < 2);\n            uVar18 = local_6c + uVar11;\n            local_6c = uVar11;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (bfd_section *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_6c = uVar18;\n          }\n          else {\n            bVar23 = config.split_by_reloc < uVar18;\n            bVar25 = config.split_by_reloc == uVar18;\n            if (uVar18 < config.split_by_reloc) {\n              uVar11 = local_70 + local_58;\n              bVar23 = config.split_by_reloc < uVar11;\n              bVar25 = config.split_by_reloc == uVar11;\n              if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }\n            }\n            pbVar21 = (byte *)pbVar19->name;\n            iVar17 = 5;\n            pbVar20 = pbVar21;\n            pbVar22 = (byte *)".stab";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = *pbVar20 < *pbVar22;\n              bVar25 = *pbVar20 == *pbVar22;\n              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (bVar23) {\n              sVar12 = strlen((char *)pbVar21);\n              iVar17 = 4;\n              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar21 = pbVar21 + (sVar12 - 3);\n              pbVar20 = &DAT_0004de1c;\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;\n            }\n            else {\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }\n            pbVar21 = (byte *)pbVar3->name;\n            sVar12 = strlen((char *)pbVar21);\n            pcVar13 = (char *)xmalloc();\n            memcpy(pcVar13,pbVar21,sVar12 + 1);\n            if (sVar12 != 0) {\n              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }\n              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = &count;\n            iVar17 = bfd_get_unique_section_name();\n            if (((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)) {\n              pcVar13 = (char *)dcgettext();\n              einfo(pcVar13);\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar8 = (code *)invalidInstructionException();\n              (*pcVar8)();\n            }\n            free(pcVar13);\n            fVar4 = pbVar19->flags;\n            *(undefined1 *)(iVar17 + 0xc) = 3;\n            *(undefined4 *)(iVar17 + 0x18) = 0;\n            *(sec_ptr *)(iVar17 + 0x14) = pbVar14;\n            pbVar14->flags = fVar4;\n            pbVar14->vma = pbVar19->vma;\n            pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;\n            bVar5 = pbVar19->lma;\n            pbVar14->size = 0;\n            pbVar14->lma = bVar5;\n            bVar5 = pbVar19->output_offset;\n            pbVar14->output_section = pbVar14;\n            pbVar14->output_offset = bVar5;\n            uVar18 = pbVar19->alignment_power;\n            pbVar14->orelocation = (reloc_cache_entry **)0x0;\n            pbVar14->alignment_power = uVar18;\n            pbVar6 = pbVar10->xvec;\n            pbVar14->reloc_count = 0;\n            (*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14);\n            pbVar14->map_tail = pbVar19->map_tail;\n            uVar18 = local_5c->index;\n            (pbVar14->map_head).s = local_5c;\n            (pbVar19->map_tail).link_order = (bfd_link_order *)local_48;\n            local_48->name = (char *)0x0;\n            local_4c = local_4c + uVar18;\n            pbVar14->size = pbVar19->size - uVar18;\n            pbVar19->size = uVar18;\n            pbVar14->vma = local_4c;\n            pbVar14->lma = local_4c;\n            pbVar15 = local_5c;\n            uVar11 = uVar18;\n            while( true ) {\n              pbVar15->index = uVar11 - uVar18;\n              if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }\n              pbVar15 = (bfd_section *)pbVar15->name;\n              if (pbVar15 == (bfd_section *)0x0) break;\n              uVar11 = pbVar15->index;\n            }\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_58 = local_70;\n            local_64 = local_68;\n            pbVar19 = pbVar14;\n          }\n          if (pbVar15 == (bfd_section *)0x0) break;\n          local_48 = local_5c;\n          local_5c = pbVar15;\n        } while( true );\n      }" { (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_48 = (bfd_section *)0x0;" (assignment_expression "local_48 = (bfd_section *)0x0" identifier = (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar19 = pbVar3;" (assignment_expression "pbVar19 = pbVar3" identifier = identifier) ;) (expression_statement "local_5c = (pbVar3->map_head).s;" (assignment_expression "local_5c = (pbVar3->map_head).s" identifier = (field_expression "(pbVar3->map_head).s" (parenthesized_expression "(pbVar3->map_head)" ( (field_expression "pbVar3->map_head" identifier -> field_identifier) )) . field_identifier)) ;) (do_statement "do {\n          uVar18 = local_6c;\n          if (local_5c->id == 1) {\n            local_70 = 0;\n            pbVar15 = local_5c->prev;\n            if ((link_info._1_1_ & 0x20) == 0) {\n              local_70 = pbVar15->lineno_count;\n            }\n            uVar11 = 0;\n            if ((link_info._0_1_ & 3) == 2) {\n              uVar11 = pbVar15->reloc_count;\n              local_6c = local_6c + uVar11;\n            }\n            local_68 = pbVar15->size;\n            uVar18 = local_6c;\n            local_6c = uVar11;\n          }\n          else if ((link_info._0_1_ & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar11 = (uint)(local_5c->id - 3 < 2);\n            uVar18 = local_6c + uVar11;\n            local_6c = uVar11;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (bfd_section *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_6c = uVar18;\n          }\n          else {\n            bVar23 = config.split_by_reloc < uVar18;\n            bVar25 = config.split_by_reloc == uVar18;\n            if (uVar18 < config.split_by_reloc) {\n              uVar11 = local_70 + local_58;\n              bVar23 = config.split_by_reloc < uVar11;\n              bVar25 = config.split_by_reloc == uVar11;\n              if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }\n            }\n            pbVar21 = (byte *)pbVar19->name;\n            iVar17 = 5;\n            pbVar20 = pbVar21;\n            pbVar22 = (byte *)".stab";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = *pbVar20 < *pbVar22;\n              bVar25 = *pbVar20 == *pbVar22;\n              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (bVar23) {\n              sVar12 = strlen((char *)pbVar21);\n              iVar17 = 4;\n              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar21 = pbVar21 + (sVar12 - 3);\n              pbVar20 = &DAT_0004de1c;\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;\n            }\n            else {\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }\n            pbVar21 = (byte *)pbVar3->name;\n            sVar12 = strlen((char *)pbVar21);\n            pcVar13 = (char *)xmalloc();\n            memcpy(pcVar13,pbVar21,sVar12 + 1);\n            if (sVar12 != 0) {\n              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }\n              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = &count;\n            iVar17 = bfd_get_unique_section_name();\n            if (((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)) {\n              pcVar13 = (char *)dcgettext();\n              einfo(pcVar13);\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar8 = (code *)invalidInstructionException();\n              (*pcVar8)();\n            }\n            free(pcVar13);\n            fVar4 = pbVar19->flags;\n            *(undefined1 *)(iVar17 + 0xc) = 3;\n            *(undefined4 *)(iVar17 + 0x18) = 0;\n            *(sec_ptr *)(iVar17 + 0x14) = pbVar14;\n            pbVar14->flags = fVar4;\n            pbVar14->vma = pbVar19->vma;\n            pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;\n            bVar5 = pbVar19->lma;\n            pbVar14->size = 0;\n            pbVar14->lma = bVar5;\n            bVar5 = pbVar19->output_offset;\n            pbVar14->output_section = pbVar14;\n            pbVar14->output_offset = bVar5;\n            uVar18 = pbVar19->alignment_power;\n            pbVar14->orelocation = (reloc_cache_entry **)0x0;\n            pbVar14->alignment_power = uVar18;\n            pbVar6 = pbVar10->xvec;\n            pbVar14->reloc_count = 0;\n            (*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14);\n            pbVar14->map_tail = pbVar19->map_tail;\n            uVar18 = local_5c->index;\n            (pbVar14->map_head).s = local_5c;\n            (pbVar19->map_tail).link_order = (bfd_link_order *)local_48;\n            local_48->name = (char *)0x0;\n            local_4c = local_4c + uVar18;\n            pbVar14->size = pbVar19->size - uVar18;\n            pbVar19->size = uVar18;\n            pbVar14->vma = local_4c;\n            pbVar14->lma = local_4c;\n            pbVar15 = local_5c;\n            uVar11 = uVar18;\n            while( true ) {\n              pbVar15->index = uVar11 - uVar18;\n              if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }\n              pbVar15 = (bfd_section *)pbVar15->name;\n              if (pbVar15 == (bfd_section *)0x0) break;\n              uVar11 = pbVar15->index;\n            }\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_58 = local_70;\n            local_64 = local_68;\n            pbVar19 = pbVar14;\n          }\n          if (pbVar15 == (bfd_section *)0x0) break;\n          local_48 = local_5c;\n          local_5c = pbVar15;\n        } while( true );" do (compound_statement "{\n          uVar18 = local_6c;\n          if (local_5c->id == 1) {\n            local_70 = 0;\n            pbVar15 = local_5c->prev;\n            if ((link_info._1_1_ & 0x20) == 0) {\n              local_70 = pbVar15->lineno_count;\n            }\n            uVar11 = 0;\n            if ((link_info._0_1_ & 3) == 2) {\n              uVar11 = pbVar15->reloc_count;\n              local_6c = local_6c + uVar11;\n            }\n            local_68 = pbVar15->size;\n            uVar18 = local_6c;\n            local_6c = uVar11;\n          }\n          else if ((link_info._0_1_ & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar11 = (uint)(local_5c->id - 3 < 2);\n            uVar18 = local_6c + uVar11;\n            local_6c = uVar11;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (bfd_section *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_6c = uVar18;\n          }\n          else {\n            bVar23 = config.split_by_reloc < uVar18;\n            bVar25 = config.split_by_reloc == uVar18;\n            if (uVar18 < config.split_by_reloc) {\n              uVar11 = local_70 + local_58;\n              bVar23 = config.split_by_reloc < uVar11;\n              bVar25 = config.split_by_reloc == uVar11;\n              if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }\n            }\n            pbVar21 = (byte *)pbVar19->name;\n            iVar17 = 5;\n            pbVar20 = pbVar21;\n            pbVar22 = (byte *)".stab";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = *pbVar20 < *pbVar22;\n              bVar25 = *pbVar20 == *pbVar22;\n              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (bVar23) {\n              sVar12 = strlen((char *)pbVar21);\n              iVar17 = 4;\n              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar21 = pbVar21 + (sVar12 - 3);\n              pbVar20 = &DAT_0004de1c;\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;\n            }\n            else {\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }\n            pbVar21 = (byte *)pbVar3->name;\n            sVar12 = strlen((char *)pbVar21);\n            pcVar13 = (char *)xmalloc();\n            memcpy(pcVar13,pbVar21,sVar12 + 1);\n            if (sVar12 != 0) {\n              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }\n              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = &count;\n            iVar17 = bfd_get_unique_section_name();\n            if (((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)) {\n              pcVar13 = (char *)dcgettext();\n              einfo(pcVar13);\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar8 = (code *)invalidInstructionException();\n              (*pcVar8)();\n            }\n            free(pcVar13);\n            fVar4 = pbVar19->flags;\n            *(undefined1 *)(iVar17 + 0xc) = 3;\n            *(undefined4 *)(iVar17 + 0x18) = 0;\n            *(sec_ptr *)(iVar17 + 0x14) = pbVar14;\n            pbVar14->flags = fVar4;\n            pbVar14->vma = pbVar19->vma;\n            pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;\n            bVar5 = pbVar19->lma;\n            pbVar14->size = 0;\n            pbVar14->lma = bVar5;\n            bVar5 = pbVar19->output_offset;\n            pbVar14->output_section = pbVar14;\n            pbVar14->output_offset = bVar5;\n            uVar18 = pbVar19->alignment_power;\n            pbVar14->orelocation = (reloc_cache_entry **)0x0;\n            pbVar14->alignment_power = uVar18;\n            pbVar6 = pbVar10->xvec;\n            pbVar14->reloc_count = 0;\n            (*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14);\n            pbVar14->map_tail = pbVar19->map_tail;\n            uVar18 = local_5c->index;\n            (pbVar14->map_head).s = local_5c;\n            (pbVar19->map_tail).link_order = (bfd_link_order *)local_48;\n            local_48->name = (char *)0x0;\n            local_4c = local_4c + uVar18;\n            pbVar14->size = pbVar19->size - uVar18;\n            pbVar19->size = uVar18;\n            pbVar14->vma = local_4c;\n            pbVar14->lma = local_4c;\n            pbVar15 = local_5c;\n            uVar11 = uVar18;\n            while( true ) {\n              pbVar15->index = uVar11 - uVar18;\n              if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }\n              pbVar15 = (bfd_section *)pbVar15->name;\n              if (pbVar15 == (bfd_section *)0x0) break;\n              uVar11 = pbVar15->index;\n            }\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_58 = local_70;\n            local_64 = local_68;\n            pbVar19 = pbVar14;\n          }\n          if (pbVar15 == (bfd_section *)0x0) break;\n          local_48 = local_5c;\n          local_5c = pbVar15;\n        }" { (expression_statement "uVar18 = local_6c;" (assignment_expression "uVar18 = local_6c" identifier = identifier) ;) (if_statement "if (local_5c->id == 1) {\n            local_70 = 0;\n            pbVar15 = local_5c->prev;\n            if ((link_info._1_1_ & 0x20) == 0) {\n              local_70 = pbVar15->lineno_count;\n            }\n            uVar11 = 0;\n            if ((link_info._0_1_ & 3) == 2) {\n              uVar11 = pbVar15->reloc_count;\n              local_6c = local_6c + uVar11;\n            }\n            local_68 = pbVar15->size;\n            uVar18 = local_6c;\n            local_6c = uVar11;\n          }\n          else if ((link_info._0_1_ & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar11 = (uint)(local_5c->id - 3 < 2);\n            uVar18 = local_6c + uVar11;\n            local_6c = uVar11;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" if (parenthesized_expression "(local_5c->id == 1)" ( (binary_expression "local_5c->id == 1" (field_expression "local_5c->id" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n            local_70 = 0;\n            pbVar15 = local_5c->prev;\n            if ((link_info._1_1_ & 0x20) == 0) {\n              local_70 = pbVar15->lineno_count;\n            }\n            uVar11 = 0;\n            if ((link_info._0_1_ & 3) == 2) {\n              uVar11 = pbVar15->reloc_count;\n              local_6c = local_6c + uVar11;\n            }\n            local_68 = pbVar15->size;\n            uVar18 = local_6c;\n            local_6c = uVar11;\n          }" { (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "pbVar15 = local_5c->prev;" (assignment_expression "pbVar15 = local_5c->prev" identifier = (field_expression "local_5c->prev" identifier -> field_identifier)) ;) (if_statement "if ((link_info._1_1_ & 0x20) == 0) {\n              local_70 = pbVar15->lineno_count;\n            }" if (parenthesized_expression "((link_info._1_1_ & 0x20) == 0)" ( (binary_expression "(link_info._1_1_ & 0x20) == 0" (parenthesized_expression "(link_info._1_1_ & 0x20)" ( (binary_expression "link_info._1_1_ & 0x20" (field_expression "link_info._1_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              local_70 = pbVar15->lineno_count;\n            }" { (expression_statement "local_70 = pbVar15->lineno_count;" (assignment_expression "local_70 = pbVar15->lineno_count" identifier = (field_expression "pbVar15->lineno_count" identifier -> field_identifier)) ;) })) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if ((link_info._0_1_ & 3) == 2) {\n              uVar11 = pbVar15->reloc_count;\n              local_6c = local_6c + uVar11;\n            }" if (parenthesized_expression "((link_info._0_1_ & 3) == 2)" ( (binary_expression "(link_info._0_1_ & 3) == 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              uVar11 = pbVar15->reloc_count;\n              local_6c = local_6c + uVar11;\n            }" { (expression_statement "uVar11 = pbVar15->reloc_count;" (assignment_expression "uVar11 = pbVar15->reloc_count" identifier = (field_expression "pbVar15->reloc_count" identifier -> field_identifier)) ;) (expression_statement "local_6c = local_6c + uVar11;" (assignment_expression "local_6c = local_6c + uVar11" identifier = (binary_expression "local_6c + uVar11" identifier + identifier)) ;) })) (expression_statement "local_68 = pbVar15->size;" (assignment_expression "local_68 = pbVar15->size" identifier = (field_expression "pbVar15->size" identifier -> field_identifier)) ;) (expression_statement "uVar18 = local_6c;" (assignment_expression "uVar18 = local_6c" identifier = identifier) ;) (expression_statement "local_6c = uVar11;" (assignment_expression "local_6c = uVar11" identifier = identifier) ;) }) (else_clause "else if ((link_info._0_1_ & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar11 = (uint)(local_5c->id - 3 < 2);\n            uVar18 = local_6c + uVar11;\n            local_6c = uVar11;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" else (if_statement "if ((link_info._0_1_ & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar11 = (uint)(local_5c->id - 3 < 2);\n            uVar18 = local_6c + uVar11;\n            local_6c = uVar11;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" if (parenthesized_expression "((link_info._0_1_ & 3) == 2)" ( (binary_expression "(link_info._0_1_ & 3) == 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            local_68 = 0;\n            local_70 = 0;\n            uVar11 = (uint)(local_5c->id - 3 < 2);\n            uVar18 = local_6c + uVar11;\n            local_6c = uVar11;\n          }" { (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = (uint)(local_5c->id - 3 < 2);" (assignment_expression "uVar11 = (uint)(local_5c->id - 3 < 2)" identifier = (call_expression "(uint)(local_5c->id - 3 < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c->id - 3 < 2)" ( (binary_expression "local_5c->id - 3 < 2" (binary_expression "local_5c->id - 3" (field_expression "local_5c->id" identifier -> field_identifier) - number_literal) < number_literal) )))) ;) (expression_statement "uVar18 = local_6c + uVar11;" (assignment_expression "uVar18 = local_6c + uVar11" identifier = (binary_expression "local_6c + uVar11" identifier + identifier)) ;) (expression_statement "local_6c = uVar11;" (assignment_expression "local_6c = uVar11" identifier = identifier) ;) }) (else_clause "else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" else (compound_statement "{\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" { (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) }))))) (if_statement "if (local_48 == (bfd_section *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_6c = uVar18;\n          }\n          else {\n            bVar23 = config.split_by_reloc < uVar18;\n            bVar25 = config.split_by_reloc == uVar18;\n            if (uVar18 < config.split_by_reloc) {\n              uVar11 = local_70 + local_58;\n              bVar23 = config.split_by_reloc < uVar11;\n              bVar25 = config.split_by_reloc == uVar11;\n              if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }\n            }\n            pbVar21 = (byte *)pbVar19->name;\n            iVar17 = 5;\n            pbVar20 = pbVar21;\n            pbVar22 = (byte *)".stab";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = *pbVar20 < *pbVar22;\n              bVar25 = *pbVar20 == *pbVar22;\n              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (bVar23) {\n              sVar12 = strlen((char *)pbVar21);\n              iVar17 = 4;\n              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar21 = pbVar21 + (sVar12 - 3);\n              pbVar20 = &DAT_0004de1c;\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;\n            }\n            else {\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }\n            pbVar21 = (byte *)pbVar3->name;\n            sVar12 = strlen((char *)pbVar21);\n            pcVar13 = (char *)xmalloc();\n            memcpy(pcVar13,pbVar21,sVar12 + 1);\n            if (sVar12 != 0) {\n              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }\n              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = &count;\n            iVar17 = bfd_get_unique_section_name();\n            if (((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)) {\n              pcVar13 = (char *)dcgettext();\n              einfo(pcVar13);\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar8 = (code *)invalidInstructionException();\n              (*pcVar8)();\n            }\n            free(pcVar13);\n            fVar4 = pbVar19->flags;\n            *(undefined1 *)(iVar17 + 0xc) = 3;\n            *(undefined4 *)(iVar17 + 0x18) = 0;\n            *(sec_ptr *)(iVar17 + 0x14) = pbVar14;\n            pbVar14->flags = fVar4;\n            pbVar14->vma = pbVar19->vma;\n            pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;\n            bVar5 = pbVar19->lma;\n            pbVar14->size = 0;\n            pbVar14->lma = bVar5;\n            bVar5 = pbVar19->output_offset;\n            pbVar14->output_section = pbVar14;\n            pbVar14->output_offset = bVar5;\n            uVar18 = pbVar19->alignment_power;\n            pbVar14->orelocation = (reloc_cache_entry **)0x0;\n            pbVar14->alignment_power = uVar18;\n            pbVar6 = pbVar10->xvec;\n            pbVar14->reloc_count = 0;\n            (*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14);\n            pbVar14->map_tail = pbVar19->map_tail;\n            uVar18 = local_5c->index;\n            (pbVar14->map_head).s = local_5c;\n            (pbVar19->map_tail).link_order = (bfd_link_order *)local_48;\n            local_48->name = (char *)0x0;\n            local_4c = local_4c + uVar18;\n            pbVar14->size = pbVar19->size - uVar18;\n            pbVar19->size = uVar18;\n            pbVar14->vma = local_4c;\n            pbVar14->lma = local_4c;\n            pbVar15 = local_5c;\n            uVar11 = uVar18;\n            while( true ) {\n              pbVar15->index = uVar11 - uVar18;\n              if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }\n              pbVar15 = (bfd_section *)pbVar15->name;\n              if (pbVar15 == (bfd_section *)0x0) break;\n              uVar11 = pbVar15->index;\n            }\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_58 = local_70;\n            local_64 = local_68;\n            pbVar19 = pbVar14;\n          }" if (parenthesized_expression "(local_48 == (bfd_section *)0x0)" ( (binary_expression "local_48 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_6c = uVar18;\n          }" { (labeled_statement "LAB_0002d64e:\n            local_64 = local_68 + local_64;" statement_identifier : (expression_statement "local_64 = local_68 + local_64;" (assignment_expression "local_64 = local_68 + local_64" identifier = (binary_expression "local_68 + local_64" identifier + identifier)) ;)) (expression_statement "local_58 = local_70 + local_58;" (assignment_expression "local_58 = local_70 + local_58" identifier = (binary_expression "local_70 + local_58" identifier + identifier)) ;) (expression_statement "pbVar15 = (bfd_section *)local_5c->name;" (assignment_expression "pbVar15 = (bfd_section *)local_5c->name" identifier = (cast_expression "(bfd_section *)local_5c->name" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_5c->name" identifier -> field_identifier))) ;) (expression_statement "local_6c = uVar18;" (assignment_expression "local_6c = uVar18" identifier = identifier) ;) }) (else_clause "else {\n            bVar23 = config.split_by_reloc < uVar18;\n            bVar25 = config.split_by_reloc == uVar18;\n            if (uVar18 < config.split_by_reloc) {\n              uVar11 = local_70 + local_58;\n              bVar23 = config.split_by_reloc < uVar11;\n              bVar25 = config.split_by_reloc == uVar11;\n              if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }\n            }\n            pbVar21 = (byte *)pbVar19->name;\n            iVar17 = 5;\n            pbVar20 = pbVar21;\n            pbVar22 = (byte *)".stab";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = *pbVar20 < *pbVar22;\n              bVar25 = *pbVar20 == *pbVar22;\n              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (bVar23) {\n              sVar12 = strlen((char *)pbVar21);\n              iVar17 = 4;\n              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar21 = pbVar21 + (sVar12 - 3);\n              pbVar20 = &DAT_0004de1c;\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;\n            }\n            else {\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }\n            pbVar21 = (byte *)pbVar3->name;\n            sVar12 = strlen((char *)pbVar21);\n            pcVar13 = (char *)xmalloc();\n            memcpy(pcVar13,pbVar21,sVar12 + 1);\n            if (sVar12 != 0) {\n              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }\n              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = &count;\n            iVar17 = bfd_get_unique_section_name();\n            if (((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)) {\n              pcVar13 = (char *)dcgettext();\n              einfo(pcVar13);\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar8 = (code *)invalidInstructionException();\n              (*pcVar8)();\n            }\n            free(pcVar13);\n            fVar4 = pbVar19->flags;\n            *(undefined1 *)(iVar17 + 0xc) = 3;\n            *(undefined4 *)(iVar17 + 0x18) = 0;\n            *(sec_ptr *)(iVar17 + 0x14) = pbVar14;\n            pbVar14->flags = fVar4;\n            pbVar14->vma = pbVar19->vma;\n            pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;\n            bVar5 = pbVar19->lma;\n            pbVar14->size = 0;\n            pbVar14->lma = bVar5;\n            bVar5 = pbVar19->output_offset;\n            pbVar14->output_section = pbVar14;\n            pbVar14->output_offset = bVar5;\n            uVar18 = pbVar19->alignment_power;\n            pbVar14->orelocation = (reloc_cache_entry **)0x0;\n            pbVar14->alignment_power = uVar18;\n            pbVar6 = pbVar10->xvec;\n            pbVar14->reloc_count = 0;\n            (*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14);\n            pbVar14->map_tail = pbVar19->map_tail;\n            uVar18 = local_5c->index;\n            (pbVar14->map_head).s = local_5c;\n            (pbVar19->map_tail).link_order = (bfd_link_order *)local_48;\n            local_48->name = (char *)0x0;\n            local_4c = local_4c + uVar18;\n            pbVar14->size = pbVar19->size - uVar18;\n            pbVar19->size = uVar18;\n            pbVar14->vma = local_4c;\n            pbVar14->lma = local_4c;\n            pbVar15 = local_5c;\n            uVar11 = uVar18;\n            while( true ) {\n              pbVar15->index = uVar11 - uVar18;\n              if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }\n              pbVar15 = (bfd_section *)pbVar15->name;\n              if (pbVar15 == (bfd_section *)0x0) break;\n              uVar11 = pbVar15->index;\n            }\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_58 = local_70;\n            local_64 = local_68;\n            pbVar19 = pbVar14;\n          }" else (compound_statement "{\n            bVar23 = config.split_by_reloc < uVar18;\n            bVar25 = config.split_by_reloc == uVar18;\n            if (uVar18 < config.split_by_reloc) {\n              uVar11 = local_70 + local_58;\n              bVar23 = config.split_by_reloc < uVar11;\n              bVar25 = config.split_by_reloc == uVar11;\n              if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }\n            }\n            pbVar21 = (byte *)pbVar19->name;\n            iVar17 = 5;\n            pbVar20 = pbVar21;\n            pbVar22 = (byte *)".stab";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = *pbVar20 < *pbVar22;\n              bVar25 = *pbVar20 == *pbVar22;\n              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);\n            bVar24 = false;\n            bVar23 = (!bVar23 && !bVar25) == bVar23;\n            if (bVar23) {\n              sVar12 = strlen((char *)pbVar21);\n              iVar17 = 4;\n              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar21 = pbVar21 + (sVar12 - 3);\n              pbVar20 = &DAT_0004de1c;\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;\n            }\n            else {\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }\n            pbVar21 = (byte *)pbVar3->name;\n            sVar12 = strlen((char *)pbVar21);\n            pcVar13 = (char *)xmalloc();\n            memcpy(pcVar13,pbVar21,sVar12 + 1);\n            if (sVar12 != 0) {\n              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }\n              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = &count;\n            iVar17 = bfd_get_unique_section_name();\n            if (((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)) {\n              pcVar13 = (char *)dcgettext();\n              einfo(pcVar13);\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar8 = (code *)invalidInstructionException();\n              (*pcVar8)();\n            }\n            free(pcVar13);\n            fVar4 = pbVar19->flags;\n            *(undefined1 *)(iVar17 + 0xc) = 3;\n            *(undefined4 *)(iVar17 + 0x18) = 0;\n            *(sec_ptr *)(iVar17 + 0x14) = pbVar14;\n            pbVar14->flags = fVar4;\n            pbVar14->vma = pbVar19->vma;\n            pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;\n            bVar5 = pbVar19->lma;\n            pbVar14->size = 0;\n            pbVar14->lma = bVar5;\n            bVar5 = pbVar19->output_offset;\n            pbVar14->output_section = pbVar14;\n            pbVar14->output_offset = bVar5;\n            uVar18 = pbVar19->alignment_power;\n            pbVar14->orelocation = (reloc_cache_entry **)0x0;\n            pbVar14->alignment_power = uVar18;\n            pbVar6 = pbVar10->xvec;\n            pbVar14->reloc_count = 0;\n            (*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14);\n            pbVar14->map_tail = pbVar19->map_tail;\n            uVar18 = local_5c->index;\n            (pbVar14->map_head).s = local_5c;\n            (pbVar19->map_tail).link_order = (bfd_link_order *)local_48;\n            local_48->name = (char *)0x0;\n            local_4c = local_4c + uVar18;\n            pbVar14->size = pbVar19->size - uVar18;\n            pbVar19->size = uVar18;\n            pbVar14->vma = local_4c;\n            pbVar14->lma = local_4c;\n            pbVar15 = local_5c;\n            uVar11 = uVar18;\n            while( true ) {\n              pbVar15->index = uVar11 - uVar18;\n              if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }\n              pbVar15 = (bfd_section *)pbVar15->name;\n              if (pbVar15 == (bfd_section *)0x0) break;\n              uVar11 = pbVar15->index;\n            }\n            pbVar15 = (bfd_section *)local_5c->name;\n            local_58 = local_70;\n            local_64 = local_68;\n            pbVar19 = pbVar14;\n          }" { (expression_statement "bVar23 = config.split_by_reloc < uVar18;" (assignment_expression "bVar23 = config.split_by_reloc < uVar18" identifier = (binary_expression "config.split_by_reloc < uVar18" (field_expression "config.split_by_reloc" identifier . field_identifier) < identifier)) ;) (expression_statement "bVar25 = config.split_by_reloc == uVar18;" (assignment_expression "bVar25 = config.split_by_reloc == uVar18" identifier = (binary_expression "config.split_by_reloc == uVar18" (field_expression "config.split_by_reloc" identifier . field_identifier) == identifier)) ;) (if_statement "if (uVar18 < config.split_by_reloc) {\n              uVar11 = local_70 + local_58;\n              bVar23 = config.split_by_reloc < uVar11;\n              bVar25 = config.split_by_reloc == uVar11;\n              if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }\n            }" if (parenthesized_expression "(uVar18 < config.split_by_reloc)" ( (binary_expression "uVar18 < config.split_by_reloc" identifier < (field_expression "config.split_by_reloc" identifier . field_identifier)) )) (compound_statement "{\n              uVar11 = local_70 + local_58;\n              bVar23 = config.split_by_reloc < uVar11;\n              bVar25 = config.split_by_reloc == uVar11;\n              if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }\n            }" { (expression_statement "uVar11 = local_70 + local_58;" (assignment_expression "uVar11 = local_70 + local_58" identifier = (binary_expression "local_70 + local_58" identifier + identifier)) ;) (expression_statement "bVar23 = config.split_by_reloc < uVar11;" (assignment_expression "bVar23 = config.split_by_reloc < uVar11" identifier = (binary_expression "config.split_by_reloc < uVar11" (field_expression "config.split_by_reloc" identifier . field_identifier) < identifier)) ;) (expression_statement "bVar25 = config.split_by_reloc == uVar11;" (assignment_expression "bVar25 = config.split_by_reloc == uVar11" identifier = (binary_expression "config.split_by_reloc == uVar11" (field_expression "config.split_by_reloc" identifier . field_identifier) == identifier)) ;) (if_statement "if (uVar11 < config.split_by_reloc) {\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }" if (parenthesized_expression "(uVar11 < config.split_by_reloc)" ( (binary_expression "uVar11 < config.split_by_reloc" identifier < (field_expression "config.split_by_reloc" identifier . field_identifier)) )) (compound_statement "{\n                bVar23 = local_68 + local_64 < config.split_by_file;\n                bVar25 = local_68 + local_64 == config.split_by_file;\n                if (bVar23) goto LAB_0002d64e;\n              }" { (expression_statement "bVar23 = local_68 + local_64 < config.split_by_file;" (assignment_expression "bVar23 = local_68 + local_64 < config.split_by_file" identifier = (binary_expression "local_68 + local_64 < config.split_by_file" (binary_expression "local_68 + local_64" identifier + identifier) < (field_expression "config.split_by_file" identifier . field_identifier))) ;) (expression_statement "bVar25 = local_68 + local_64 == config.split_by_file;" (assignment_expression "bVar25 = local_68 + local_64 == config.split_by_file" identifier = (binary_expression "local_68 + local_64 == config.split_by_file" (binary_expression "local_68 + local_64" identifier + identifier) == (field_expression "config.split_by_file" identifier . field_identifier))) ;) (if_statement "if (bVar23) goto LAB_0002d64e;" if (parenthesized_expression "(bVar23)" ( identifier )) (goto_statement "goto LAB_0002d64e;" goto statement_identifier ;)) })) })) (expression_statement "pbVar21 = (byte *)pbVar19->name;" (assignment_expression "pbVar21 = (byte *)pbVar19->name" identifier = (cast_expression "(byte *)pbVar19->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar19->name" identifier -> field_identifier))) ;) (expression_statement "iVar17 = 5;" (assignment_expression "iVar17 = 5" identifier = number_literal) ;) (expression_statement "pbVar20 = pbVar21;" (assignment_expression "pbVar20 = pbVar21" identifier = identifier) ;) (expression_statement "pbVar22 = (byte *)".stab";" (assignment_expression "pbVar22 = (byte *)".stab"" identifier = (cast_expression "(byte *)".stab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".stab"" " string_content "))) ;) (do_statement "do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = *pbVar20 < *pbVar22;\n              bVar25 = *pbVar20 == *pbVar22;\n              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n            } while (bVar25);" do (compound_statement "{\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar23 = *pbVar20 < *pbVar22;\n              bVar25 = *pbVar20 == *pbVar22;\n              pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n            }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar20 < *pbVar22;" (assignment_expression "bVar23 = *pbVar20 < *pbVar22" identifier = (binary_expression "*pbVar20 < *pbVar22" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar25 = *pbVar20 == *pbVar22;" (assignment_expression "bVar25 = *pbVar20 == *pbVar22" identifier = (binary_expression "*pbVar20 == *pbVar22" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar23 && !bVar25) == bVar23;" (assignment_expression "bVar23 = (!bVar23 && !bVar25) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar23) {\n              sVar12 = strlen((char *)pbVar21);\n              iVar17 = 4;\n              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar21 = pbVar21 + (sVar12 - 3);\n              pbVar20 = &DAT_0004de1c;\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;\n            }\n            else {\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\n              sVar12 = strlen((char *)pbVar21);\n              iVar17 = 4;\n              bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar25 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar21 = pbVar21 + (sVar12 - 3);\n              pbVar20 = &DAT_0004de1c;\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;\n            }" { (expression_statement "sVar12 = strlen((char *)pbVar21);" (assignment_expression "sVar12 = strlen((char *)pbVar21)" identifier = (call_expression "strlen((char *)pbVar21)" identifier (argument_list "((char *)pbVar21)" ( (cast_expression "(char *)pbVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (expression_statement "bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74;" (assignment_expression "bVar23 = (undefined1 *)0xffffffef < &stack0xffffff74" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff74" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff74" & identifier))) ;) (expression_statement "bVar25 = &stack0x00000000 == (undefined1 *)0x7c;" (assignment_expression "bVar25 = &stack0x00000000 == (undefined1 *)0x7c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x7c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x7c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar21 = pbVar21 + (sVar12 - 3);" (assignment_expression "pbVar21 = pbVar21 + (sVar12 - 3)" identifier = (binary_expression "pbVar21 + (sVar12 - 3)" identifier + (parenthesized_expression "(sVar12 - 3)" ( (binary_expression "sVar12 - 3" identifier - number_literal) )))) ;) (expression_statement "pbVar20 = &DAT_0004de1c;" (assignment_expression "pbVar20 = &DAT_0004de1c" identifier = (pointer_expression "&DAT_0004de1c" & identifier)) ;) (do_statement "do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar25);" do (compound_statement "{\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar23 = *pbVar21 < *pbVar20;\n                bVar25 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar21 < *pbVar20;" (assignment_expression "bVar23 = *pbVar21 < *pbVar20" identifier = (binary_expression "*pbVar21 < *pbVar20" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar25 = *pbVar21 == *pbVar20;" (assignment_expression "bVar25 = *pbVar21 == *pbVar20" identifier = (binary_expression "*pbVar21 == *pbVar20" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar25) == bVar23) goto LAB_0002d64e;" if (parenthesized_expression "((!bVar23 && !bVar25) == bVar23)" ( (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0002d64e;" goto statement_identifier ;)) }) (else_clause "else {\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }" else (compound_statement "{\n              iVar17 = 0xe;\n              pbVar20 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);\n              if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;\n            }" { (expression_statement "iVar17 = 0xe;" (assignment_expression "iVar17 = 0xe" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)"$GDB_STRINGS$";" (assignment_expression "pbVar20 = (byte *)"$GDB_STRINGS$"" identifier = (cast_expression "(byte *)"$GDB_STRINGS$"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""$GDB_STRINGS$"" " string_content "))) ;) (do_statement "do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              } while (bVar23);" do (compound_statement "{\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar24 = *pbVar21 < *pbVar20;\n                bVar23 = *pbVar21 == *pbVar20;\n                pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n              }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar21 < *pbVar20;" (assignment_expression "bVar24 = *pbVar21 < *pbVar20" identifier = (binary_expression "*pbVar21 < *pbVar20" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar23 = *pbVar21 == *pbVar20;" (assignment_expression "bVar23 = *pbVar21 == *pbVar20" identifier = (binary_expression "*pbVar21 == *pbVar20" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar23) == bVar24) goto LAB_0002d64e;" if (parenthesized_expression "((!bVar24 && !bVar23) == bVar24)" ( (binary_expression "(!bVar24 && !bVar23) == bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" ( (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0002d64e;" goto statement_identifier ;)) }))) (expression_statement "pbVar21 = (byte *)pbVar3->name;" (assignment_expression "pbVar21 = (byte *)pbVar3->name" identifier = (cast_expression "(byte *)pbVar3->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar3->name" identifier -> field_identifier))) ;) (expression_statement "sVar12 = strlen((char *)pbVar21);" (assignment_expression "sVar12 = strlen((char *)pbVar21)" identifier = (call_expression "strlen((char *)pbVar21)" identifier (argument_list "((char *)pbVar21)" ( (cast_expression "(char *)pbVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar13 = (char *)xmalloc();" (assignment_expression "pcVar13 = (char *)xmalloc()" identifier = (cast_expression "(char *)xmalloc()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "memcpy(pcVar13,pbVar21,sVar12 + 1);" (call_expression "memcpy(pcVar13,pbVar21,sVar12 + 1)" identifier (argument_list "(pcVar13,pbVar21,sVar12 + 1)" ( identifier , identifier , (binary_expression "sVar12 + 1" identifier + number_literal) ))) ;) (if_statement "if (sVar12 != 0) {\n              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }\n              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }\n            }" if (parenthesized_expression "(sVar12 != 0)" ( (binary_expression "sVar12 != 0" identifier != number_literal) )) (compound_statement "{\n              bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }\n              if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }\n            }" { (expression_statement "bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2];" (assignment_expression "bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2]" identifier = (subscript_expression "puVar9[(uint)(byte)pcVar13[sVar12 - 1] * 2]" identifier [ (binary_expression "(uint)(byte)pcVar13[sVar12 - 1] * 2" (cast_expression "(uint)(byte)pcVar13[sVar12 - 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar13[sVar12 - 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar13[sVar12 - 1]" identifier [ (binary_expression "sVar12 - 1" identifier - number_literal) ]))) * number_literal) ])) ;) (while_statement "while ((bVar1 & 4) != 0) {\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }" while (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                if (sVar12 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];\n                sVar12 = sVar12 - 1;\n              }" { (if_statement "if (sVar12 - 1 == 0) goto LAB_0002d408;" if (parenthesized_expression "(sVar12 - 1 == 0)" ( (binary_expression "sVar12 - 1 == 0" (binary_expression "sVar12 - 1" identifier - number_literal) == number_literal) )) (goto_statement "goto LAB_0002d408;" goto statement_identifier ;)) (expression_statement "bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2];" (assignment_expression "bVar1 = puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2]" identifier = (subscript_expression "puVar9[(uint)(byte)pcVar13[sVar12 - 2] * 2]" identifier [ (binary_expression "(uint)(byte)pcVar13[sVar12 - 2] * 2" (cast_expression "(uint)(byte)pcVar13[sVar12 - 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar13[sVar12 - 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar13[sVar12 - 2]" identifier [ (binary_expression "sVar12 - 2" identifier - number_literal) ]))) * number_literal) ])) ;) (expression_statement "sVar12 = sVar12 - 1;" (assignment_expression "sVar12 = sVar12 - 1" identifier = (binary_expression "sVar12 - 1" identifier - number_literal)) ;) })) (if_statement "if ((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')) {\n                pcVar13[sVar12 - 1] = '\0';\n              }" if (parenthesized_expression "((sVar12 != 1) && (pcVar13[sVar12 - 1] == '.'))" ( (binary_expression "(sVar12 != 1) && (pcVar13[sVar12 - 1] == '.')" (parenthesized_expression "(sVar12 != 1)" ( (binary_expression "sVar12 != 1" identifier != number_literal) )) && (parenthesized_expression "(pcVar13[sVar12 - 1] == '.')" ( (binary_expression "pcVar13[sVar12 - 1] == '.'" (subscript_expression "pcVar13[sVar12 - 1]" identifier [ (binary_expression "sVar12 - 1" identifier - number_literal) ]) == (char_literal "'.'" ' character ')) ))) )) (compound_statement "{\n                pcVar13[sVar12 - 1] = '\0';\n              }" { (expression_statement "pcVar13[sVar12 - 1] = '\0';" (assignment_expression "pcVar13[sVar12 - 1] = '\0'" (subscript_expression "pcVar13[sVar12 - 1]" identifier [ (binary_expression "sVar12 - 1" identifier - number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) })) (labeled_statement "LAB_0002d408:\n            if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }" statement_identifier : (if_statement "if ((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0) {\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }" if (parenthesized_expression "((pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0)" ( (binary_expression "(pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd) == 0" (parenthesized_expression "(pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd)" ( (binary_expression "pbVar10->xvec->flavour - bfd_target_coff_flavour & 0xfffffffd" (binary_expression "pbVar10->xvec->flavour - bfd_target_coff_flavour" (field_expression "pbVar10->xvec->flavour" (field_expression "pbVar10->xvec" identifier -> field_identifier) -> field_identifier) - identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              sVar12 = strlen(pcVar13);\n              bVar23 = sVar12 < 5;\n              bVar25 = sVar12 == 5;\n              if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }\n            }" { (expression_statement "sVar12 = strlen(pcVar13);" (assignment_expression "sVar12 = strlen(pcVar13)" identifier = (call_expression "strlen(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier )))) ;) (expression_statement "bVar23 = sVar12 < 5;" (assignment_expression "bVar23 = sVar12 < 5" identifier = (binary_expression "sVar12 < 5" identifier < number_literal)) ;) (expression_statement "bVar25 = sVar12 == 5;" (assignment_expression "bVar25 = sVar12 == 5" identifier = (binary_expression "sVar12 == 5" identifier == number_literal)) ;) (if_statement "if (5 < sVar12) {\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }" if (parenthesized_expression "(5 < sVar12)" ( (binary_expression "5 < sVar12" number_literal < identifier) )) (compound_statement "{\n                iVar17 = 5;\n                pbVar20 = pbVar21;\n                pbVar22 = (byte *)".stab";\n                do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);\n                bVar24 = false;\n                bVar23 = (!bVar23 && !bVar25) == bVar23;\n                if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                pcVar13 = (char *)dcgettext();\n                einfo(pcVar13);\n                goto LAB_0002d60e;\n              }" { (expression_statement "iVar17 = 5;" (assignment_expression "iVar17 = 5" identifier = number_literal) ;) (expression_statement "pbVar20 = pbVar21;" (assignment_expression "pbVar20 = pbVar21" identifier = identifier) ;) (expression_statement "pbVar22 = (byte *)".stab";" (assignment_expression "pbVar22 = (byte *)".stab"" identifier = (cast_expression "(byte *)".stab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".stab"" " string_content "))) ;) (do_statement "do {\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                } while (bVar25);" do (compound_statement "{\n                  if (iVar17 == 0) break;\n                  iVar17 = iVar17 + -1;\n                  bVar23 = *pbVar20 < *pbVar22;\n                  bVar25 = *pbVar20 == *pbVar22;\n                  pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;\n                }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar20 < *pbVar22;" (assignment_expression "bVar23 = *pbVar20 < *pbVar22" identifier = (binary_expression "*pbVar20 < *pbVar22" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar25 = *pbVar20 == *pbVar22;" (assignment_expression "bVar25 = *pbVar20 == *pbVar22" identifier = (binary_expression "*pbVar20 == *pbVar22" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar23 && !bVar25) == bVar23;" (assignment_expression "bVar23 = (!bVar23 && !bVar25) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n                  iVar17 = 0xe;\n                  pbVar20 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);\n                  if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }" { (expression_statement "iVar17 = 0xe;" (assignment_expression "iVar17 = 0xe" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)"$GDB_SYMBOLS$";" (assignment_expression "pbVar20 = (byte *)"$GDB_SYMBOLS$"" identifier = (cast_expression "(byte *)"$GDB_SYMBOLS$"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""$GDB_SYMBOLS$"" " string_content "))) ;) (do_statement "do {\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  } while (bVar23);" do (compound_statement "{\n                    if (iVar17 == 0) break;\n                    iVar17 = iVar17 + -1;\n                    bVar24 = *pbVar21 < *pbVar20;\n                    bVar23 = *pbVar21 == *pbVar20;\n                    pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;\n                    pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;\n                  }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar21 < *pbVar20;" (assignment_expression "bVar24 = *pbVar21 < *pbVar20" identifier = (binary_expression "*pbVar21 < *pbVar20" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar23 = *pbVar21 == *pbVar20;" (assignment_expression "bVar23 = *pbVar21 == *pbVar20" identifier = (binary_expression "*pbVar21 == *pbVar20" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar26 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar26 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar26 * -2" identifier + (binary_expression "(uint)bVar26 * -2" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar23) != bVar24) {\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }" if (parenthesized_expression "((!bVar24 && !bVar23) != bVar24)" ( (binary_expression "(!bVar24 && !bVar23) != bVar24" (parenthesized_expression "(!bVar24 && !bVar23)" ( (binary_expression "!bVar24 && !bVar23" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) != identifier) )) (compound_statement "{\n                    pcVar13[5] = '\0';\n                    goto LAB_0002d470;\n                  }" { (expression_statement "pcVar13[5] = '\0';" (assignment_expression "pcVar13[5] = '\0'" (subscript_expression "pcVar13[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_0002d470;" goto statement_identifier ;) })) })) (expression_statement "pcVar13 = (char *)dcgettext();" (assignment_expression "pcVar13 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "einfo(pcVar13);" (call_expression "einfo(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) (goto_statement "goto LAB_0002d60e;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0002d470:\n            in_stack_ffffff7c = &count;" statement_identifier : (expression_statement "in_stack_ffffff7c = &count;" (assignment_expression "in_stack_ffffff7c = &count" identifier = (pointer_expression "&count" & identifier)) ;)) (expression_statement "iVar17 = bfd_get_unique_section_name();" (assignment_expression "iVar17 = bfd_get_unique_section_name()" identifier = (call_expression "bfd_get_unique_section_name()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)) {\n              pcVar13 = (char *)dcgettext();\n              einfo(pcVar13);\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar8 = (code *)invalidInstructionException();\n              (*pcVar8)();\n            }" if (parenthesized_expression "(((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0))" ( (binary_expression "((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)) ||\n               (iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)" (parenthesized_expression "((iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0))" ( (binary_expression "(iVar17 == 0) ||\n                (pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)" (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) || (parenthesized_expression "(pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0)" ( (comma_expression "pbVar14 = (sec_ptr)bfd_make_section_anyway(), pbVar14 == (sec_ptr)0x0" (assignment_expression "pbVar14 = (sec_ptr)bfd_make_section_anyway()" identifier = (cast_expression "(sec_ptr)bfd_make_section_anyway()" ( (type_descriptor "sec_ptr" type_identifier) ) (call_expression "bfd_make_section_anyway()" identifier (argument_list "()" ( ))))) , (binary_expression "pbVar14 == (sec_ptr)0x0" identifier == (cast_expression "(sec_ptr)0x0" ( (type_descriptor "sec_ptr" type_identifier) ) number_literal))) ))) )) || (parenthesized_expression "(iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0)" ( (comma_expression "iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1), iVar17 == 0" (assignment_expression "iVar17 = bfd_link_hash_lookup(link_info.hash,iVar17,1,1)" identifier = (call_expression "bfd_link_hash_lookup(link_info.hash,iVar17,1,1)" identifier (argument_list "(link_info.hash,iVar17,1,1)" ( (field_expression "link_info.hash" identifier . field_identifier) , identifier , number_literal , number_literal )))) , (binary_expression "iVar17 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              pcVar13 = (char *)dcgettext();\n              einfo(pcVar13);\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    /* WARNING: Does not return */\n              pcVar8 = (code *)invalidInstructionException();\n              (*pcVar8)();\n            }" { (expression_statement "pcVar13 = (char *)dcgettext();" (assignment_expression "pcVar13 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "einfo(pcVar13);" (call_expression "einfo(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) (labeled_statement "LAB_0002d60e:\n              _DAT_000000a0 = local_5c;" statement_identifier : (expression_statement "_DAT_000000a0 = local_5c;" (assignment_expression "_DAT_000000a0 = local_5c" identifier = identifier) ;)) comment (expression_statement "pcVar8 = (code *)invalidInstructionException();" (assignment_expression "pcVar8 = (code *)invalidInstructionException()" identifier = (cast_expression "(code *)invalidInstructionException()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "invalidInstructionException()" identifier (argument_list "()" ( ))))) ;) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))) ;) })) (expression_statement "free(pcVar13);" (call_expression "free(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) (expression_statement "fVar4 = pbVar19->flags;" (assignment_expression "fVar4 = pbVar19->flags" identifier = (field_expression "pbVar19->flags" identifier -> field_identifier)) ;) (expression_statement "*(undefined1 *)(iVar17 + 0xc) = 3;" (assignment_expression "*(undefined1 *)(iVar17 + 0xc) = 3" (pointer_expression "*(undefined1 *)(iVar17 + 0xc)" * (cast_expression "(undefined1 *)(iVar17 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xc)" ( (binary_expression "iVar17 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar17 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar17 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar17 + 0x18)" * (cast_expression "(undefined4 *)(iVar17 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(sec_ptr *)(iVar17 + 0x14) = pbVar14;" (assignment_expression "*(sec_ptr *)(iVar17 + 0x14) = pbVar14" (pointer_expression "*(sec_ptr *)(iVar17 + 0x14)" * (cast_expression "(sec_ptr *)(iVar17 + 0x14)" ( (type_descriptor "sec_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x14)" ( (binary_expression "iVar17 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar14->flags = fVar4;" (assignment_expression "pbVar14->flags = fVar4" (field_expression "pbVar14->flags" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar14->vma = pbVar19->vma;" (assignment_expression "pbVar14->vma = pbVar19->vma" (field_expression "pbVar14->vma" identifier -> field_identifier) = (field_expression "pbVar19->vma" identifier -> field_identifier)) ;) (expression_statement "pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;" (assignment_expression "pbVar14->field_0x18 = pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1" (field_expression "pbVar14->field_0x18" identifier -> field_identifier) = (binary_expression "pbVar14->field_0x18 & 0xfe | pbVar19->field_0x18 & 1" (binary_expression "pbVar14->field_0x18 & 0xfe" (field_expression "pbVar14->field_0x18" identifier -> field_identifier) & number_literal) | (binary_expression "pbVar19->field_0x18 & 1" (field_expression "pbVar19->field_0x18" identifier -> field_identifier) & number_literal))) ;) (expression_statement "bVar5 = pbVar19->lma;" (assignment_expression "bVar5 = pbVar19->lma" identifier = (field_expression "pbVar19->lma" identifier -> field_identifier)) ;) (expression_statement "pbVar14->size = 0;" (assignment_expression "pbVar14->size = 0" (field_expression "pbVar14->size" identifier -> field_identifier) = number_literal) ;) (expression_statement "pbVar14->lma = bVar5;" (assignment_expression "pbVar14->lma = bVar5" (field_expression "pbVar14->lma" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar5 = pbVar19->output_offset;" (assignment_expression "bVar5 = pbVar19->output_offset" identifier = (field_expression "pbVar19->output_offset" identifier -> field_identifier)) ;) (expression_statement "pbVar14->output_section = pbVar14;" (assignment_expression "pbVar14->output_section = pbVar14" (field_expression "pbVar14->output_section" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar14->output_offset = bVar5;" (assignment_expression "pbVar14->output_offset = bVar5" (field_expression "pbVar14->output_offset" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar18 = pbVar19->alignment_power;" (assignment_expression "uVar18 = pbVar19->alignment_power" identifier = (field_expression "pbVar19->alignment_power" identifier -> field_identifier)) ;) (expression_statement "pbVar14->orelocation = (reloc_cache_entry **)0x0;" (assignment_expression "pbVar14->orelocation = (reloc_cache_entry **)0x0" (field_expression "pbVar14->orelocation" identifier -> field_identifier) = (cast_expression "(reloc_cache_entry **)0x0" ( (type_descriptor "reloc_cache_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pbVar14->alignment_power = uVar18;" (assignment_expression "pbVar14->alignment_power = uVar18" (field_expression "pbVar14->alignment_power" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar6 = pbVar10->xvec;" (assignment_expression "pbVar6 = pbVar10->xvec" identifier = (field_expression "pbVar10->xvec" identifier -> field_identifier)) ;) (expression_statement "pbVar14->reloc_count = 0;" (assignment_expression "pbVar14->reloc_count = 0" (field_expression "pbVar14->reloc_count" identifier -> field_identifier) = number_literal) ;) (expression_statement "(*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14);" (call_expression "(*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,pbVar14)" (parenthesized_expression "(*pbVar6->_bfd_copy_private_section_data)" ( (pointer_expression "*pbVar6->_bfd_copy_private_section_data" * (field_expression "pbVar6->_bfd_copy_private_section_data" identifier -> field_identifier)) )) (argument_list "(pbVar10,pbVar19,pbVar10,pbVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "pbVar14->map_tail = pbVar19->map_tail;" (assignment_expression "pbVar14->map_tail = pbVar19->map_tail" (field_expression "pbVar14->map_tail" identifier -> field_identifier) = (field_expression "pbVar19->map_tail" identifier -> field_identifier)) ;) (expression_statement "uVar18 = local_5c->index;" (assignment_expression "uVar18 = local_5c->index" identifier = (field_expression "local_5c->index" identifier -> field_identifier)) ;) (expression_statement "(pbVar14->map_head).s = local_5c;" (assignment_expression "(pbVar14->map_head).s = local_5c" (field_expression "(pbVar14->map_head).s" (parenthesized_expression "(pbVar14->map_head)" ( (field_expression "pbVar14->map_head" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pbVar19->map_tail).link_order = (bfd_link_order *)local_48;" (assignment_expression "(pbVar19->map_tail).link_order = (bfd_link_order *)local_48" (field_expression "(pbVar19->map_tail).link_order" (parenthesized_expression "(pbVar19->map_tail)" ( (field_expression "pbVar19->map_tail" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(bfd_link_order *)local_48" ( (type_descriptor "bfd_link_order *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_48->name = (char *)0x0;" (assignment_expression "local_48->name = (char *)0x0" (field_expression "local_48->name" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = local_4c + uVar18;" (assignment_expression "local_4c = local_4c + uVar18" identifier = (binary_expression "local_4c + uVar18" identifier + identifier)) ;) (expression_statement "pbVar14->size = pbVar19->size - uVar18;" (assignment_expression "pbVar14->size = pbVar19->size - uVar18" (field_expression "pbVar14->size" identifier -> field_identifier) = (binary_expression "pbVar19->size - uVar18" (field_expression "pbVar19->size" identifier -> field_identifier) - identifier)) ;) (expression_statement "pbVar19->size = uVar18;" (assignment_expression "pbVar19->size = uVar18" (field_expression "pbVar19->size" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar14->vma = local_4c;" (assignment_expression "pbVar14->vma = local_4c" (field_expression "pbVar14->vma" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar14->lma = local_4c;" (assignment_expression "pbVar14->lma = local_4c" (field_expression "pbVar14->lma" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar15 = local_5c;" (assignment_expression "pbVar15 = local_5c" identifier = identifier) ;) (expression_statement "uVar11 = uVar18;" (assignment_expression "uVar11 = uVar18" identifier = identifier) ;) (while_statement "while( true ) {\n              pbVar15->index = uVar11 - uVar18;\n              if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }\n              pbVar15 = (bfd_section *)pbVar15->name;\n              if (pbVar15 == (bfd_section *)0x0) break;\n              uVar11 = pbVar15->index;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              pbVar15->index = uVar11 - uVar18;\n              if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }\n              pbVar15 = (bfd_section *)pbVar15->name;\n              if (pbVar15 == (bfd_section *)0x0) break;\n              uVar11 = pbVar15->index;\n            }" { (expression_statement "pbVar15->index = uVar11 - uVar18;" (assignment_expression "pbVar15->index = uVar11 - uVar18" (field_expression "pbVar15->index" identifier -> field_identifier) = (binary_expression "uVar11 - uVar18" identifier - identifier)) ;) (if_statement "if (pbVar15->id == 1) {\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }" if (parenthesized_expression "(pbVar15->id == 1)" ( (binary_expression "pbVar15->id == 1" (field_expression "pbVar15->id" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                pbVar7 = pbVar15->prev;\n                pbVar7->output_section = pbVar14;\n                pbVar7->output_offset = uVar11 - uVar18;\n              }" { (expression_statement "pbVar7 = pbVar15->prev;" (assignment_expression "pbVar7 = pbVar15->prev" identifier = (field_expression "pbVar15->prev" identifier -> field_identifier)) ;) (expression_statement "pbVar7->output_section = pbVar14;" (assignment_expression "pbVar7->output_section = pbVar14" (field_expression "pbVar7->output_section" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar7->output_offset = uVar11 - uVar18;" (assignment_expression "pbVar7->output_offset = uVar11 - uVar18" (field_expression "pbVar7->output_offset" identifier -> field_identifier) = (binary_expression "uVar11 - uVar18" identifier - identifier)) ;) })) (expression_statement "pbVar15 = (bfd_section *)pbVar15->name;" (assignment_expression "pbVar15 = (bfd_section *)pbVar15->name" identifier = (cast_expression "(bfd_section *)pbVar15->name" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar15->name" identifier -> field_identifier))) ;) (if_statement "if (pbVar15 == (bfd_section *)0x0) break;" if (parenthesized_expression "(pbVar15 == (bfd_section *)0x0)" ( (binary_expression "pbVar15 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = pbVar15->index;" (assignment_expression "uVar11 = pbVar15->index" identifier = (field_expression "pbVar15->index" identifier -> field_identifier)) ;) })) (expression_statement "pbVar15 = (bfd_section *)local_5c->name;" (assignment_expression "pbVar15 = (bfd_section *)local_5c->name" identifier = (cast_expression "(bfd_section *)local_5c->name" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_5c->name" identifier -> field_identifier))) ;) (expression_statement "local_58 = local_70;" (assignment_expression "local_58 = local_70" identifier = identifier) ;) (expression_statement "local_64 = local_68;" (assignment_expression "local_64 = local_68" identifier = identifier) ;) (expression_statement "pbVar19 = pbVar14;" (assignment_expression "pbVar19 = pbVar14" identifier = identifier) ;) }))) (if_statement "if (pbVar15 == (bfd_section *)0x0) break;" if (parenthesized_expression "(pbVar15 == (bfd_section *)0x0)" ( (binary_expression "pbVar15 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "local_48 = local_5c;" (assignment_expression "local_48 = local_5c" identifier = identifier) ;) (expression_statement "local_5c = pbVar15;" (assignment_expression "local_5c = pbVar15" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pbVar3 = pbVar3->next;" (assignment_expression "pbVar3 = pbVar3->next" identifier = (field_expression "pbVar3->next" identifier -> field_identifier)) ;) (expression_statement "pbVar2 = (bfd_section *)((int)&pbVar2[-1].map_tail + 3);" (assignment_expression "pbVar2 = (bfd_section *)((int)&pbVar2[-1].map_tail + 3)" identifier = (cast_expression "(bfd_section *)((int)&pbVar2[-1].map_tail + 3)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar2[-1].map_tail + 3)" ( (binary_expression "(int)&pbVar2[-1].map_tail + 3" (cast_expression "(int)&pbVar2[-1].map_tail" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar2[-1].map_tail" & (field_expression "pbVar2[-1].map_tail" (subscript_expression "pbVar2[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pbVar15 = pbVar3;" (assignment_expression "pbVar15 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar7 = pbVar2;" (assignment_expression "pbVar7 = pbVar2" identifier = identifier) ;) })) })) (expression_statement "local_54 = &link_info;" (assignment_expression "local_54 = &link_info" identifier = (pointer_expression "&link_info" & identifier)) ;) (expression_statement "bVar16 = (*(link_info.output_bfd)->xvec->_bfd_final_link)(link_info.output_bfd,&link_info);" (assignment_expression "bVar16 = (*(link_info.output_bfd)->xvec->_bfd_final_link)(link_info.output_bfd,&link_info)" identifier = (call_expression "(*(link_info.output_bfd)->xvec->_bfd_final_link)(link_info.output_bfd,&link_info)" (parenthesized_expression "(*(link_info.output_bfd)->xvec->_bfd_final_link)" ( (pointer_expression "*(link_info.output_bfd)->xvec->_bfd_final_link" * (field_expression "(link_info.output_bfd)->xvec->_bfd_final_link" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier)) )) (argument_list "(link_info.output_bfd,&link_info)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , (pointer_expression "&link_info" & identifier) )))) ;) (if_statement "if (bVar16 != 0) {\n    return;\n  }" if (parenthesized_expression "(bVar16 != 0)" ( (binary_expression "bVar16 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar17 = bfd_get_error();" (assignment_expression "iVar17 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar17 == 0) {\n    xexit();\n    if ((local_54 == (bfd_link_info *)0x0) &&\n       (local_54 = (bfd_link_info *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (bfd_link_info *)0x0)) {\n      pcVar13 = (char *)dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      einfo(pcVar13,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    /* WARNING: Does not return */\n      pcVar8 = (code *)invalidInstructionException();\n      (*pcVar8)();\n    }\n    *(ushort *)&local_54->stacksize = (ushort)local_54->stacksize & 0xfe00;\n    return;\n  }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n    xexit();\n    if ((local_54 == (bfd_link_info *)0x0) &&\n       (local_54 = (bfd_link_info *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (bfd_link_info *)0x0)) {\n      pcVar13 = (char *)dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      einfo(pcVar13,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    /* WARNING: Does not return */\n      pcVar8 = (code *)invalidInstructionException();\n      (*pcVar8)();\n    }\n    *(ushort *)&local_54->stacksize = (ushort)local_54->stacksize & 0xfe00;\n    return;\n  }" { (expression_statement "xexit();" (call_expression "xexit()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((local_54 == (bfd_link_info *)0x0) &&\n       (local_54 = (bfd_link_info *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (bfd_link_info *)0x0)) {\n      pcVar13 = (char *)dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      einfo(pcVar13,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    /* WARNING: Does not return */\n      pcVar8 = (code *)invalidInstructionException();\n      (*pcVar8)();\n    }" if (parenthesized_expression "((local_54 == (bfd_link_info *)0x0) &&\n       (local_54 = (bfd_link_info *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (bfd_link_info *)0x0))" ( (binary_expression "(local_54 == (bfd_link_info *)0x0) &&\n       (local_54 = (bfd_link_info *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (bfd_link_info *)0x0)" (parenthesized_expression "(local_54 == (bfd_link_info *)0x0)" ( (binary_expression "local_54 == (bfd_link_info *)0x0" identifier == (cast_expression "(bfd_link_info *)0x0" ( (type_descriptor "bfd_link_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_54 = (bfd_link_info *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (bfd_link_info *)0x0)" ( (comma_expression "local_54 = (bfd_link_info *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (bfd_link_info *)0x0" (assignment_expression "local_54 = (bfd_link_info *)bfd_hash_allocate(in_stack_ffffff7c,0x14)" identifier = (cast_expression "(bfd_link_info *)bfd_hash_allocate(in_stack_ffffff7c,0x14)" ( (type_descriptor "bfd_link_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_hash_allocate(in_stack_ffffff7c,0x14)" identifier (argument_list "(in_stack_ffffff7c,0x14)" ( identifier , number_literal ))))) , (binary_expression "local_54 == (bfd_link_info *)0x0" identifier == (cast_expression "(bfd_link_info *)0x0" ( (type_descriptor "bfd_link_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      pcVar13 = (char *)dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      einfo(pcVar13,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    /* WARNING: Does not return */\n      pcVar8 = (code *)invalidInstructionException();\n      (*pcVar8)();\n    }" { (expression_statement "pcVar13 = (char *)dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);" (assignment_expression "pcVar13 = (char *)dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0)" identifier (argument_list "(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0)" ( number_literal , (string_literal ""%F%P: bfd_hash_allocate failed creating symbol %s\n"" " string_content escape_sequence ") , number_literal , number_literal ))))) ;) (expression_statement "einfo(pcVar13,0x2d795);" (call_expression "einfo(pcVar13,0x2d795)" identifier (argument_list "(pcVar13,0x2d795)" ( identifier , number_literal ))) ;) (expression_statement "_DAT_00000010 = _DAT_00000010 & 0xfeff;" (assignment_expression "_DAT_00000010 = _DAT_00000010 & 0xfeff" identifier = (binary_expression "_DAT_00000010 & 0xfeff" identifier & number_literal)) ;) comment (expression_statement "pcVar8 = (code *)invalidInstructionException();" (assignment_expression "pcVar8 = (code *)invalidInstructionException()" identifier = (cast_expression "(code *)invalidInstructionException()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "invalidInstructionException()" identifier (argument_list "()" ( ))))) ;) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))) ;) })) (expression_statement "*(ushort *)&local_54->stacksize = (ushort)local_54->stacksize & 0xfe00;" (assignment_expression "*(ushort *)&local_54->stacksize = (ushort)local_54->stacksize & 0xfe00" (pointer_expression "*(ushort *)&local_54->stacksize" * (cast_expression "(ushort *)&local_54->stacksize" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_54->stacksize" & (field_expression "local_54->stacksize" identifier -> field_identifier)))) = (binary_expression "(ushort)local_54->stacksize & 0xfe00" (cast_expression "(ushort)local_54->stacksize" ( (type_descriptor "ushort" type_identifier) ) (field_expression "local_54->stacksize" identifier -> field_identifier)) & number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar13 = (char *)dcgettext();" (assignment_expression "pcVar13 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "einfo(pcVar13);" (call_expression "einfo(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0002d1e0(void)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  code *pcVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  size_t sVar10;\n  char *__s;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  bool bVar20;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  undefined4 *in_stack_ffffff7c;\n  int local_70;\n  uint local_6c;\n  int local_68;\n  int local_64;\n  undefined4 *local_5c;\n  int local_58;\n  undefined4 *local_54;\n  int local_4c;\n  undefined4 *local_48;\n  undefined4 local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x2d1e9;\n  bfd_set_error();\n  FUN_00024760();\n  FUN_000217c0();\n  iVar13 = DAT_00091c50;\n  puVar7 = PTR__sch_istable_00090fa8;\n  if ((DAT_00091d74 & DAT_00091d78) != 0xffffffff) {\n    puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);\n    puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    puVar5 = puVar3;\n    puVar12 = puVar2;\n    while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }\n  }\n  local_54 = &DAT_00091c20;\n  iVar13 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))();\n  if (iVar13 != 0) {\n    return;\n  }\n  iVar13 = bfd_get_error();\n  if (iVar13 == 0) {\n    xexit();\n    if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    \n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }\n    *(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;\n    return;\n  }\n  dcgettext();\n  FUN_00031760();\n  return;\n}\n\n" (function_definition "void FUN_0002d1e0(void)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  code *pcVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  size_t sVar10;\n  char *__s;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  bool bVar20;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  undefined4 *in_stack_ffffff7c;\n  int local_70;\n  uint local_6c;\n  int local_68;\n  int local_64;\n  undefined4 *local_5c;\n  int local_58;\n  undefined4 *local_54;\n  int local_4c;\n  undefined4 *local_48;\n  undefined4 local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x2d1e9;\n  bfd_set_error();\n  FUN_00024760();\n  FUN_000217c0();\n  iVar13 = DAT_00091c50;\n  puVar7 = PTR__sch_istable_00090fa8;\n  if ((DAT_00091d74 & DAT_00091d78) != 0xffffffff) {\n    puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);\n    puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    puVar5 = puVar3;\n    puVar12 = puVar2;\n    while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }\n  }\n  local_54 = &DAT_00091c20;\n  iVar13 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))();\n  if (iVar13 != 0) {\n    return;\n  }\n  iVar13 = bfd_get_error();\n  if (iVar13 == 0) {\n    xexit();\n    if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    \n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }\n    *(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;\n    return;\n  }\n  dcgettext();\n  FUN_00031760();\n  return;\n}" primitive_type (function_declarator "FUN_0002d1e0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  code *pcVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  size_t sVar10;\n  char *__s;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  bool bVar20;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  undefined4 *in_stack_ffffff7c;\n  int local_70;\n  uint local_6c;\n  int local_68;\n  int local_64;\n  undefined4 *local_5c;\n  int local_58;\n  undefined4 *local_54;\n  int local_4c;\n  undefined4 *local_48;\n  undefined4 local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x2d1e9;\n  bfd_set_error();\n  FUN_00024760();\n  FUN_000217c0();\n  iVar13 = DAT_00091c50;\n  puVar7 = PTR__sch_istable_00090fa8;\n  if ((DAT_00091d74 & DAT_00091d78) != 0xffffffff) {\n    puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);\n    puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    puVar5 = puVar3;\n    puVar12 = puVar2;\n    while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }\n  }\n  local_54 = &DAT_00091c20;\n  iVar13 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))();\n  if (iVar13 != 0) {\n    return;\n  }\n  iVar13 = bfd_get_error();\n  if (iVar13 == 0) {\n    xexit();\n    if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    \n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }\n    *(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;\n    return;\n  }\n  dcgettext();\n  FUN_00031760();\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "undefined4 *in_stack_ffffff7c;" type_identifier (pointer_declarator "*in_stack_ffffff7c" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "undefined4 *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "undefined4 *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "undefined4 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined4 local_20 [3];" type_identifier (array_declarator "local_20 [3]" 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 = 0x2d1e9;" (assignment_expression "uStack_14 = 0x2d1e9" identifier = number_literal) ;) (expression_statement "bfd_set_error();" (call_expression "bfd_set_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00024760();" (call_expression "FUN_00024760()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000217c0();" (call_expression "FUN_000217c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar13 = DAT_00091c50;" (assignment_expression "iVar13 = DAT_00091c50" identifier = identifier) ;) (expression_statement "puVar7 = PTR__sch_istable_00090fa8;" (assignment_expression "puVar7 = PTR__sch_istable_00090fa8" identifier = identifier) ;) (if_statement "if ((DAT_00091d74 & DAT_00091d78) != 0xffffffff) {\n    puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);\n    puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    puVar5 = puVar3;\n    puVar12 = puVar2;\n    while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }\n  }" if (parenthesized_expression "((DAT_00091d74 & DAT_00091d78) != 0xffffffff)" ( (binary_expression "(DAT_00091d74 & DAT_00091d78) != 0xffffffff" (parenthesized_expression "(DAT_00091d74 & DAT_00091d78)" ( (binary_expression "DAT_00091d74 & DAT_00091d78" identifier & identifier) )) != number_literal) )) (compound_statement "{\n    puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);\n    puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    puVar5 = puVar3;\n    puVar12 = puVar2;\n    while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }\n  }" { (expression_statement "puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);" (assignment_expression "puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68)" identifier = (pointer_expression "*(undefined4 **)(DAT_00091c50 + 0x68)" * (cast_expression "(undefined4 **)(DAT_00091c50 + 0x68)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00091c50 + 0x68)" ( (binary_expression "DAT_00091c50 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);" (assignment_expression "puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(DAT_00091c50 + 0x60)" * (cast_expression "(undefined4 **)(DAT_00091c50 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00091c50 + 0x60)" ( (binary_expression "DAT_00091c50 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "puVar5 = puVar3;" (assignment_expression "puVar5 = puVar3" identifier = identifier) ;) (expression_statement "puVar12 = puVar2;" (assignment_expression "puVar12 = puVar2" identifier = identifier) ;) (while_statement "while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }" while (parenthesized_expression "((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0)))" ( (parenthesized_expression "(puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))" ( (binary_expression "puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0)" (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" ( (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) )) (compound_statement "{\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }" { (expression_statement "local_20[0] = 0;" (assignment_expression "local_20[0] = 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_4c = puVar3[7];" (assignment_expression "local_4c = puVar3[7]" identifier = (subscript_expression "puVar3[7]" identifier [ number_literal ])) ;) (if_statement "if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }" if (parenthesized_expression "((undefined4 *)puVar3[0x28] != (undefined4 *)0x0)" ( (binary_expression "(undefined4 *)puVar3[0x28] != (undefined4 *)0x0" (cast_expression "(undefined4 *)puVar3[0x28]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x28]" identifier [ number_literal ])) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }" { (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_48 = (undefined4 *)0x0;" (assignment_expression "local_48 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar12 = puVar3;" (assignment_expression "puVar12 = puVar3" identifier = identifier) ;) (expression_statement "local_5c = (undefined4 *)puVar3[0x28];" (assignment_expression "local_5c = (undefined4 *)puVar3[0x28]" identifier = (cast_expression "(undefined4 *)puVar3[0x28]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[0x28]" identifier [ number_literal ]))) ;) (do_statement "do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );" do (compound_statement "{\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        }" { (expression_statement "uVar15 = local_6c;" (assignment_expression "uVar15 = local_6c" identifier = identifier) ;) (if_statement "if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" if (parenthesized_expression "(local_5c[1] == 1)" ( (binary_expression "local_5c[1] == 1" (subscript_expression "local_5c[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }" { (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "iVar14 = local_5c[4];" (assignment_expression "iVar14 = local_5c[4]" identifier = (subscript_expression "local_5c[4]" identifier [ number_literal ])) ;) (if_statement "if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }" if (parenthesized_expression "((DAT_00091c20._1_1_ & 0x20) == 0)" ( (binary_expression "(DAT_00091c20._1_1_ & 0x20) == 0" (parenthesized_expression "(DAT_00091c20._1_1_ & 0x20)" ( (binary_expression "DAT_00091c20._1_1_ & 0x20" (field_expression "DAT_00091c20._1_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              local_70 = *(int *)(iVar14 + 0x74);\n            }" { (expression_statement "local_70 = *(int *)(iVar14 + 0x74);" (assignment_expression "local_70 = *(int *)(iVar14 + 0x74)" identifier = (pointer_expression "*(int *)(iVar14 + 0x74)" * (cast_expression "(int *)(iVar14 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x74)" ( (binary_expression "iVar14 + 0x74" identifier + number_literal) ))))) ;) })) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (if_statement "if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }" if (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2)" ( (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }" { (expression_statement "uVar9 = *(uint *)(iVar14 + 0x4c);" (assignment_expression "uVar9 = *(uint *)(iVar14 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar14 + 0x4c)" * (cast_expression "(uint *)(iVar14 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x4c)" ( (binary_expression "iVar14 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "local_6c = local_6c + uVar9;" (assignment_expression "local_6c = local_6c + uVar9" identifier = (binary_expression "local_6c + uVar9" identifier + identifier)) ;) })) (expression_statement "local_68 = *(int *)(iVar14 + 0x24);" (assignment_expression "local_68 = *(int *)(iVar14 + 0x24)" identifier = (pointer_expression "*(int *)(iVar14 + 0x24)" * (cast_expression "(int *)(iVar14 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = local_6c;" (assignment_expression "uVar15 = local_6c" identifier = identifier) ;) (expression_statement "local_6c = uVar9;" (assignment_expression "local_6c = uVar9" identifier = identifier) ;) }) (else_clause "else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" else (if_statement "if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" if (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2)" ( (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }" { (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = (uint)(local_5c[1] - 3 < 2);" (assignment_expression "uVar9 = (uint)(local_5c[1] - 3 < 2)" identifier = (call_expression "(uint)(local_5c[1] - 3 < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c[1] - 3 < 2)" ( (binary_expression "local_5c[1] - 3 < 2" (binary_expression "local_5c[1] - 3" (subscript_expression "local_5c[1]" identifier [ number_literal ]) - number_literal) < number_literal) )))) ;) (expression_statement "uVar15 = local_6c + uVar9;" (assignment_expression "uVar15 = local_6c + uVar9" identifier = (binary_expression "local_6c + uVar9" identifier + identifier)) ;) (expression_statement "local_6c = uVar9;" (assignment_expression "local_6c = uVar9" identifier = identifier) ;) }) (else_clause "else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" else (compound_statement "{\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" { (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) }))))) (if_statement "if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }" if (parenthesized_expression "(local_48 == (undefined4 *)0x0)" ( (binary_expression "local_48 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }" { (labeled_statement "LAB_0002d64e:\n            local_64 = local_68 + local_64;" statement_identifier : (expression_statement "local_64 = local_68 + local_64;" (assignment_expression "local_64 = local_68 + local_64" identifier = (binary_expression "local_68 + local_64" identifier + identifier)) ;)) (expression_statement "local_58 = local_70 + local_58;" (assignment_expression "local_58 = local_70 + local_58" identifier = (binary_expression "local_70 + local_58" identifier + identifier)) ;) (expression_statement "puVar5 = (undefined4 *)*local_5c;" (assignment_expression "puVar5 = (undefined4 *)*local_5c" identifier = (cast_expression "(undefined4 *)*local_5c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_5c" * identifier))) ;) (expression_statement "local_6c = uVar15;" (assignment_expression "local_6c = uVar15" identifier = identifier) ;) }) (else_clause "else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }" else (compound_statement "{\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }" { (expression_statement "bVar20 = DAT_00091d74 < uVar15;" (assignment_expression "bVar20 = DAT_00091d74 < uVar15" identifier = (binary_expression "DAT_00091d74 < uVar15" identifier < identifier)) ;) (expression_statement "bVar22 = DAT_00091d74 == uVar15;" (assignment_expression "bVar22 = DAT_00091d74 == uVar15" identifier = (binary_expression "DAT_00091d74 == uVar15" identifier == identifier)) ;) (if_statement "if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }" if (parenthesized_expression "(uVar15 < DAT_00091d74)" ( (binary_expression "uVar15 < DAT_00091d74" identifier < identifier) )) (compound_statement "{\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }" { (expression_statement "uVar9 = local_70 + local_58;" (assignment_expression "uVar9 = local_70 + local_58" identifier = (binary_expression "local_70 + local_58" identifier + identifier)) ;) (expression_statement "bVar20 = DAT_00091d74 < uVar9;" (assignment_expression "bVar20 = DAT_00091d74 < uVar9" identifier = (binary_expression "DAT_00091d74 < uVar9" identifier < identifier)) ;) (expression_statement "bVar22 = DAT_00091d74 == uVar9;" (assignment_expression "bVar22 = DAT_00091d74 == uVar9" identifier = (binary_expression "DAT_00091d74 == uVar9" identifier == identifier)) ;) (if_statement "if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }" if (parenthesized_expression "(uVar9 < DAT_00091d74)" ( (binary_expression "uVar9 < DAT_00091d74" identifier < identifier) )) (compound_statement "{\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }" { (expression_statement "bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;" (assignment_expression "bVar20 = (uint)(local_68 + local_64) < DAT_00091d78" identifier = (binary_expression "(uint)(local_68 + local_64) < DAT_00091d78" (call_expression "(uint)(local_68 + local_64)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_68 + local_64)" ( (binary_expression "local_68 + local_64" identifier + identifier) ))) < identifier)) ;) (expression_statement "bVar22 = local_68 + local_64 == DAT_00091d78;" (assignment_expression "bVar22 = local_68 + local_64 == DAT_00091d78" identifier = (binary_expression "local_68 + local_64 == DAT_00091d78" (binary_expression "local_68 + local_64" identifier + identifier) == identifier)) ;) (if_statement "if (bVar20) goto LAB_0002d64e;" if (parenthesized_expression "(bVar20)" ( identifier )) (goto_statement "goto LAB_0002d64e;" goto statement_identifier ;)) })) })) (expression_statement "pbVar18 = (byte *)*puVar12;" (assignment_expression "pbVar18 = (byte *)*puVar12" identifier = (cast_expression "(byte *)*puVar12" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar12" * identifier))) ;) (expression_statement "iVar14 = 5;" (assignment_expression "iVar14 = 5" identifier = number_literal) ;) (expression_statement "pbVar17 = pbVar18;" (assignment_expression "pbVar17 = pbVar18" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)".stab";" (assignment_expression "pbVar19 = (byte *)".stab"" identifier = (cast_expression "(byte *)".stab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".stab"" " string_content "))) ;) (do_statement "do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);" do (compound_statement "{\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            }" { (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar17 < *pbVar19;" (assignment_expression "bVar20 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar22 = *pbVar17 == *pbVar19;" (assignment_expression "bVar22 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar20 && !bVar22) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar22) == bVar20" identifier = (binary_expression "(!bVar20 && !bVar22) == bVar20" (parenthesized_expression "(!bVar20 && !bVar22)" ( (binary_expression "!bVar20 && !bVar22" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }" if (parenthesized_expression "(bVar20)" ( identifier )) (compound_statement "{\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }" { (expression_statement "sVar10 = strlen((char *)pbVar18);" (assignment_expression "sVar10 = strlen((char *)pbVar18)" identifier = (call_expression "strlen((char *)pbVar18)" identifier (argument_list "((char *)pbVar18)" ( (cast_expression "(char *)pbVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "iVar14 = 4;" (assignment_expression "iVar14 = 4" identifier = number_literal) ;) (expression_statement "bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;" (assignment_expression "bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff74" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff74" & identifier))) ;) (expression_statement "bVar22 = &stack0x00000000 == (undefined1 *)0x7c;" (assignment_expression "bVar22 = &stack0x00000000 == (undefined1 *)0x7c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x7c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x7c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar18 = pbVar18 + (sVar10 - 3);" (assignment_expression "pbVar18 = pbVar18 + (sVar10 - 3)" identifier = (binary_expression "pbVar18 + (sVar10 - 3)" identifier + (parenthesized_expression "(sVar10 - 3)" ( (binary_expression "sVar10 - 3" identifier - number_literal) )))) ;) (expression_statement "pbVar17 = &DAT_0004de1c;" (assignment_expression "pbVar17 = &DAT_0004de1c" identifier = (pointer_expression "&DAT_0004de1c" & identifier)) ;) (do_statement "do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);" do (compound_statement "{\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              }" { (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar18 < *pbVar17;" (assignment_expression "bVar20 = *pbVar18 < *pbVar17" identifier = (binary_expression "*pbVar18 < *pbVar17" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar17;" (assignment_expression "bVar22 = *pbVar18 == *pbVar17" identifier = (binary_expression "*pbVar18 == *pbVar17" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (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 )) ;) (if_statement "if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;" 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_0002d64e;" goto statement_identifier ;)) }) (else_clause "else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }" else (compound_statement "{\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }" { (expression_statement "iVar14 = 0xe;" (assignment_expression "iVar14 = 0xe" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)"$GDB_STRINGS$";" (assignment_expression "pbVar17 = (byte *)"$GDB_STRINGS$"" identifier = (cast_expression "(byte *)"$GDB_STRINGS$"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""$GDB_STRINGS$"" " string_content "))) ;) (do_statement "do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);" do (compound_statement "{\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              }" { (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar18 < *pbVar17;" (assignment_expression "bVar21 = *pbVar18 < *pbVar17" identifier = (binary_expression "*pbVar18 < *pbVar17" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar20 = *pbVar18 == *pbVar17;" (assignment_expression "bVar20 = *pbVar18 == *pbVar17" identifier = (binary_expression "*pbVar18 == *pbVar17" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (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 "(bVar20)" ( identifier )) ;) (if_statement "if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;" if (parenthesized_expression "((!bVar21 && !bVar20) == bVar21)" ( (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" ( (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0002d64e;" goto statement_identifier ;)) }))) (expression_statement "pbVar18 = (byte *)*puVar3;" (assignment_expression "pbVar18 = (byte *)*puVar3" identifier = (cast_expression "(byte *)*puVar3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier))) ;) (expression_statement "sVar10 = strlen((char *)pbVar18);" (assignment_expression "sVar10 = strlen((char *)pbVar18)" identifier = (call_expression "strlen((char *)pbVar18)" identifier (argument_list "((char *)pbVar18)" ( (cast_expression "(char *)pbVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "__s = (char *)xmalloc();" (assignment_expression "__s = (char *)xmalloc()" identifier = (cast_expression "(char *)xmalloc()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "memcpy(__s,pbVar18,sVar10 + 1);" (call_expression "memcpy(__s,pbVar18,sVar10 + 1)" identifier (argument_list "(__s,pbVar18,sVar10 + 1)" ( identifier , identifier , (binary_expression "sVar10 + 1" identifier + number_literal) ))) ;) (if_statement "if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }" if (parenthesized_expression "(sVar10 != 0)" ( (binary_expression "sVar10 != 0" identifier != number_literal) )) (compound_statement "{\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }" { (expression_statement "bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];" (assignment_expression "bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2]" identifier = (subscript_expression "puVar7[(uint)(byte)__s[sVar10 - 1] * 2]" identifier [ (binary_expression "(uint)(byte)__s[sVar10 - 1] * 2" (cast_expression "(uint)(byte)__s[sVar10 - 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)__s[sVar10 - 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "__s[sVar10 - 1]" identifier [ (binary_expression "sVar10 - 1" identifier - number_literal) ]))) * number_literal) ])) ;) (while_statement "while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }" while (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }" { (if_statement "if (sVar10 - 1 == 0) goto LAB_0002d408;" if (parenthesized_expression "(sVar10 - 1 == 0)" ( (binary_expression "sVar10 - 1 == 0" (binary_expression "sVar10 - 1" identifier - number_literal) == number_literal) )) (goto_statement "goto LAB_0002d408;" goto statement_identifier ;)) (expression_statement "bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];" (assignment_expression "bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2]" identifier = (subscript_expression "puVar7[(uint)(byte)__s[sVar10 - 2] * 2]" identifier [ (binary_expression "(uint)(byte)__s[sVar10 - 2] * 2" (cast_expression "(uint)(byte)__s[sVar10 - 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)__s[sVar10 - 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "__s[sVar10 - 2]" identifier [ (binary_expression "sVar10 - 2" identifier - number_literal) ]))) * number_literal) ])) ;) (expression_statement "sVar10 = sVar10 - 1;" (assignment_expression "sVar10 = sVar10 - 1" identifier = (binary_expression "sVar10 - 1" identifier - number_literal)) ;) })) (if_statement "if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }" if (parenthesized_expression "((sVar10 != 1) && (__s[sVar10 - 1] == '.'))" ( (binary_expression "(sVar10 != 1) && (__s[sVar10 - 1] == '.')" (parenthesized_expression "(sVar10 != 1)" ( (binary_expression "sVar10 != 1" identifier != number_literal) )) && (parenthesized_expression "(__s[sVar10 - 1] == '.')" ( (binary_expression "__s[sVar10 - 1] == '.'" (subscript_expression "__s[sVar10 - 1]" identifier [ (binary_expression "sVar10 - 1" identifier - number_literal) ]) == (char_literal "'.'" ' character ')) ))) )) (compound_statement "{\n                __s[sVar10 - 1] = '\0';\n              }" { (expression_statement "__s[sVar10 - 1] = '\0';" (assignment_expression "__s[sVar10 - 1] = '\0'" (subscript_expression "__s[sVar10 - 1]" identifier [ (binary_expression "sVar10 - 1" identifier - number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) })) (labeled_statement "LAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }" statement_identifier : (if_statement "if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }" if (parenthesized_expression "((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0)" ( (binary_expression "(*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0" (parenthesized_expression "(*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd)" ( (binary_expression "*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd" (binary_expression "*(int *)(*(int *)(iVar13 + 4) + 4) - 2U" (pointer_expression "*(int *)(*(int *)(iVar13 + 4) + 4)" * (cast_expression "(int *)(*(int *)(iVar13 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar13 + 4) + 4)" ( (binary_expression "*(int *)(iVar13 + 4) + 4" (pointer_expression "*(int *)(iVar13 + 4)" * (cast_expression "(int *)(iVar13 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))) + number_literal) )))) - number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }" { (expression_statement "sVar10 = strlen(__s);" (assignment_expression "sVar10 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "bVar20 = sVar10 < 5;" (assignment_expression "bVar20 = sVar10 < 5" identifier = (binary_expression "sVar10 < 5" identifier < number_literal)) ;) (expression_statement "bVar22 = sVar10 == 5;" (assignment_expression "bVar22 = sVar10 == 5" identifier = (binary_expression "sVar10 == 5" identifier == number_literal)) ;) (if_statement "if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }" if (parenthesized_expression "(5 < sVar10)" ( (binary_expression "5 < sVar10" number_literal < identifier) )) (compound_statement "{\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }" { (expression_statement "iVar14 = 5;" (assignment_expression "iVar14 = 5" identifier = number_literal) ;) (expression_statement "pbVar17 = pbVar18;" (assignment_expression "pbVar17 = pbVar18" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)".stab";" (assignment_expression "pbVar19 = (byte *)".stab"" identifier = (cast_expression "(byte *)".stab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".stab"" " string_content "))) ;) (do_statement "do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);" do (compound_statement "{\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                }" { (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar17 < *pbVar19;" (assignment_expression "bVar20 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar22 = *pbVar17 == *pbVar19;" (assignment_expression "bVar22 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar20 && !bVar22) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar22) == bVar20" identifier = (binary_expression "(!bVar20 && !bVar22) == bVar20" (parenthesized_expression "(!bVar20 && !bVar22)" ( (binary_expression "!bVar20 && !bVar22" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }" if (parenthesized_expression "(!bVar20)" ( (unary_expression "!bVar20" ! identifier) )) (compound_statement "{\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }" { (expression_statement "iVar14 = 0xe;" (assignment_expression "iVar14 = 0xe" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)"$GDB_SYMBOLS$";" (assignment_expression "pbVar17 = (byte *)"$GDB_SYMBOLS$"" identifier = (cast_expression "(byte *)"$GDB_SYMBOLS$"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""$GDB_SYMBOLS$"" " string_content "))) ;) (do_statement "do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);" do (compound_statement "{\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  }" { (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar18 < *pbVar17;" (assignment_expression "bVar21 = *pbVar18 < *pbVar17" identifier = (binary_expression "*pbVar18 < *pbVar17" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar20 = *pbVar18 == *pbVar17;" (assignment_expression "bVar20 = *pbVar18 == *pbVar17" identifier = (binary_expression "*pbVar18 == *pbVar17" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (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 "(bVar20)" ( identifier )) ;) (if_statement "if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }" if (parenthesized_expression "((!bVar21 && !bVar20) != bVar21)" ( (binary_expression "(!bVar21 && !bVar20) != bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" ( (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) != identifier) )) (compound_statement "{\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }" { (expression_statement "__s[5] = '\0';" (assignment_expression "__s[5] = '\0'" (subscript_expression "__s[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_0002d470;" goto statement_identifier ;) })) })) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00031760();" (call_expression "FUN_00031760()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0002d60e;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0002d470:\n            in_stack_ffffff7c = local_20;" statement_identifier : (expression_statement "in_stack_ffffff7c = local_20;" (assignment_expression "in_stack_ffffff7c = local_20" identifier = identifier) ;)) (expression_statement "iVar14 = bfd_get_unique_section_name();" (assignment_expression "iVar14 = bfd_get_unique_section_name()" identifier = (call_expression "bfd_get_unique_section_name()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }" if (parenthesized_expression "(((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0))" ( (binary_expression "((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)" (parenthesized_expression "((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))" ( (binary_expression "(iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0)" (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) || (parenthesized_expression "(puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0)" ( (comma_expression "puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0" (assignment_expression "puVar11 = (undefined4 *)bfd_make_section_anyway()" identifier = (cast_expression "(undefined4 *)bfd_make_section_anyway()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_make_section_anyway()" identifier (argument_list "()" ( ))))) , (binary_expression "puVar11 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) || (parenthesized_expression "(iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)" ( (comma_expression "iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0" (assignment_expression "iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1)" identifier (argument_list "(DAT_00091c3c,iVar14,1,1)" ( identifier , identifier , number_literal , number_literal )))) , (binary_expression "iVar14 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }" { (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00031760();" (call_expression "FUN_00031760()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0002d60e:\n              _DAT_000000a0 = local_5c;" statement_identifier : (expression_statement "_DAT_000000a0 = local_5c;" (assignment_expression "_DAT_000000a0 = local_5c" identifier = identifier) ;)) (expression_statement "pcVar6 = (code *)invalidInstructionException();" (assignment_expression "pcVar6 = (code *)invalidInstructionException()" identifier = (cast_expression "(code *)invalidInstructionException()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "invalidInstructionException()" identifier (argument_list "()" ( ))))) ;) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) })) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "uVar8 = puVar12[5];" (assignment_expression "uVar8 = puVar12[5]" identifier = (subscript_expression "puVar12[5]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(iVar14 + 0xc) = 3;" (assignment_expression "*(undefined1 *)(iVar14 + 0xc) = 3" (pointer_expression "*(undefined1 *)(iVar14 + 0xc)" * (cast_expression "(undefined1 *)(iVar14 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xc)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar14 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar14 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar14 + 0x18)" * (cast_expression "(undefined4 *)(iVar14 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x18)" ( (binary_expression "iVar14 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar14 + 0x14) = puVar11;" (assignment_expression "*(undefined4 **)(iVar14 + 0x14) = puVar11" (pointer_expression "*(undefined4 **)(iVar14 + 0x14)" * (cast_expression "(undefined4 **)(iVar14 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11[5] = uVar8;" (assignment_expression "puVar11[5] = uVar8" (subscript_expression "puVar11[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[7] = puVar12[7];" (assignment_expression "puVar11[7] = puVar12[7]" (subscript_expression "puVar11[7]" identifier [ number_literal ]) = (subscript_expression "puVar12[7]" identifier [ number_literal ])) ;) (expression_statement "*(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;" (assignment_expression "*(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1" (pointer_expression "*(byte *)(puVar11 + 6)" * (cast_expression "(byte *)(puVar11 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 6)" ( (binary_expression "puVar11 + 6" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1" (binary_expression "*(byte *)(puVar11 + 6) & 0xfe" (pointer_expression "*(byte *)(puVar11 + 6)" * (cast_expression "(byte *)(puVar11 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 6)" ( (binary_expression "puVar11 + 6" identifier + number_literal) )))) & number_literal) | (binary_expression "*(byte *)(puVar12 + 6) & 1" (pointer_expression "*(byte *)(puVar12 + 6)" * (cast_expression "(byte *)(puVar12 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 6)" ( (binary_expression "puVar12 + 6" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "uVar8 = puVar12[8];" (assignment_expression "uVar8 = puVar12[8]" identifier = (subscript_expression "puVar12[8]" identifier [ number_literal ])) ;) (expression_statement "puVar11[9] = 0;" (assignment_expression "puVar11[9] = 0" (subscript_expression "puVar11[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar11[8] = uVar8;" (assignment_expression "puVar11[8] = uVar8" (subscript_expression "puVar11[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar8 = puVar12[0xe];" (assignment_expression "uVar8 = puVar12[0xe]" identifier = (subscript_expression "puVar12[0xe]" identifier [ number_literal ])) ;) (expression_statement "puVar11[0xf] = puVar11;" (assignment_expression "puVar11[0xf] = puVar11" (subscript_expression "puVar11[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[0xe] = uVar8;" (assignment_expression "puVar11[0xe] = uVar8" (subscript_expression "puVar11[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar8 = puVar12[0x10];" (assignment_expression "uVar8 = puVar12[0x10]" identifier = (subscript_expression "puVar12[0x10]" identifier [ number_literal ])) ;) (expression_statement "puVar11[0x12] = 0;" (assignment_expression "puVar11[0x12] = 0" (subscript_expression "puVar11[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar11[0x10] = uVar8;" (assignment_expression "puVar11[0x10] = uVar8" (subscript_expression "puVar11[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar14 = *(int *)(iVar13 + 4);" (assignment_expression "iVar14 = *(int *)(iVar13 + 4)" identifier = (pointer_expression "*(int *)(iVar13 + 4)" * (cast_expression "(int *)(iVar13 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar11[0x13] = 0;" (assignment_expression "puVar11[0x13] = 0" (subscript_expression "puVar11[0x13]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);" (call_expression "(**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11)" (parenthesized_expression "(**(code **)(iVar14 + 0xb4))" ( (pointer_expression "**(code **)(iVar14 + 0xb4)" * (pointer_expression "*(code **)(iVar14 + 0xb4)" * (cast_expression "(code **)(iVar14 + 0xb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0xb4)" ( (binary_expression "iVar14 + 0xb4" identifier + number_literal) ))))) )) (argument_list "(iVar13,puVar12,iVar13,puVar11)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar11[0x29] = puVar12[0x29];" (assignment_expression "puVar11[0x29] = puVar12[0x29]" (subscript_expression "puVar11[0x29]" identifier [ number_literal ]) = (subscript_expression "puVar12[0x29]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = local_5c[2];" (assignment_expression "iVar14 = local_5c[2]" identifier = (subscript_expression "local_5c[2]" identifier [ number_literal ])) ;) (expression_statement "puVar11[0x28] = local_5c;" (assignment_expression "puVar11[0x28] = local_5c" (subscript_expression "puVar11[0x28]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x29] = local_48;" (assignment_expression "puVar12[0x29] = local_48" (subscript_expression "puVar12[0x29]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*local_48 = 0;" (assignment_expression "*local_48 = 0" (pointer_expression "*local_48" * identifier) = number_literal) ;) (expression_statement "local_4c = local_4c + iVar14;" (assignment_expression "local_4c = local_4c + iVar14" identifier = (binary_expression "local_4c + iVar14" identifier + identifier)) ;) (expression_statement "puVar11[9] = puVar12[9] - iVar14;" (assignment_expression "puVar11[9] = puVar12[9] - iVar14" (subscript_expression "puVar11[9]" identifier [ number_literal ]) = (binary_expression "puVar12[9] - iVar14" (subscript_expression "puVar12[9]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "puVar12[9] = iVar14;" (assignment_expression "puVar12[9] = iVar14" (subscript_expression "puVar12[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[7] = local_4c;" (assignment_expression "puVar11[7] = local_4c" (subscript_expression "puVar11[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[8] = local_4c;" (assignment_expression "puVar11[8] = local_4c" (subscript_expression "puVar11[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12 = local_5c;" (assignment_expression "puVar12 = local_5c" identifier = identifier) ;) (expression_statement "iVar16 = iVar14;" (assignment_expression "iVar16 = iVar14" identifier = identifier) ;) (while_statement "while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }" { (expression_statement "puVar12[2] = iVar16 - iVar14;" (assignment_expression "puVar12[2] = iVar16 - iVar14" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = (binary_expression "iVar16 - iVar14" identifier - identifier)) ;) (if_statement "if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }" if (parenthesized_expression "(puVar12[1] == 1)" ( (binary_expression "puVar12[1] == 1" (subscript_expression "puVar12[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }" { (expression_statement "iVar4 = puVar12[4];" (assignment_expression "iVar4 = puVar12[4]" identifier = (subscript_expression "puVar12[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 **)(iVar4 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(iVar4 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(iVar4 + 0x3c)" * (cast_expression "(undefined4 **)(iVar4 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x3c)" ( (binary_expression "iVar4 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar4 + 0x38) = iVar16 - iVar14;" (assignment_expression "*(int *)(iVar4 + 0x38) = iVar16 - iVar14" (pointer_expression "*(int *)(iVar4 + 0x38)" * (cast_expression "(int *)(iVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) = (binary_expression "iVar16 - iVar14" identifier - identifier)) ;) })) (expression_statement "puVar12 = (undefined4 *)*puVar12;" (assignment_expression "puVar12 = (undefined4 *)*puVar12" identifier = (cast_expression "(undefined4 *)*puVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar12" * identifier))) ;) (if_statement "if (puVar12 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar12 == (undefined4 *)0x0)" ( (binary_expression "puVar12 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = puVar12[2];" (assignment_expression "iVar16 = puVar12[2]" identifier = (subscript_expression "puVar12[2]" identifier [ number_literal ])) ;) })) (expression_statement "puVar5 = (undefined4 *)*local_5c;" (assignment_expression "puVar5 = (undefined4 *)*local_5c" identifier = (cast_expression "(undefined4 *)*local_5c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_5c" * identifier))) ;) (expression_statement "local_58 = local_70;" (assignment_expression "local_58 = local_70" identifier = identifier) ;) (expression_statement "local_64 = local_68;" (assignment_expression "local_64 = local_68" identifier = identifier) ;) (expression_statement "puVar12 = puVar11;" (assignment_expression "puVar12 = puVar11" identifier = identifier) ;) }))) (if_statement "if (puVar5 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" ( (binary_expression "puVar5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "local_48 = local_5c;" (assignment_expression "local_48 = local_5c" identifier = identifier) ;) (expression_statement "local_5c = puVar5;" (assignment_expression "local_5c = puVar5" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "puVar3 = (undefined4 *)puVar3[3];" (assignment_expression "puVar3 = (undefined4 *)puVar3[3]" identifier = (cast_expression "(undefined4 *)puVar3[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar2 = (undefined4 *)((int)puVar2 + -1);" (assignment_expression "puVar2 = (undefined4 *)((int)puVar2 + -1)" identifier = (cast_expression "(undefined4 *)((int)puVar2 + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + -1)" ( (binary_expression "(int)puVar2 + -1" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar12 = puVar3;" (assignment_expression "puVar12 = puVar3" identifier = identifier) ;) (expression_statement "puVar5 = puVar2;" (assignment_expression "puVar5 = puVar2" identifier = identifier) ;) })) })) (expression_statement "local_54 = &DAT_00091c20;" (assignment_expression "local_54 = &DAT_00091c20" identifier = (pointer_expression "&DAT_00091c20" & identifier)) ;) (expression_statement "iVar13 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))();" (assignment_expression "iVar13 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))()" identifier = (call_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))()" (parenthesized_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))" ( (pointer_expression "**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178)" * (pointer_expression "*(code **)(*(int *)(DAT_00091c50 + 4) + 0x178)" * (cast_expression "(code **)(*(int *)(DAT_00091c50 + 4) + 0x178)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_00091c50 + 4) + 0x178)" ( (binary_expression "*(int *)(DAT_00091c50 + 4) + 0x178" (pointer_expression "*(int *)(DAT_00091c50 + 4)" * (cast_expression "(int *)(DAT_00091c50 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 4)" ( (binary_expression "DAT_00091c50 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar13 != 0) {\n    return;\n  }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar13 = bfd_get_error();" (assignment_expression "iVar13 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar13 == 0) {\n    xexit();\n    if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    \n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }\n    *(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;\n    return;\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    xexit();\n    if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    \n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }\n    *(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;\n    return;\n  }" { (expression_statement "xexit();" (call_expression "xexit()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    \n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }" if (parenthesized_expression "((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0))" ( (binary_expression "(local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)" (parenthesized_expression "(local_54 == (undefined4 *)0x0)" ( (binary_expression "local_54 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)" ( (comma_expression "local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0" (assignment_expression "local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14)" identifier = (cast_expression "(undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_hash_allocate(in_stack_ffffff7c,0x14)" identifier (argument_list "(in_stack_ffffff7c,0x14)" ( identifier , number_literal ))))) , (binary_expression "local_54 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    \n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }" { (expression_statement "uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);" (assignment_expression "uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0)" identifier = (call_expression "dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0)" identifier (argument_list "(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0)" ( number_literal , (string_literal ""%F%P: bfd_hash_allocate failed creating symbol %s\n"" " string_content escape_sequence ") , number_literal , number_literal )))) ;) (expression_statement "FUN_00031760(uVar8,0x2d795);" (call_expression "FUN_00031760(uVar8,0x2d795)" identifier (argument_list "(uVar8,0x2d795)" ( identifier , number_literal ))) ;) (expression_statement "_DAT_00000010 = _DAT_00000010 & 0xfeff;" (assignment_expression "_DAT_00000010 = _DAT_00000010 & 0xfeff" identifier = (binary_expression "_DAT_00000010 & 0xfeff" identifier & number_literal)) ;) (expression_statement "pcVar6 = (code *)invalidInstructionException();" (assignment_expression "pcVar6 = (code *)invalidInstructionException()" identifier = (cast_expression "(code *)invalidInstructionException()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "invalidInstructionException()" identifier (argument_list "()" ( ))))) ;) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) })) (expression_statement "*(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;" (assignment_expression "*(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00" (pointer_expression "*(ushort *)(local_54 + 4)" * (cast_expression "(ushort *)(local_54 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 4)" ( (binary_expression "local_54 + 4" identifier + number_literal) )))) = (binary_expression "*(ushort *)(local_54 + 4) & 0xfe00" (pointer_expression "*(ushort *)(local_54 + 4)" * (cast_expression "(ushort *)(local_54 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 4)" ( (binary_expression "local_54 + 4" identifier + number_literal) )))) & number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00031760();" (call_expression "FUN_00031760()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & 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) ))))) ;) (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) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) < LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]))) * LIT) ])) ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]))) * LIT) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) = (char_literal ' escape_sequence ')) ;) })) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) - LIT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (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) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_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 (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & 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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (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 ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_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) )))) = (binary_expression IDENT - IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (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 IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0002d1e0(void)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  code *pcVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  size_t sVar10;\n  char *__s;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  bool bVar20;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  undefined4 *in_stack_ffffff7c;\n  int local_70;\n  uint local_6c;\n  int local_68;\n  int local_64;\n  undefined4 *local_5c;\n  int local_58;\n  undefined4 *local_54;\n  int local_4c;\n  undefined4 *local_48;\n  undefined4 local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x2d1e9;\n  bfd_set_error();\n  FUN_00024760();\n  FUN_000217c0();\n  iVar13 = DAT_00091c50;\n  puVar7 = PTR__sch_istable_00090fa8;\n  if ((DAT_00091d74 & DAT_00091d78) != 0xffffffff) {\n    puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);\n    puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    puVar5 = puVar3;\n    puVar12 = puVar2;\n    while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }\n  }\n  local_54 = &DAT_00091c20;\n  iVar13 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))();\n  if (iVar13 != 0) {\n    return;\n  }\n  iVar13 = bfd_get_error();\n  if (iVar13 == 0) {\n    xexit();\n    if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    \n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }\n    *(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;\n    return;\n  }\n  dcgettext();\n  FUN_00031760();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0002d1e0(void)" (identifier "FUN_0002d1e0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  byte bVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  code *pcVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  size_t sVar10;\n  char *__s;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  int iVar14;\n  uint uVar15;\n  int iVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  bool bVar20;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  undefined4 *in_stack_ffffff7c;\n  int local_70;\n  uint local_6c;\n  int local_68;\n  int local_64;\n  undefined4 *local_5c;\n  int local_58;\n  undefined4 *local_54;\n  int local_4c;\n  undefined4 *local_48;\n  undefined4 local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x2d1e9;\n  bfd_set_error();\n  FUN_00024760();\n  FUN_000217c0();\n  iVar13 = DAT_00091c50;\n  puVar7 = PTR__sch_istable_00090fa8;\n  if ((DAT_00091d74 & DAT_00091d78) != 0xffffffff) {\n    puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);\n    puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    puVar5 = puVar3;\n    puVar12 = puVar2;\n    while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }\n  }\n  local_54 = &DAT_00091c20;\n  iVar13 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))();\n  if (iVar13 != 0) {\n    return;\n  }\n  iVar13 = bfd_get_error();\n  if (iVar13 == 0) {\n    xexit();\n    if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    \n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }\n    *(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;\n    return;\n  }\n  dcgettext();\n  FUN_00031760();\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "code *pcVar6;" (type_identifier "code") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "size_t sVar10;" (primitive_type "size_t") (identifier "sVar10") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "bool bVar20;" (primitive_type "bool") (identifier "bVar20") (; ";")) (declaration "bool bVar21;" (primitive_type "bool") (identifier "bVar21") (; ";")) (declaration "bool bVar22;" (primitive_type "bool") (identifier "bVar22") (; ";")) (declaration "byte bVar23;" (type_identifier "byte") (identifier "bVar23") (; ";")) (declaration "undefined4 *in_stack_ffffff7c;" (type_identifier "undefined4") (pointer_declarator "*in_stack_ffffff7c" (* "*") (identifier "in_stack_ffffff7c")) (; ";")) (declaration "int local_70;" (primitive_type "int") (identifier "local_70") (; ";")) (declaration "uint local_6c;" (type_identifier "uint") (identifier "local_6c") (; ";")) (declaration "int local_68;" (primitive_type "int") (identifier "local_68") (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "undefined4 *local_5c;" (type_identifier "undefined4") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c")) (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (declaration "undefined4 *local_54;" (type_identifier "undefined4") (pointer_declarator "*local_54" (* "*") (identifier "local_54")) (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "undefined4 *local_48;" (type_identifier "undefined4") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "undefined4 local_20 [3];" (type_identifier "undefined4") (array_declarator "local_20 [3]" (identifier "local_20") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" (identifier "bVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x2d1e9;" (assignment_expression "uStack_14 = 0x2d1e9" (identifier "uStack_14") (= "=") (number_literal "0x2d1e9")) (; ";")) (expression_statement "bfd_set_error();" (call_expression "bfd_set_error()" (identifier "bfd_set_error") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00024760();" (call_expression "FUN_00024760()" (identifier "FUN_00024760") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000217c0();" (call_expression "FUN_000217c0()" (identifier "FUN_000217c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar13 = DAT_00091c50;" (assignment_expression "iVar13 = DAT_00091c50" (identifier "iVar13") (= "=") (identifier "DAT_00091c50")) (; ";")) (expression_statement "puVar7 = PTR__sch_istable_00090fa8;" (assignment_expression "puVar7 = PTR__sch_istable_00090fa8" (identifier "puVar7") (= "=") (identifier "PTR__sch_istable_00090fa8")) (; ";")) (if_statement "if ((DAT_00091d74 & DAT_00091d78) != 0xffffffff) {\n    puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);\n    puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    puVar5 = puVar3;\n    puVar12 = puVar2;\n    while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }\n  }" (if "if") (parenthesized_expression "((DAT_00091d74 & DAT_00091d78) != 0xffffffff)" (( "(") (binary_expression "(DAT_00091d74 & DAT_00091d78) != 0xffffffff" (parenthesized_expression "(DAT_00091d74 & DAT_00091d78)" (( "(") (binary_expression "DAT_00091d74 & DAT_00091d78" (identifier "DAT_00091d74") (& "&") (identifier "DAT_00091d78")) () ")")) (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n    puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);\n    puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    puVar5 = puVar3;\n    puVar12 = puVar2;\n    while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }\n  }" ({ "{") (expression_statement "puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);" (assignment_expression "puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(DAT_00091c50 + 0x68)" (* "*") (cast_expression "(undefined4 **)(DAT_00091c50 + 0x68)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_00091c50 + 0x68)" (( "(") (binary_expression "DAT_00091c50 + 0x68" (identifier "DAT_00091c50") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);" (assignment_expression "puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(DAT_00091c50 + 0x60)" (* "*") (cast_expression "(undefined4 **)(DAT_00091c50 + 0x60)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_00091c50 + 0x60)" (( "(") (binary_expression "DAT_00091c50 + 0x60" (identifier "DAT_00091c50") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "puVar5 = puVar3;" (assignment_expression "puVar5 = puVar3" (identifier "puVar5") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "puVar12 = puVar2;" (assignment_expression "puVar12 = puVar2" (identifier "puVar12") (= "=") (identifier "puVar2")) (; ";")) (while_statement "while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }" (while "while") (parenthesized_expression "((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0)))" (( "(") (parenthesized_expression "(puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))" (( "(") (binary_expression "puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0)" (binary_expression "puVar12 != (undefined4 *)0x0" (identifier "puVar12") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar5 != (undefined4 *)0x0" (identifier "puVar5") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) () ")")) (compound_statement "{\n      local_20[0] = 0;\n      local_4c = puVar3[7];\n      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }\n      puVar3 = (undefined4 *)puVar3[3];\n      puVar2 = (undefined4 *)((int)puVar2 + -1);\n      puVar12 = puVar3;\n      puVar5 = puVar2;\n    }" ({ "{") (expression_statement "local_20[0] = 0;" (assignment_expression "local_20[0] = 0" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = puVar3[7];" (assignment_expression "local_4c = puVar3[7]" (identifier "local_4c") (= "=") (subscript_expression "puVar3[7]" (identifier "puVar3") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }" (if "if") (parenthesized_expression "((undefined4 *)puVar3[0x28] != (undefined4 *)0x0)" (( "(") (binary_expression "(undefined4 *)puVar3[0x28] != (undefined4 *)0x0" (cast_expression "(undefined4 *)puVar3[0x28]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[0x28]" (identifier "puVar3") ([ "[") (number_literal "0x28") (] "]"))) (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        local_64 = 0;\n        local_58 = 0;\n        local_6c = 0;\n        local_48 = (undefined4 *)0x0;\n        puVar12 = puVar3;\n        local_5c = (undefined4 *)puVar3[0x28];\n        do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );\n      }" ({ "{") (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" (identifier "local_6c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = (undefined4 *)0x0;" (assignment_expression "local_48 = (undefined4 *)0x0" (identifier "local_48") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar12 = puVar3;" (assignment_expression "puVar12 = puVar3" (identifier "puVar12") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "local_5c = (undefined4 *)puVar3[0x28];" (assignment_expression "local_5c = (undefined4 *)puVar3[0x28]" (identifier "local_5c") (= "=") (cast_expression "(undefined4 *)puVar3[0x28]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[0x28]" (identifier "puVar3") ([ "[") (number_literal "0x28") (] "]")))) (; ";")) (do_statement "do {\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        } while( true );" (do "do") (compound_statement "{\n          uVar15 = local_6c;\n          if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }\n          if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }\n          if (puVar5 == (undefined4 *)0x0) break;\n          local_48 = local_5c;\n          local_5c = puVar5;\n        }" ({ "{") (expression_statement "uVar15 = local_6c;" (assignment_expression "uVar15 = local_6c" (identifier "uVar15") (= "=") (identifier "local_6c")) (; ";")) (if_statement "if (local_5c[1] == 1) {\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }\n          else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" (if "if") (parenthesized_expression "(local_5c[1] == 1)" (( "(") (binary_expression "local_5c[1] == 1" (subscript_expression "local_5c[1]" (identifier "local_5c") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            local_70 = 0;\n            iVar14 = local_5c[4];\n            if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }\n            uVar9 = 0;\n            if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }\n            local_68 = *(int *)(iVar14 + 0x24);\n            uVar15 = local_6c;\n            local_6c = uVar9;\n          }" ({ "{") (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar14 = local_5c[4];" (assignment_expression "iVar14 = local_5c[4]" (identifier "iVar14") (= "=") (subscript_expression "local_5c[4]" (identifier "local_5c") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if ((DAT_00091c20._1_1_ & 0x20) == 0) {\n              local_70 = *(int *)(iVar14 + 0x74);\n            }" (if "if") (parenthesized_expression "((DAT_00091c20._1_1_ & 0x20) == 0)" (( "(") (binary_expression "(DAT_00091c20._1_1_ & 0x20) == 0" (parenthesized_expression "(DAT_00091c20._1_1_ & 0x20)" (( "(") (binary_expression "DAT_00091c20._1_1_ & 0x20" (field_expression "DAT_00091c20._1_1_" (identifier "DAT_00091c20") (. ".") (field_identifier "_1_1_")) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              local_70 = *(int *)(iVar14 + 0x74);\n            }" ({ "{") (expression_statement "local_70 = *(int *)(iVar14 + 0x74);" (assignment_expression "local_70 = *(int *)(iVar14 + 0x74)" (identifier "local_70") (= "=") (pointer_expression "*(int *)(iVar14 + 0x74)" (* "*") (cast_expression "(int *)(iVar14 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x74)" (( "(") (binary_expression "iVar14 + 0x74" (identifier "iVar14") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (if_statement "if (((byte)DAT_00091c20 & 3) == 2) {\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }" (if "if") (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2)" (( "(") (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" (( "(") (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00091c20")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n              uVar9 = *(uint *)(iVar14 + 0x4c);\n              local_6c = local_6c + uVar9;\n            }" ({ "{") (expression_statement "uVar9 = *(uint *)(iVar14 + 0x4c);" (assignment_expression "uVar9 = *(uint *)(iVar14 + 0x4c)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)(iVar14 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar14 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x4c)" (( "(") (binary_expression "iVar14 + 0x4c" (identifier "iVar14") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "local_6c = local_6c + uVar9;" (assignment_expression "local_6c = local_6c + uVar9" (identifier "local_6c") (= "=") (binary_expression "local_6c + uVar9" (identifier "local_6c") (+ "+") (identifier "uVar9"))) (; ";")) (} "}"))) (expression_statement "local_68 = *(int *)(iVar14 + 0x24);" (assignment_expression "local_68 = *(int *)(iVar14 + 0x24)" (identifier "local_68") (= "=") (pointer_expression "*(int *)(iVar14 + 0x24)" (* "*") (cast_expression "(int *)(iVar14 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "uVar15 = local_6c;" (assignment_expression "uVar15 = local_6c" (identifier "uVar15") (= "=") (identifier "local_6c")) (; ";")) (expression_statement "local_6c = uVar9;" (assignment_expression "local_6c = uVar9" (identifier "local_6c") (= "=") (identifier "uVar9")) (; ";")) (} "}")) (else_clause "else if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" (else "else") (if_statement "if (((byte)DAT_00091c20 & 3) == 2) {\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }\n          else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" (if "if") (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2)" (( "(") (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" (( "(") (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00091c20")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n            local_68 = 0;\n            local_70 = 0;\n            uVar9 = (uint)(local_5c[1] - 3 < 2);\n            uVar15 = local_6c + uVar9;\n            local_6c = uVar9;\n          }" ({ "{") (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" (identifier "local_68") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar9 = (uint)(local_5c[1] - 3 < 2);" (assignment_expression "uVar9 = (uint)(local_5c[1] - 3 < 2)" (identifier "uVar9") (= "=") (call_expression "(uint)(local_5c[1] - 3 < 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_5c[1] - 3 < 2)" (( "(") (binary_expression "local_5c[1] - 3 < 2" (binary_expression "local_5c[1] - 3" (subscript_expression "local_5c[1]" (identifier "local_5c") ([ "[") (number_literal "1") (] "]")) (- "-") (number_literal "3")) (< "<") (number_literal "2")) () ")")))) (; ";")) (expression_statement "uVar15 = local_6c + uVar9;" (assignment_expression "uVar15 = local_6c + uVar9" (identifier "uVar15") (= "=") (binary_expression "local_6c + uVar9" (identifier "local_6c") (+ "+") (identifier "uVar9"))) (; ";")) (expression_statement "local_6c = uVar9;" (assignment_expression "local_6c = uVar9" (identifier "local_6c") (= "=") (identifier "uVar9")) (; ";")) (} "}")) (else_clause "else {\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" (else "else") (compound_statement "{\n            local_68 = 0;\n            local_6c = 0;\n            local_70 = 0;\n          }" ({ "{") (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" (identifier "local_68") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" (identifier "local_6c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (} "}")))))) (if_statement "if (local_48 == (undefined4 *)0x0) {\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }\n          else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }" (if "if") (parenthesized_expression "(local_48 == (undefined4 *)0x0)" (( "(") (binary_expression "local_48 == (undefined4 *)0x0" (identifier "local_48") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0002d64e:\n            local_64 = local_68 + local_64;\n            local_58 = local_70 + local_58;\n            puVar5 = (undefined4 *)*local_5c;\n            local_6c = uVar15;\n          }" ({ "{") (labeled_statement "LAB_0002d64e:\n            local_64 = local_68 + local_64;" (statement_identifier "LAB_0002d64e") (: ":") (expression_statement "local_64 = local_68 + local_64;" (assignment_expression "local_64 = local_68 + local_64" (identifier "local_64") (= "=") (binary_expression "local_68 + local_64" (identifier "local_68") (+ "+") (identifier "local_64"))) (; ";"))) (expression_statement "local_58 = local_70 + local_58;" (assignment_expression "local_58 = local_70 + local_58" (identifier "local_58") (= "=") (binary_expression "local_70 + local_58" (identifier "local_70") (+ "+") (identifier "local_58"))) (; ";")) (expression_statement "puVar5 = (undefined4 *)*local_5c;" (assignment_expression "puVar5 = (undefined4 *)*local_5c" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)*local_5c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_5c" (* "*") (identifier "local_5c")))) (; ";")) (expression_statement "local_6c = uVar15;" (assignment_expression "local_6c = uVar15" (identifier "local_6c") (= "=") (identifier "uVar15")) (; ";")) (} "}")) (else_clause "else {\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }" (else "else") (compound_statement "{\n            bVar20 = DAT_00091d74 < uVar15;\n            bVar22 = DAT_00091d74 == uVar15;\n            if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }\n            pbVar18 = (byte *)*puVar12;\n            iVar14 = 5;\n            pbVar17 = pbVar18;\n            pbVar19 = (byte *)".stab";\n            do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);\n            bVar21 = false;\n            bVar20 = (!bVar20 && !bVar22) == bVar20;\n            if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }\n            pbVar18 = (byte *)*puVar3;\n            sVar10 = strlen((char *)pbVar18);\n            __s = (char *)xmalloc();\n            memcpy(__s,pbVar18,sVar10 + 1);\n            if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }\nLAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }\nLAB_0002d470:\n            in_stack_ffffff7c = local_20;\n            iVar14 = bfd_get_unique_section_name();\n            if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }\n            free(__s);\n            uVar8 = puVar12[5];\n            *(undefined1 *)(iVar14 + 0xc) = 3;\n            *(undefined4 *)(iVar14 + 0x18) = 0;\n            *(undefined4 **)(iVar14 + 0x14) = puVar11;\n            puVar11[5] = uVar8;\n            puVar11[7] = puVar12[7];\n            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;\n            uVar8 = puVar12[8];\n            puVar11[9] = 0;\n            puVar11[8] = uVar8;\n            uVar8 = puVar12[0xe];\n            puVar11[0xf] = puVar11;\n            puVar11[0xe] = uVar8;\n            uVar8 = puVar12[0x10];\n            puVar11[0x12] = 0;\n            puVar11[0x10] = uVar8;\n            iVar14 = *(int *)(iVar13 + 4);\n            puVar11[0x13] = 0;\n            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);\n            puVar11[0x29] = puVar12[0x29];\n            iVar14 = local_5c[2];\n            puVar11[0x28] = local_5c;\n            puVar12[0x29] = local_48;\n            *local_48 = 0;\n            local_4c = local_4c + iVar14;\n            puVar11[9] = puVar12[9] - iVar14;\n            puVar12[9] = iVar14;\n            puVar11[7] = local_4c;\n            puVar11[8] = local_4c;\n            puVar12 = local_5c;\n            iVar16 = iVar14;\n            while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }\n            puVar5 = (undefined4 *)*local_5c;\n            local_58 = local_70;\n            local_64 = local_68;\n            puVar12 = puVar11;\n          }" ({ "{") (expression_statement "bVar20 = DAT_00091d74 < uVar15;" (assignment_expression "bVar20 = DAT_00091d74 < uVar15" (identifier "bVar20") (= "=") (binary_expression "DAT_00091d74 < uVar15" (identifier "DAT_00091d74") (< "<") (identifier "uVar15"))) (; ";")) (expression_statement "bVar22 = DAT_00091d74 == uVar15;" (assignment_expression "bVar22 = DAT_00091d74 == uVar15" (identifier "bVar22") (= "=") (binary_expression "DAT_00091d74 == uVar15" (identifier "DAT_00091d74") (== "==") (identifier "uVar15"))) (; ";")) (if_statement "if (uVar15 < DAT_00091d74) {\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }" (if "if") (parenthesized_expression "(uVar15 < DAT_00091d74)" (( "(") (binary_expression "uVar15 < DAT_00091d74" (identifier "uVar15") (< "<") (identifier "DAT_00091d74")) () ")")) (compound_statement "{\n              uVar9 = local_70 + local_58;\n              bVar20 = DAT_00091d74 < uVar9;\n              bVar22 = DAT_00091d74 == uVar9;\n              if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }\n            }" ({ "{") (expression_statement "uVar9 = local_70 + local_58;" (assignment_expression "uVar9 = local_70 + local_58" (identifier "uVar9") (= "=") (binary_expression "local_70 + local_58" (identifier "local_70") (+ "+") (identifier "local_58"))) (; ";")) (expression_statement "bVar20 = DAT_00091d74 < uVar9;" (assignment_expression "bVar20 = DAT_00091d74 < uVar9" (identifier "bVar20") (= "=") (binary_expression "DAT_00091d74 < uVar9" (identifier "DAT_00091d74") (< "<") (identifier "uVar9"))) (; ";")) (expression_statement "bVar22 = DAT_00091d74 == uVar9;" (assignment_expression "bVar22 = DAT_00091d74 == uVar9" (identifier "bVar22") (= "=") (binary_expression "DAT_00091d74 == uVar9" (identifier "DAT_00091d74") (== "==") (identifier "uVar9"))) (; ";")) (if_statement "if (uVar9 < DAT_00091d74) {\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }" (if "if") (parenthesized_expression "(uVar9 < DAT_00091d74)" (( "(") (binary_expression "uVar9 < DAT_00091d74" (identifier "uVar9") (< "<") (identifier "DAT_00091d74")) () ")")) (compound_statement "{\n                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;\n                bVar22 = local_68 + local_64 == DAT_00091d78;\n                if (bVar20) goto LAB_0002d64e;\n              }" ({ "{") (expression_statement "bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;" (assignment_expression "bVar20 = (uint)(local_68 + local_64) < DAT_00091d78" (identifier "bVar20") (= "=") (binary_expression "(uint)(local_68 + local_64) < DAT_00091d78" (call_expression "(uint)(local_68 + local_64)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_68 + local_64)" (( "(") (binary_expression "local_68 + local_64" (identifier "local_68") (+ "+") (identifier "local_64")) () ")"))) (< "<") (identifier "DAT_00091d78"))) (; ";")) (expression_statement "bVar22 = local_68 + local_64 == DAT_00091d78;" (assignment_expression "bVar22 = local_68 + local_64 == DAT_00091d78" (identifier "bVar22") (= "=") (binary_expression "local_68 + local_64 == DAT_00091d78" (binary_expression "local_68 + local_64" (identifier "local_68") (+ "+") (identifier "local_64")) (== "==") (identifier "DAT_00091d78"))) (; ";")) (if_statement "if (bVar20) goto LAB_0002d64e;" (if "if") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (goto_statement "goto LAB_0002d64e;" (goto "goto") (statement_identifier "LAB_0002d64e") (; ";"))) (} "}"))) (} "}"))) (expression_statement "pbVar18 = (byte *)*puVar12;" (assignment_expression "pbVar18 = (byte *)*puVar12" (identifier "pbVar18") (= "=") (cast_expression "(byte *)*puVar12" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar12" (* "*") (identifier "puVar12")))) (; ";")) (expression_statement "iVar14 = 5;" (assignment_expression "iVar14 = 5" (identifier "iVar14") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar17 = pbVar18;" (assignment_expression "pbVar17 = pbVar18" (identifier "pbVar17") (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "pbVar19 = (byte *)".stab";" (assignment_expression "pbVar19 = (byte *)".stab"" (identifier "pbVar19") (= "=") (cast_expression "(byte *)".stab"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".stab"" (" """) (string_content ".stab") (" """)))) (; ";")) (do_statement "do {\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            } while (bVar22);" (do "do") (compound_statement "{\n              if (iVar14 == 0) break;\n              iVar14 = iVar14 + -1;\n              bVar20 = *pbVar17 < *pbVar19;\n              bVar22 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar14 == 0) break;" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" (identifier "iVar14") (= "=") (binary_expression "iVar14 + -1" (identifier "iVar14") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar20 = *pbVar17 < *pbVar19;" (assignment_expression "bVar20 = *pbVar17 < *pbVar19" (identifier "bVar20") (= "=") (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar22 = *pbVar17 == *pbVar19;" (assignment_expression "bVar22 = *pbVar17 == *pbVar19" (identifier "bVar22") (= "=") (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar23 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar23 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" (identifier "bVar21") (= "=") (false "false")) (; ";")) (expression_statement "bVar20 = (!bVar20 && !bVar22) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar22) == bVar20" (identifier "bVar20") (= "=") (binary_expression "(!bVar20 && !bVar22) == bVar20" (parenthesized_expression "(!bVar20 && !bVar22)" (( "(") (binary_expression "!bVar20 && !bVar22" (unary_expression "!bVar20" (! "!") (identifier "bVar20")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (== "==") (identifier "bVar20"))) (; ";")) (if_statement "if (bVar20) {\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }\n            else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }" (if "if") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (compound_statement "{\n              sVar10 = strlen((char *)pbVar18);\n              iVar14 = 4;\n              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;\n              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;\n              pbVar18 = pbVar18 + (sVar10 - 3);\n              pbVar17 = &DAT_0004de1c;\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);\n              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;\n            }" ({ "{") (expression_statement "sVar10 = strlen((char *)pbVar18);" (assignment_expression "sVar10 = strlen((char *)pbVar18)" (identifier "sVar10") (= "=") (call_expression "strlen((char *)pbVar18)" (identifier "strlen") (argument_list "((char *)pbVar18)" (( "(") (cast_expression "(char *)pbVar18" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar18")) () ")")))) (; ";")) (expression_statement "iVar14 = 4;" (assignment_expression "iVar14 = 4" (identifier "iVar14") (= "=") (number_literal "4")) (; ";")) (expression_statement "bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;" (assignment_expression "bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74" (identifier "bVar20") (= "=") (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff74" (cast_expression "(undefined1 *)0xffffffef" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffef")) (< "<") (pointer_expression "&stack0xffffff74" (& "&") (identifier "stack0xffffff74")))) (; ";")) (expression_statement "bVar22 = &stack0x00000000 == (undefined1 *)0x7c;" (assignment_expression "bVar22 = &stack0x00000000 == (undefined1 *)0x7c" (identifier "bVar22") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x7c" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x7c" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7c")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (sVar10 - 3);" (assignment_expression "pbVar18 = pbVar18 + (sVar10 - 3)" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (sVar10 - 3)" (identifier "pbVar18") (+ "+") (parenthesized_expression "(sVar10 - 3)" (( "(") (binary_expression "sVar10 - 3" (identifier "sVar10") (- "-") (number_literal "3")) () ")")))) (; ";")) (expression_statement "pbVar17 = &DAT_0004de1c;" (assignment_expression "pbVar17 = &DAT_0004de1c" (identifier "pbVar17") (= "=") (pointer_expression "&DAT_0004de1c" (& "&") (identifier "DAT_0004de1c"))) (; ";")) (do_statement "do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar22);" (do "do") (compound_statement "{\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar20 = *pbVar18 < *pbVar17;\n                bVar22 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              }" ({ "{") (if_statement "if (iVar14 == 0) break;" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" (identifier "iVar14") (= "=") (binary_expression "iVar14 + -1" (identifier "iVar14") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar20 = *pbVar18 < *pbVar17;" (assignment_expression "bVar20 = *pbVar18 < *pbVar17" (identifier "bVar20") (= "=") (binary_expression "*pbVar18 < *pbVar17" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")))) (; ";")) (expression_statement "bVar22 = *pbVar18 == *pbVar17;" (assignment_expression "bVar22 = *pbVar18 == *pbVar17" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 == *pbVar17" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar23 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar23 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (if_statement "if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;" (if "if") (parenthesized_expression "((!bVar20 && !bVar22) == bVar20)" (( "(") (binary_expression "(!bVar20 && !bVar22) == bVar20" (parenthesized_expression "(!bVar20 && !bVar22)" (( "(") (binary_expression "!bVar20 && !bVar22" (unary_expression "!bVar20" (! "!") (identifier "bVar20")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (== "==") (identifier "bVar20")) () ")")) (goto_statement "goto LAB_0002d64e;" (goto "goto") (statement_identifier "LAB_0002d64e") (; ";"))) (} "}")) (else_clause "else {\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }" (else "else") (compound_statement "{\n              iVar14 = 0xe;\n              pbVar17 = (byte *)"$GDB_STRINGS$";\n              do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);\n              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;\n            }" ({ "{") (expression_statement "iVar14 = 0xe;" (assignment_expression "iVar14 = 0xe" (identifier "iVar14") (= "=") (number_literal "0xe")) (; ";")) (expression_statement "pbVar17 = (byte *)"$GDB_STRINGS$";" (assignment_expression "pbVar17 = (byte *)"$GDB_STRINGS$"" (identifier "pbVar17") (= "=") (cast_expression "(byte *)"$GDB_STRINGS$"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""$GDB_STRINGS$"" (" """) (string_content "$GDB_STRINGS$") (" """)))) (; ";")) (do_statement "do {\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              } while (bVar20);" (do "do") (compound_statement "{\n                if (iVar14 == 0) break;\n                iVar14 = iVar14 + -1;\n                bVar21 = *pbVar18 < *pbVar17;\n                bVar20 = *pbVar18 == *pbVar17;\n                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n              }" ({ "{") (if_statement "if (iVar14 == 0) break;" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" (identifier "iVar14") (= "=") (binary_expression "iVar14 + -1" (identifier "iVar14") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar21 = *pbVar18 < *pbVar17;" (assignment_expression "bVar21 = *pbVar18 < *pbVar17" (identifier "bVar21") (= "=") (binary_expression "*pbVar18 < *pbVar17" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")))) (; ";")) (expression_statement "bVar20 = *pbVar18 == *pbVar17;" (assignment_expression "bVar20 = *pbVar18 == *pbVar17" (identifier "bVar20") (= "=") (binary_expression "*pbVar18 == *pbVar17" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar23 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar23 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (; ";")) (if_statement "if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;" (if "if") (parenthesized_expression "((!bVar21 && !bVar20) == bVar21)" (( "(") (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" (( "(") (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" (! "!") (identifier "bVar21")) (&& "&&") (unary_expression "!bVar20" (! "!") (identifier "bVar20"))) () ")")) (== "==") (identifier "bVar21")) () ")")) (goto_statement "goto LAB_0002d64e;" (goto "goto") (statement_identifier "LAB_0002d64e") (; ";"))) (} "}")))) (expression_statement "pbVar18 = (byte *)*puVar3;" (assignment_expression "pbVar18 = (byte *)*puVar3" (identifier "pbVar18") (= "=") (cast_expression "(byte *)*puVar3" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")))) (; ";")) (expression_statement "sVar10 = strlen((char *)pbVar18);" (assignment_expression "sVar10 = strlen((char *)pbVar18)" (identifier "sVar10") (= "=") (call_expression "strlen((char *)pbVar18)" (identifier "strlen") (argument_list "((char *)pbVar18)" (( "(") (cast_expression "(char *)pbVar18" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar18")) () ")")))) (; ";")) (expression_statement "__s = (char *)xmalloc();" (assignment_expression "__s = (char *)xmalloc()" (identifier "__s") (= "=") (cast_expression "(char *)xmalloc()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc()" (identifier "xmalloc") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "memcpy(__s,pbVar18,sVar10 + 1);" (call_expression "memcpy(__s,pbVar18,sVar10 + 1)" (identifier "memcpy") (argument_list "(__s,pbVar18,sVar10 + 1)" (( "(") (identifier "__s") (, ",") (identifier "pbVar18") (, ",") (binary_expression "sVar10 + 1" (identifier "sVar10") (+ "+") (number_literal "1")) () ")"))) (; ";")) (if_statement "if (sVar10 != 0) {\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }" (if "if") (parenthesized_expression "(sVar10 != 0)" (( "(") (binary_expression "sVar10 != 0" (identifier "sVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];\n              while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }\n              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }\n            }" ({ "{") (expression_statement "bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];" (assignment_expression "bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2]" (identifier "bVar1") (= "=") (subscript_expression "puVar7[(uint)(byte)__s[sVar10 - 1] * 2]" (identifier "puVar7") ([ "[") (binary_expression "(uint)(byte)__s[sVar10 - 1] * 2" (cast_expression "(uint)(byte)__s[sVar10 - 1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)__s[sVar10 - 1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "__s[sVar10 - 1]" (identifier "__s") ([ "[") (binary_expression "sVar10 - 1" (identifier "sVar10") (- "-") (number_literal "1")) (] "]")))) (* "*") (number_literal "2")) (] "]"))) (; ";")) (while_statement "while ((bVar1 & 4) != 0) {\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }" (while "while") (parenthesized_expression "((bVar1 & 4) != 0)" (( "(") (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                if (sVar10 - 1 == 0) goto LAB_0002d408;\n                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];\n                sVar10 = sVar10 - 1;\n              }" ({ "{") (if_statement "if (sVar10 - 1 == 0) goto LAB_0002d408;" (if "if") (parenthesized_expression "(sVar10 - 1 == 0)" (( "(") (binary_expression "sVar10 - 1 == 0" (binary_expression "sVar10 - 1" (identifier "sVar10") (- "-") (number_literal "1")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002d408;" (goto "goto") (statement_identifier "LAB_0002d408") (; ";"))) (expression_statement "bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];" (assignment_expression "bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2]" (identifier "bVar1") (= "=") (subscript_expression "puVar7[(uint)(byte)__s[sVar10 - 2] * 2]" (identifier "puVar7") ([ "[") (binary_expression "(uint)(byte)__s[sVar10 - 2] * 2" (cast_expression "(uint)(byte)__s[sVar10 - 2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)__s[sVar10 - 2]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "__s[sVar10 - 2]" (identifier "__s") ([ "[") (binary_expression "sVar10 - 2" (identifier "sVar10") (- "-") (number_literal "2")) (] "]")))) (* "*") (number_literal "2")) (] "]"))) (; ";")) (expression_statement "sVar10 = sVar10 - 1;" (assignment_expression "sVar10 = sVar10 - 1" (identifier "sVar10") (= "=") (binary_expression "sVar10 - 1" (identifier "sVar10") (- "-") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {\n                __s[sVar10 - 1] = '\0';\n              }" (if "if") (parenthesized_expression "((sVar10 != 1) && (__s[sVar10 - 1] == '.'))" (( "(") (binary_expression "(sVar10 != 1) && (__s[sVar10 - 1] == '.')" (parenthesized_expression "(sVar10 != 1)" (( "(") (binary_expression "sVar10 != 1" (identifier "sVar10") (!= "!=") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(__s[sVar10 - 1] == '.')" (( "(") (binary_expression "__s[sVar10 - 1] == '.'" (subscript_expression "__s[sVar10 - 1]" (identifier "__s") ([ "[") (binary_expression "sVar10 - 1" (identifier "sVar10") (- "-") (number_literal "1")) (] "]")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                __s[sVar10 - 1] = '\0';\n              }" ({ "{") (expression_statement "__s[sVar10 - 1] = '\0';" (assignment_expression "__s[sVar10 - 1] = '\0'" (subscript_expression "__s[sVar10 - 1]" (identifier "__s") ([ "[") (binary_expression "sVar10 - 1" (identifier "sVar10") (- "-") (number_literal "1")) (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0002d408:\n            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }" (statement_identifier "LAB_0002d408") (: ":") (if_statement "if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0)" (( "(") (binary_expression "(*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0" (parenthesized_expression "(*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd)" (( "(") (binary_expression "*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd" (binary_expression "*(int *)(*(int *)(iVar13 + 4) + 4) - 2U" (pointer_expression "*(int *)(*(int *)(iVar13 + 4) + 4)" (* "*") (cast_expression "(int *)(*(int *)(iVar13 + 4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar13 + 4) + 4)" (( "(") (binary_expression "*(int *)(iVar13 + 4) + 4" (pointer_expression "*(int *)(iVar13 + 4)" (* "*") (cast_expression "(int *)(iVar13 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 4)" (( "(") (binary_expression "iVar13 + 4" (identifier "iVar13") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (- "-") (number_literal "2U")) (& "&") (number_literal "0xfffffffd")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              sVar10 = strlen(__s);\n              bVar20 = sVar10 < 5;\n              bVar22 = sVar10 == 5;\n              if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }\n            }" ({ "{") (expression_statement "sVar10 = strlen(__s);" (assignment_expression "sVar10 = strlen(__s)" (identifier "sVar10") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "bVar20 = sVar10 < 5;" (assignment_expression "bVar20 = sVar10 < 5" (identifier "bVar20") (= "=") (binary_expression "sVar10 < 5" (identifier "sVar10") (< "<") (number_literal "5"))) (; ";")) (expression_statement "bVar22 = sVar10 == 5;" (assignment_expression "bVar22 = sVar10 == 5" (identifier "bVar22") (= "=") (binary_expression "sVar10 == 5" (identifier "sVar10") (== "==") (number_literal "5"))) (; ";")) (if_statement "if (5 < sVar10) {\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }" (if "if") (parenthesized_expression "(5 < sVar10)" (( "(") (binary_expression "5 < sVar10" (number_literal "5") (< "<") (identifier "sVar10")) () ")")) (compound_statement "{\n                iVar14 = 5;\n                pbVar17 = pbVar18;\n                pbVar19 = (byte *)".stab";\n                do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);\n                bVar21 = false;\n                bVar20 = (!bVar20 && !bVar22) == bVar20;\n                if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }\n                dcgettext();\n                FUN_00031760();\n                goto LAB_0002d60e;\n              }" ({ "{") (expression_statement "iVar14 = 5;" (assignment_expression "iVar14 = 5" (identifier "iVar14") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar17 = pbVar18;" (assignment_expression "pbVar17 = pbVar18" (identifier "pbVar17") (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "pbVar19 = (byte *)".stab";" (assignment_expression "pbVar19 = (byte *)".stab"" (identifier "pbVar19") (= "=") (cast_expression "(byte *)".stab"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".stab"" (" """) (string_content ".stab") (" """)))) (; ";")) (do_statement "do {\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                } while (bVar22);" (do "do") (compound_statement "{\n                  if (iVar14 == 0) break;\n                  iVar14 = iVar14 + -1;\n                  bVar20 = *pbVar17 < *pbVar19;\n                  bVar22 = *pbVar17 == *pbVar19;\n                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;\n                }" ({ "{") (if_statement "if (iVar14 == 0) break;" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" (identifier "iVar14") (= "=") (binary_expression "iVar14 + -1" (identifier "iVar14") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar20 = *pbVar17 < *pbVar19;" (assignment_expression "bVar20 = *pbVar17 < *pbVar19" (identifier "bVar20") (= "=") (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar22 = *pbVar17 == *pbVar19;" (assignment_expression "bVar22 = *pbVar17 == *pbVar19" (identifier "bVar22") (= "=") (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar23 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar23 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" (identifier "bVar21") (= "=") (false "false")) (; ";")) (expression_statement "bVar20 = (!bVar20 && !bVar22) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar22) == bVar20" (identifier "bVar20") (= "=") (binary_expression "(!bVar20 && !bVar22) == bVar20" (parenthesized_expression "(!bVar20 && !bVar22)" (( "(") (binary_expression "!bVar20 && !bVar22" (unary_expression "!bVar20" (! "!") (identifier "bVar20")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (== "==") (identifier "bVar20"))) (; ";")) (if_statement "if (!bVar20) {\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }" (if "if") (parenthesized_expression "(!bVar20)" (( "(") (unary_expression "!bVar20" (! "!") (identifier "bVar20")) () ")")) (compound_statement "{\n                  iVar14 = 0xe;\n                  pbVar17 = (byte *)"$GDB_SYMBOLS$";\n                  do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);\n                  if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }\n                }" ({ "{") (expression_statement "iVar14 = 0xe;" (assignment_expression "iVar14 = 0xe" (identifier "iVar14") (= "=") (number_literal "0xe")) (; ";")) (expression_statement "pbVar17 = (byte *)"$GDB_SYMBOLS$";" (assignment_expression "pbVar17 = (byte *)"$GDB_SYMBOLS$"" (identifier "pbVar17") (= "=") (cast_expression "(byte *)"$GDB_SYMBOLS$"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""$GDB_SYMBOLS$"" (" """) (string_content "$GDB_SYMBOLS$") (" """)))) (; ";")) (do_statement "do {\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  } while (bVar20);" (do "do") (compound_statement "{\n                    if (iVar14 == 0) break;\n                    iVar14 = iVar14 + -1;\n                    bVar21 = *pbVar18 < *pbVar17;\n                    bVar20 = *pbVar18 == *pbVar17;\n                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;\n                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;\n                  }" ({ "{") (if_statement "if (iVar14 == 0) break;" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" (identifier "iVar14") (= "=") (binary_expression "iVar14 + -1" (identifier "iVar14") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar21 = *pbVar18 < *pbVar17;" (assignment_expression "bVar21 = *pbVar18 < *pbVar17" (identifier "bVar21") (= "=") (binary_expression "*pbVar18 < *pbVar17" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")))) (; ";")) (expression_statement "bVar20 = *pbVar18 == *pbVar17;" (assignment_expression "bVar20 = *pbVar18 == *pbVar17" (identifier "bVar20") (= "=") (binary_expression "*pbVar18 == *pbVar17" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar23 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar23 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (; ";")) (if_statement "if ((!bVar21 && !bVar20) != bVar21) {\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }" (if "if") (parenthesized_expression "((!bVar21 && !bVar20) != bVar21)" (( "(") (binary_expression "(!bVar21 && !bVar20) != bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" (( "(") (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" (! "!") (identifier "bVar21")) (&& "&&") (unary_expression "!bVar20" (! "!") (identifier "bVar20"))) () ")")) (!= "!=") (identifier "bVar21")) () ")")) (compound_statement "{\n                    __s[5] = '\0';\n                    goto LAB_0002d470;\n                  }" ({ "{") (expression_statement "__s[5] = '\0';" (assignment_expression "__s[5] = '\0'" (subscript_expression "__s[5]" (identifier "__s") ([ "[") (number_literal "5") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (goto_statement "goto LAB_0002d470;" (goto "goto") (statement_identifier "LAB_0002d470") (; ";")) (} "}"))) (} "}"))) (expression_statement "dcgettext();" (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00031760();" (call_expression "FUN_00031760()" (identifier "FUN_00031760") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0002d60e;" (goto "goto") (statement_identifier "LAB_0002d60e") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0002d470:\n            in_stack_ffffff7c = local_20;" (statement_identifier "LAB_0002d470") (: ":") (expression_statement "in_stack_ffffff7c = local_20;" (assignment_expression "in_stack_ffffff7c = local_20" (identifier "in_stack_ffffff7c") (= "=") (identifier "local_20")) (; ";"))) (expression_statement "iVar14 = bfd_get_unique_section_name();" (assignment_expression "iVar14 = bfd_get_unique_section_name()" (identifier "iVar14") (= "=") (call_expression "bfd_get_unique_section_name()" (identifier "bfd_get_unique_section_name") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }" (if "if") (parenthesized_expression "(((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0))" (( "(") (binary_expression "((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))\n               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)" (parenthesized_expression "((iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))" (( "(") (binary_expression "(iVar14 == 0) ||\n                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0)" (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0)" (( "(") (comma_expression "puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0" (assignment_expression "puVar11 = (undefined4 *)bfd_make_section_anyway()" (identifier "puVar11") (= "=") (cast_expression "(undefined4 *)bfd_make_section_anyway()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "bfd_make_section_anyway()" (identifier "bfd_make_section_anyway") (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "puVar11 == (undefined4 *)0x0" (identifier "puVar11") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)" (( "(") (comma_expression "iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0" (assignment_expression "iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1)" (identifier "iVar14") (= "=") (call_expression "bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1)" (identifier "bfd_link_hash_lookup") (argument_list "(DAT_00091c3c,iVar14,1,1)" (( "(") (identifier "DAT_00091c3c") (, ",") (identifier "iVar14") (, ",") (number_literal "1") (, ",") (number_literal "1") () ")")))) (, ",") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              dcgettext();\n              FUN_00031760();\nLAB_0002d60e:\n              _DAT_000000a0 = local_5c;\n                    \n              pcVar6 = (code *)invalidInstructionException();\n              (*pcVar6)();\n            }" ({ "{") (expression_statement "dcgettext();" (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00031760();" (call_expression "FUN_00031760()" (identifier "FUN_00031760") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0002d60e:\n              _DAT_000000a0 = local_5c;" (statement_identifier "LAB_0002d60e") (: ":") (expression_statement "_DAT_000000a0 = local_5c;" (assignment_expression "_DAT_000000a0 = local_5c" (identifier "_DAT_000000a0") (= "=") (identifier "local_5c")) (; ";"))) (expression_statement "pcVar6 = (code *)invalidInstructionException();" (assignment_expression "pcVar6 = (code *)invalidInstructionException()" (identifier "pcVar6") (= "=") (cast_expression "(code *)invalidInstructionException()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "invalidInstructionException()" (identifier "invalidInstructionException") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "free(__s);" (call_expression "free(__s)" (identifier "free") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (expression_statement "uVar8 = puVar12[5];" (assignment_expression "uVar8 = puVar12[5]" (identifier "uVar8") (= "=") (subscript_expression "puVar12[5]" (identifier "puVar12") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(iVar14 + 0xc) = 3;" (assignment_expression "*(undefined1 *)(iVar14 + 0xc) = 3" (pointer_expression "*(undefined1 *)(iVar14 + 0xc)" (* "*") (cast_expression "(undefined1 *)(iVar14 + 0xc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xc)" (( "(") (binary_expression "iVar14 + 0xc" (identifier "iVar14") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "*(undefined4 *)(iVar14 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar14 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar14 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x18)" (( "(") (binary_expression "iVar14 + 0x18" (identifier "iVar14") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(iVar14 + 0x14) = puVar11;" (assignment_expression "*(undefined4 **)(iVar14 + 0x14) = puVar11" (pointer_expression "*(undefined4 **)(iVar14 + 0x14)" (* "*") (cast_expression "(undefined4 **)(iVar14 + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 0x14)" (( "(") (binary_expression "iVar14 + 0x14" (identifier "iVar14") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "puVar11[5] = uVar8;" (assignment_expression "puVar11[5] = uVar8" (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar11[7] = puVar12[7];" (assignment_expression "puVar11[7] = puVar12[7]" (subscript_expression "puVar11[7]" (identifier "puVar11") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar12[7]" (identifier "puVar12") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "*(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;" (assignment_expression "*(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1" (pointer_expression "*(byte *)(puVar11 + 6)" (* "*") (cast_expression "(byte *)(puVar11 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 6)" (( "(") (binary_expression "puVar11 + 6" (identifier "puVar11") (+ "+") (number_literal "6")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1" (binary_expression "*(byte *)(puVar11 + 6) & 0xfe" (pointer_expression "*(byte *)(puVar11 + 6)" (* "*") (cast_expression "(byte *)(puVar11 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 6)" (( "(") (binary_expression "puVar11 + 6" (identifier "puVar11") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "0xfe")) (| "|") (binary_expression "*(byte *)(puVar12 + 6) & 1" (pointer_expression "*(byte *)(puVar12 + 6)" (* "*") (cast_expression "(byte *)(puVar12 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 6)" (( "(") (binary_expression "puVar12 + 6" (identifier "puVar12") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "1")))) (; ";")) (expression_statement "uVar8 = puVar12[8];" (assignment_expression "uVar8 = puVar12[8]" (identifier "uVar8") (= "=") (subscript_expression "puVar12[8]" (identifier "puVar12") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "puVar11[9] = 0;" (assignment_expression "puVar11[9] = 0" (subscript_expression "puVar11[9]" (identifier "puVar11") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar11[8] = uVar8;" (assignment_expression "puVar11[8] = uVar8" (subscript_expression "puVar11[8]" (identifier "puVar11") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "uVar8 = puVar12[0xe];" (assignment_expression "uVar8 = puVar12[0xe]" (identifier "uVar8") (= "=") (subscript_expression "puVar12[0xe]" (identifier "puVar12") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "puVar11[0xf] = puVar11;" (assignment_expression "puVar11[0xf] = puVar11" (subscript_expression "puVar11[0xf]" (identifier "puVar11") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "puVar11[0xe] = uVar8;" (assignment_expression "puVar11[0xe] = uVar8" (subscript_expression "puVar11[0xe]" (identifier "puVar11") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "uVar8 = puVar12[0x10];" (assignment_expression "uVar8 = puVar12[0x10]" (identifier "uVar8") (= "=") (subscript_expression "puVar12[0x10]" (identifier "puVar12") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "puVar11[0x12] = 0;" (assignment_expression "puVar11[0x12] = 0" (subscript_expression "puVar11[0x12]" (identifier "puVar11") ([ "[") (number_literal "0x12") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar11[0x10] = uVar8;" (assignment_expression "puVar11[0x10] = uVar8" (subscript_expression "puVar11[0x10]" (identifier "puVar11") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "iVar14 = *(int *)(iVar13 + 4);" (assignment_expression "iVar14 = *(int *)(iVar13 + 4)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar13 + 4)" (* "*") (cast_expression "(int *)(iVar13 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 4)" (( "(") (binary_expression "iVar13 + 4" (identifier "iVar13") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar11[0x13] = 0;" (assignment_expression "puVar11[0x13] = 0" (subscript_expression "puVar11[0x13]" (identifier "puVar11") ([ "[") (number_literal "0x13") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);" (call_expression "(**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11)" (parenthesized_expression "(**(code **)(iVar14 + 0xb4))" (( "(") (pointer_expression "**(code **)(iVar14 + 0xb4)" (* "*") (pointer_expression "*(code **)(iVar14 + 0xb4)" (* "*") (cast_expression "(code **)(iVar14 + 0xb4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 0xb4)" (( "(") (binary_expression "iVar14 + 0xb4" (identifier "iVar14") (+ "+") (number_literal "0xb4")) () ")"))))) () ")")) (argument_list "(iVar13,puVar12,iVar13,puVar11)" (( "(") (identifier "iVar13") (, ",") (identifier "puVar12") (, ",") (identifier "iVar13") (, ",") (identifier "puVar11") () ")"))) (; ";")) (expression_statement "puVar11[0x29] = puVar12[0x29];" (assignment_expression "puVar11[0x29] = puVar12[0x29]" (subscript_expression "puVar11[0x29]" (identifier "puVar11") ([ "[") (number_literal "0x29") (] "]")) (= "=") (subscript_expression "puVar12[0x29]" (identifier "puVar12") ([ "[") (number_literal "0x29") (] "]"))) (; ";")) (expression_statement "iVar14 = local_5c[2];" (assignment_expression "iVar14 = local_5c[2]" (identifier "iVar14") (= "=") (subscript_expression "local_5c[2]" (identifier "local_5c") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar11[0x28] = local_5c;" (assignment_expression "puVar11[0x28] = local_5c" (subscript_expression "puVar11[0x28]" (identifier "puVar11") ([ "[") (number_literal "0x28") (] "]")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "puVar12[0x29] = local_48;" (assignment_expression "puVar12[0x29] = local_48" (subscript_expression "puVar12[0x29]" (identifier "puVar12") ([ "[") (number_literal "0x29") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "*local_48 = 0;" (assignment_expression "*local_48 = 0" (pointer_expression "*local_48" (* "*") (identifier "local_48")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = local_4c + iVar14;" (assignment_expression "local_4c = local_4c + iVar14" (identifier "local_4c") (= "=") (binary_expression "local_4c + iVar14" (identifier "local_4c") (+ "+") (identifier "iVar14"))) (; ";")) (expression_statement "puVar11[9] = puVar12[9] - iVar14;" (assignment_expression "puVar11[9] = puVar12[9] - iVar14" (subscript_expression "puVar11[9]" (identifier "puVar11") ([ "[") (number_literal "9") (] "]")) (= "=") (binary_expression "puVar12[9] - iVar14" (subscript_expression "puVar12[9]" (identifier "puVar12") ([ "[") (number_literal "9") (] "]")) (- "-") (identifier "iVar14"))) (; ";")) (expression_statement "puVar12[9] = iVar14;" (assignment_expression "puVar12[9] = iVar14" (subscript_expression "puVar12[9]" (identifier "puVar12") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "iVar14")) (; ";")) (expression_statement "puVar11[7] = local_4c;" (assignment_expression "puVar11[7] = local_4c" (subscript_expression "puVar11[7]" (identifier "puVar11") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "puVar11[8] = local_4c;" (assignment_expression "puVar11[8] = local_4c" (subscript_expression "puVar11[8]" (identifier "puVar11") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "puVar12 = local_5c;" (assignment_expression "puVar12 = local_5c" (identifier "puVar12") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "iVar16 = iVar14;" (assignment_expression "iVar16 = iVar14" (identifier "iVar16") (= "=") (identifier "iVar14")) (; ";")) (while_statement "while( true ) {\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              puVar12[2] = iVar16 - iVar14;\n              if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }\n              puVar12 = (undefined4 *)*puVar12;\n              if (puVar12 == (undefined4 *)0x0) break;\n              iVar16 = puVar12[2];\n            }" ({ "{") (expression_statement "puVar12[2] = iVar16 - iVar14;" (assignment_expression "puVar12[2] = iVar16 - iVar14" (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "iVar16 - iVar14" (identifier "iVar16") (- "-") (identifier "iVar14"))) (; ";")) (if_statement "if (puVar12[1] == 1) {\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }" (if "if") (parenthesized_expression "(puVar12[1] == 1)" (( "(") (binary_expression "puVar12[1] == 1" (subscript_expression "puVar12[1]" (identifier "puVar12") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                iVar4 = puVar12[4];\n                *(undefined4 **)(iVar4 + 0x3c) = puVar11;\n                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;\n              }" ({ "{") (expression_statement "iVar4 = puVar12[4];" (assignment_expression "iVar4 = puVar12[4]" (identifier "iVar4") (= "=") (subscript_expression "puVar12[4]" (identifier "puVar12") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*(undefined4 **)(iVar4 + 0x3c) = puVar11;" (assignment_expression "*(undefined4 **)(iVar4 + 0x3c) = puVar11" (pointer_expression "*(undefined4 **)(iVar4 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(iVar4 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x3c)" (( "(") (binary_expression "iVar4 + 0x3c" (identifier "iVar4") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(int *)(iVar4 + 0x38) = iVar16 - iVar14;" (assignment_expression "*(int *)(iVar4 + 0x38) = iVar16 - iVar14" (pointer_expression "*(int *)(iVar4 + 0x38)" (* "*") (cast_expression "(int *)(iVar4 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x38)" (( "(") (binary_expression "iVar4 + 0x38" (identifier "iVar4") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "iVar16 - iVar14" (identifier "iVar16") (- "-") (identifier "iVar14"))) (; ";")) (} "}"))) (expression_statement "puVar12 = (undefined4 *)*puVar12;" (assignment_expression "puVar12 = (undefined4 *)*puVar12" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)*puVar12" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar12" (* "*") (identifier "puVar12")))) (; ";")) (if_statement "if (puVar12 == (undefined4 *)0x0) break;" (if "if") (parenthesized_expression "(puVar12 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar12 == (undefined4 *)0x0" (identifier "puVar12") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = puVar12[2];" (assignment_expression "iVar16 = puVar12[2]" (identifier "iVar16") (= "=") (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}"))) (expression_statement "puVar5 = (undefined4 *)*local_5c;" (assignment_expression "puVar5 = (undefined4 *)*local_5c" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)*local_5c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_5c" (* "*") (identifier "local_5c")))) (; ";")) (expression_statement "local_58 = local_70;" (assignment_expression "local_58 = local_70" (identifier "local_58") (= "=") (identifier "local_70")) (; ";")) (expression_statement "local_64 = local_68;" (assignment_expression "local_64 = local_68" (identifier "local_64") (= "=") (identifier "local_68")) (; ";")) (expression_statement "puVar12 = puVar11;" (assignment_expression "puVar12 = puVar11" (identifier "puVar12") (= "=") (identifier "puVar11")) (; ";")) (} "}")))) (if_statement "if (puVar5 == (undefined4 *)0x0) break;" (if "if") (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar5 == (undefined4 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_48 = local_5c;" (assignment_expression "local_48 = local_5c" (identifier "local_48") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "local_5c = puVar5;" (assignment_expression "local_5c = puVar5" (identifier "local_5c") (= "=") (identifier "puVar5")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "puVar3 = (undefined4 *)puVar3[3];" (assignment_expression "puVar3 = (undefined4 *)puVar3[3]" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)puVar3[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "puVar2 = (undefined4 *)((int)puVar2 + -1);" (assignment_expression "puVar2 = (undefined4 *)((int)puVar2 + -1)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)((int)puVar2 + -1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar2 + -1)" (( "(") (binary_expression "(int)puVar2 + -1" (cast_expression "(int)puVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar2")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "puVar12 = puVar3;" (assignment_expression "puVar12 = puVar3" (identifier "puVar12") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "puVar5 = puVar2;" (assignment_expression "puVar5 = puVar2" (identifier "puVar5") (= "=") (identifier "puVar2")) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_54 = &DAT_00091c20;" (assignment_expression "local_54 = &DAT_00091c20" (identifier "local_54") (= "=") (pointer_expression "&DAT_00091c20" (& "&") (identifier "DAT_00091c20"))) (; ";")) (expression_statement "iVar13 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))();" (assignment_expression "iVar13 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))()" (identifier "iVar13") (= "=") (call_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))()" (parenthesized_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))" (( "(") (pointer_expression "**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178)" (* "*") (pointer_expression "*(code **)(*(int *)(DAT_00091c50 + 4) + 0x178)" (* "*") (cast_expression "(code **)(*(int *)(DAT_00091c50 + 4) + 0x178)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_00091c50 + 4) + 0x178)" (( "(") (binary_expression "*(int *)(DAT_00091c50 + 4) + 0x178" (pointer_expression "*(int *)(DAT_00091c50 + 4)" (* "*") (cast_expression "(int *)(DAT_00091c50 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00091c50 + 4)" (( "(") (binary_expression "DAT_00091c50 + 4" (identifier "DAT_00091c50") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x178")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar13 != 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar13 = bfd_get_error();" (assignment_expression "iVar13 = bfd_get_error()" (identifier "iVar13") (= "=") (call_expression "bfd_get_error()" (identifier "bfd_get_error") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar13 == 0) {\n    xexit();\n    if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    \n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }\n    *(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;\n    return;\n  }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    xexit();\n    if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    \n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }\n    *(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;\n    return;\n  }" ({ "{") (expression_statement "xexit();" (call_expression "xexit()" (identifier "xexit") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)) {\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    \n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }" (if "if") (parenthesized_expression "((local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0))" (( "(") (binary_expression "(local_54 == (undefined4 *)0x0) &&\n       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)" (parenthesized_expression "(local_54 == (undefined4 *)0x0)" (( "(") (binary_expression "local_54 == (undefined4 *)0x0" (identifier "local_54") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0)" (( "(") (comma_expression "local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),\n       local_54 == (undefined4 *)0x0" (assignment_expression "local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14)" (identifier "local_54") (= "=") (cast_expression "(undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "bfd_hash_allocate(in_stack_ffffff7c,0x14)" (identifier "bfd_hash_allocate") (argument_list "(in_stack_ffffff7c,0x14)" (( "(") (identifier "in_stack_ffffff7c") (, ",") (number_literal "0x14") () ")"))))) (, ",") (binary_expression "local_54 == (undefined4 *)0x0" (identifier "local_54") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);\n      FUN_00031760(uVar8,0x2d795);\n      _DAT_00000010 = _DAT_00000010 & 0xfeff;\n                    \n      pcVar6 = (code *)invalidInstructionException();\n      (*pcVar6)();\n    }" ({ "{") (expression_statement "uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);" (assignment_expression "uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0)" (identifier "uVar8") (= "=") (call_expression "dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0)" (identifier "dcgettext") (argument_list "(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: bfd_hash_allocate failed creating symbol %s\n"" (" """) (string_content "%F%P: bfd_hash_allocate failed creating symbol %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar8,0x2d795);" (call_expression "FUN_00031760(uVar8,0x2d795)" (identifier "FUN_00031760") (argument_list "(uVar8,0x2d795)" (( "(") (identifier "uVar8") (, ",") (number_literal "0x2d795") () ")"))) (; ";")) (expression_statement "_DAT_00000010 = _DAT_00000010 & 0xfeff;" (assignment_expression "_DAT_00000010 = _DAT_00000010 & 0xfeff" (identifier "_DAT_00000010") (= "=") (binary_expression "_DAT_00000010 & 0xfeff" (identifier "_DAT_00000010") (& "&") (number_literal "0xfeff"))) (; ";")) (expression_statement "pcVar6 = (code *)invalidInstructionException();" (assignment_expression "pcVar6 = (code *)invalidInstructionException()" (identifier "pcVar6") (= "=") (cast_expression "(code *)invalidInstructionException()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "invalidInstructionException()" (identifier "invalidInstructionException") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;" (assignment_expression "*(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00" (pointer_expression "*(ushort *)(local_54 + 4)" (* "*") (cast_expression "(ushort *)(local_54 + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 4)" (( "(") (binary_expression "local_54 + 4" (identifier "local_54") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(ushort *)(local_54 + 4) & 0xfe00" (pointer_expression "*(ushort *)(local_54 + 4)" (* "*") (cast_expression "(ushort *)(local_54 + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 4)" (( "(") (binary_expression "local_54 + 4" (identifier "local_54") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xfe00"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "dcgettext();" (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00031760();" (call_expression "FUN_00031760()" (identifier "FUN_00031760") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Heritage AFTER dead removal. Example location: r0x00091c50 : 0x0002d690 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Restarted to delay deadcode elimination for space: ram */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  type_1 var_24;
  type_2 *pbVar2;
  type_2 *pbVar3;
  type_3 fVar4;
  type_4 bVar5;
  type_5 *pbVar6;
  type_2 *var_5;
  type_6 *pcVar8;
  type_7 *puVar9;
  type_8 *pbVar10;
  type_9 var_7;
  size_t var_20;
  char *pcVar13;
  type_10 var_30;
  type_2 *var_4;
  type_11 var_35;
  int var_14;
  type_9 var_13;
  type_10 pbVar19;
  type_1 *var_15;
  type_1 *var_19;
  type_1 *var_16;
  bool var_17;
  bool var_21;
  bool bVar25;
  type_1 bVar26;
  int *in_stack_ffffff7c;
  type_9 var_11;
  type_9 var_6;
  type_12 var_9;
  type_12 var_10;
  type_2 *local_5c;
  type_9 var_12;
  type_13 *var_38;
  type_4 var_34;
  type_2 *var_8;
  int count;
  type_14 uStack_14;
  
  bVar26 = 0;
  uStack_14 = 0x2d1e9;
  var_1();
  var_2();
  var_3(build_link_order);
  pbVar10 = link_info.output_bfd;
  puVar9 = PTR__sch_istable_00090fa8;
  if ((config.split_by_reloc & config.split_by_file) != 0xffffffff) {
    pbVar2 = (type_2 *)(link_info.output_bfd)->section_count;
    pbVar3 = (link_info.output_bfd)->sections;
    var_5 = pbVar3;
    var_4 = pbVar2;
    while ((var_4 != (type_2 *)0x0 && (var_5 != (type_2 *)0x0))) {
      count = 0;
      var_34 = pbVar3->vma;
      if ((pbVar3->map_head).s != (type_2 *)0x0) {
        var_10 = 0;
        var_12 = 0;
        var_6 = 0;
        var_8 = (type_2 *)0x0;
        pbVar19 = pbVar3;
        local_5c = (pbVar3->map_head).s;
        do {
          var_13 = var_6;
          if (local_5c->id == 1) {
            var_11 = 0;
            var_4 = local_5c->prev;
            if ((link_info._1_1_ & 0x20) == 0) {
              var_11 = var_4->lineno_count;
            }
            var_7 = 0;
            if ((link_info._0_1_ & 3) == 2) {
              var_7 = var_4->reloc_count;
              var_6 = var_6 + var_7;
            }
            var_9 = var_4->size;
            var_13 = var_6;
            var_6 = var_7;
          }
          else if ((link_info._0_1_ & 3) == 2) {
            var_9 = 0;
            var_11 = 0;
            var_7 = (type_9)(local_5c->id - 3 < 2);
            var_13 = var_6 + var_7;
            var_6 = var_7;
          }
          else {
            var_9 = 0;
            var_6 = 0;
            var_11 = 0;
          }
          if (var_8 == (type_2 *)0x0) {
LAB_0002d64e:
            var_10 = var_9 + var_10;
            var_12 = var_11 + var_12;
            var_4 = (type_2 *)local_5c->name;
            var_6 = var_13;
          }
          else {
            var_17 = config.split_by_reloc < var_13;
            bVar25 = config.split_by_reloc == var_13;
            if (var_13 < config.split_by_reloc) {
              var_7 = var_11 + var_12;
              var_17 = config.split_by_reloc < var_7;
              bVar25 = config.split_by_reloc == var_7;
              if (var_7 < config.split_by_reloc) {
                var_17 = var_9 + var_10 < config.split_by_file;
                bVar25 = var_9 + var_10 == config.split_by_file;
                if (var_17) goto LAB_0002d64e;
              }
            }
            var_19 = (type_1 *)pbVar19->name;
            var_14 = 5;
            var_15 = var_19;
            var_16 = (type_1 *)".stab";
            do {
              if (var_14 == 0) break;
              var_14 = var_14 + -1;
              var_17 = *var_15 < *var_16;
              bVar25 = *var_15 == *var_16;
              var_15 = var_15 + (type_9)bVar26 * -2 + 1;
              var_16 = var_16 + (type_9)bVar26 * -2 + 1;
            } while (bVar25);
            var_21 = false;
            var_17 = (!var_17 && !bVar25) == var_17;
            if (var_17) {
              var_20 = var_18((char *)var_19);
              var_14 = 4;
              var_17 = (type_15 *)0xffffffef < &stack0xffffff74;
              bVar25 = &stack0x00000000 == (type_15 *)0x7c;
              var_19 = var_19 + (var_20 - 3);
              var_15 = &DAT_0004de1c;
              do {
                if (var_14 == 0) break;
                var_14 = var_14 + -1;
                var_17 = *var_19 < *var_15;
                bVar25 = *var_19 == *var_15;
                var_19 = var_19 + (type_9)bVar26 * -2 + 1;
                var_15 = var_15 + (type_9)bVar26 * -2 + 1;
              } while (bVar25);
              if ((!var_17 && !bVar25) == var_17) goto LAB_0002d64e;
            }
            else {
              var_14 = 0xe;
              var_15 = (type_1 *)"$GDB_STRINGS$";
              do {
                if (var_14 == 0) break;
                var_14 = var_14 + -1;
                var_21 = *var_19 < *var_15;
                var_17 = *var_19 == *var_15;
                var_19 = var_19 + (type_9)bVar26 * -2 + 1;
                var_15 = var_15 + (type_9)bVar26 * -2 + 1;
              } while (var_17);
              if ((!var_21 && !var_17) == var_21) goto LAB_0002d64e;
            }
            var_19 = (type_1 *)pbVar3->name;
            var_20 = var_18((char *)var_19);
            pcVar13 = (char *)var_22();
            var_23(pcVar13,var_19,var_20 + 1);
            if (var_20 != 0) {
              var_24 = puVar9[(type_9)(type_1)pcVar13[var_20 - 1] * 2];
              while ((var_24 & 4) != 0) {
                if (var_20 - 1 == 0) goto LAB_0002d408;
                var_24 = puVar9[(type_9)(type_1)pcVar13[var_20 - 2] * 2];
                var_20 = var_20 - 1;
              }
              if ((var_20 != 1) && (pcVar13[var_20 - 1] == '.')) {
                pcVar13[var_20 - 1] = '\0';
              }
            }
LAB_0002d408:
            if ((pbVar10->xvec->flavour - var_25 & 0xfffffffd) == 0) {
              var_20 = var_18(pcVar13);
              var_17 = var_20 < 5;
              bVar25 = var_20 == 5;
              if (5 < var_20) {
                var_14 = 5;
                var_15 = var_19;
                var_16 = (type_1 *)".stab";
                do {
                  if (var_14 == 0) break;
                  var_14 = var_14 + -1;
                  var_17 = *var_15 < *var_16;
                  bVar25 = *var_15 == *var_16;
                  var_15 = var_15 + (type_9)bVar26 * -2 + 1;
                  var_16 = var_16 + (type_9)bVar26 * -2 + 1;
                } while (bVar25);
                var_21 = false;
                var_17 = (!var_17 && !bVar25) == var_17;
                if (!var_17) {
                  var_14 = 0xe;
                  var_15 = (type_1 *)"$GDB_SYMBOLS$";
                  do {
                    if (var_14 == 0) break;
                    var_14 = var_14 + -1;
                    var_21 = *var_19 < *var_15;
                    var_17 = *var_19 == *var_15;
                    var_19 = var_19 + (type_9)bVar26 * -2 + 1;
                    var_15 = var_15 + (type_9)bVar26 * -2 + 1;
                  } while (var_17);
                  if ((!var_21 && !var_17) != var_21) {
                    pcVar13[5] = '\0';
                    goto LAB_0002d470;
                  }
                }
                pcVar13 = (char *)var_26();
                var_27(pcVar13);
                goto LAB_0002d60e;
              }
            }
LAB_0002d470:
            in_stack_ffffff7c = &count;
            var_14 = var_28();
            if (((var_14 == 0) ||
                (var_30 = (type_10)var_29(), var_30 == (type_10)0x0)) ||
               (var_14 = var_31(link_info.hash,var_14,1,1), var_14 == 0)) {
              pcVar13 = (char *)var_26();
              var_27(pcVar13);
LAB_0002d60e:
              _DAT_000000a0 = local_5c;
                    /* WARNING: Does not return */
              pcVar8 = (type_6 *)var_32();
              (*pcVar8)();
            }
            var_33(pcVar13);
            fVar4 = pbVar19->flags;
            *(type_15 *)(var_14 + 0xc) = 3;
            *(type_14 *)(var_14 + 0x18) = 0;
            *(type_10 *)(var_14 + 0x14) = var_30;
            var_30->flags = fVar4;
            var_30->vma = pbVar19->vma;
            var_30->field_0x18 = var_30->field_0x18 & 0xfe | pbVar19->field_0x18 & 1;
            bVar5 = pbVar19->lma;
            var_30->size = 0;
            var_30->lma = bVar5;
            bVar5 = pbVar19->output_offset;
            var_30->output_section = var_30;
            var_30->output_offset = bVar5;
            var_13 = pbVar19->alignment_power;
            var_30->orelocation = (type_16 **)0x0;
            var_30->alignment_power = var_13;
            pbVar6 = pbVar10->xvec;
            var_30->reloc_count = 0;
            (*pbVar6->_bfd_copy_private_section_data)(pbVar10,pbVar19,pbVar10,var_30);
            var_30->map_tail = pbVar19->map_tail;
            var_13 = local_5c->index;
            (var_30->map_head).s = local_5c;
            (pbVar19->map_tail).link_order = (type_17 *)var_8;
            var_8->name = (char *)0x0;
            var_34 = var_34 + var_13;
            var_30->size = pbVar19->size - var_13;
            pbVar19->size = var_13;
            var_30->vma = var_34;
            var_30->lma = var_34;
            var_4 = local_5c;
            var_7 = var_13;
            while( true ) {
              var_4->index = var_7 - var_13;
              if (var_4->id == 1) {
                var_5 = var_4->prev;
                var_5->output_section = var_30;
                var_5->output_offset = var_7 - var_13;
              }
              var_4 = (type_2 *)var_4->name;
              if (var_4 == (type_2 *)0x0) break;
              var_7 = var_4->index;
            }
            var_4 = (type_2 *)local_5c->name;
            var_12 = var_11;
            var_10 = var_9;
            pbVar19 = var_30;
          }
          if (var_4 == (type_2 *)0x0) break;
          var_8 = local_5c;
          local_5c = var_4;
        } while( true );
      }
      pbVar3 = pbVar3->next;
      pbVar2 = (type_2 *)((int)&pbVar2[-1].map_tail + 3);
      var_4 = pbVar3;
      var_5 = pbVar2;
    }
  }
  var_38 = &link_info;
  var_35 = (*(link_info.output_bfd)->xvec->_bfd_final_link)(link_info.output_bfd,&link_info);
  if (var_35 != 0) {
    return;
  }
  var_14 = var_36();
  if (var_14 == 0) {
    var_37();
    if ((var_38 == (type_13 *)0x0) &&
       (var_38 = (type_13 *)var_39(in_stack_ffffff7c,0x14),
       var_38 == (type_13 *)0x0)) {
      pcVar13 = (char *)var_26(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);
      var_27(pcVar13,0x2d795);
      var_40 = var_40 & 0xfeff;
                    /* WARNING: Does not return */
      pcVar8 = (type_6 *)var_32();
      (*pcVar8)();
    }
    *(type_18 *)&var_38->stacksize = (type_18)var_38->stacksize & 0xfe00;
    return;
  }
  pcVar13 = (char *)var_26();
  var_27(pcVar13);
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Heritage AFTER dead removal. Example location: r0x00091c50 : 0x0002d690 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Restarted to delay deadcode elimination for space: ram */

void MASKED(void)

{
  byte bVar1;
  undefined4 *puVar2;
  undefined4 *puVar3;
  int iVar4;
  undefined4 *puVar5;
  code *pcVar6;
  undefined *puVar7;
  undefined4 uVar8;
  uint uVar9;
  size_t sVar10;
  char *__s;
  undefined4 *puVar11;
  undefined4 *puVar12;
  int iVar13;
  int iVar14;
  uint uVar15;
  int iVar16;
  byte *pbVar17;
  byte *pbVar18;
  byte *pbVar19;
  bool bVar20;
  bool bVar21;
  bool bVar22;
  byte bVar23;
  undefined4 *in_stack_ffffff7c;
  int local_70;
  uint local_6c;
  int local_68;
  int local_64;
  undefined4 *local_5c;
  int local_58;
  undefined4 *local_54;
  int local_4c;
  undefined4 *local_48;
  undefined4 local_20 [3];
  undefined4 uStack_14;
  
  bVar23 = 0;
  uStack_14 = 0x2d1e9;
  bfd_set_error();
  FUN_00024760();
  FUN_000217c0();
  iVar13 = DAT_00091c50;
  puVar7 = PTR__sch_istable_00090fa8;
  if ((DAT_00091d74 & DAT_00091d78) != 0xffffffff) {
    puVar2 = *(undefined4 **)(DAT_00091c50 + 0x68);
    puVar3 = *(undefined4 **)(DAT_00091c50 + 0x60);
    puVar5 = puVar3;
    puVar12 = puVar2;
    while ((puVar12 != (undefined4 *)0x0 && (puVar5 != (undefined4 *)0x0))) {
      local_20[0] = 0;
      local_4c = puVar3[7];
      if ((undefined4 *)puVar3[0x28] != (undefined4 *)0x0) {
        local_64 = 0;
        local_58 = 0;
        local_6c = 0;
        local_48 = (undefined4 *)0x0;
        puVar12 = puVar3;
        local_5c = (undefined4 *)puVar3[0x28];
        do {
          uVar15 = local_6c;
          if (local_5c[1] == 1) {
            local_70 = 0;
            iVar14 = local_5c[4];
            if ((DAT_00091c20._1_1_ & 0x20) == 0) {
              local_70 = *(int *)(iVar14 + 0x74);
            }
            uVar9 = 0;
            if (((byte)DAT_00091c20 & 3) == 2) {
              uVar9 = *(uint *)(iVar14 + 0x4c);
              local_6c = local_6c + uVar9;
            }
            local_68 = *(int *)(iVar14 + 0x24);
            uVar15 = local_6c;
            local_6c = uVar9;
          }
          else if (((byte)DAT_00091c20 & 3) == 2) {
            local_68 = 0;
            local_70 = 0;
            uVar9 = (uint)(local_5c[1] - 3 < 2);
            uVar15 = local_6c + uVar9;
            local_6c = uVar9;
          }
          else {
            local_68 = 0;
            local_6c = 0;
            local_70 = 0;
          }
          if (local_48 == (undefined4 *)0x0) {
LAB_0002d64e:
            local_64 = local_68 + local_64;
            local_58 = local_70 + local_58;
            puVar5 = (undefined4 *)*local_5c;
            local_6c = uVar15;
          }
          else {
            bVar20 = DAT_00091d74 < uVar15;
            bVar22 = DAT_00091d74 == uVar15;
            if (uVar15 < DAT_00091d74) {
              uVar9 = local_70 + local_58;
              bVar20 = DAT_00091d74 < uVar9;
              bVar22 = DAT_00091d74 == uVar9;
              if (uVar9 < DAT_00091d74) {
                bVar20 = (uint)(local_68 + local_64) < DAT_00091d78;
                bVar22 = local_68 + local_64 == DAT_00091d78;
                if (bVar20) goto LAB_0002d64e;
              }
            }
            pbVar18 = (byte *)*puVar12;
            iVar14 = 5;
            pbVar17 = pbVar18;
            pbVar19 = (byte *)".stab";
            do {
              if (iVar14 == 0) break;
              iVar14 = iVar14 + -1;
              bVar20 = *pbVar17 < *pbVar19;
              bVar22 = *pbVar17 == *pbVar19;
              pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;
              pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;
            } while (bVar22);
            bVar21 = false;
            bVar20 = (!bVar20 && !bVar22) == bVar20;
            if (bVar20) {
              sVar10 = strlen((char *)pbVar18);
              iVar14 = 4;
              bVar20 = (undefined1 *)0xffffffef < &stack0xffffff74;
              bVar22 = &stack0x00000000 == (undefined1 *)0x7c;
              pbVar18 = pbVar18 + (sVar10 - 3);
              pbVar17 = &DAT_0004de1c;
              do {
                if (iVar14 == 0) break;
                iVar14 = iVar14 + -1;
                bVar20 = *pbVar18 < *pbVar17;
                bVar22 = *pbVar18 == *pbVar17;
                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;
                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;
              } while (bVar22);
              if ((!bVar20 && !bVar22) == bVar20) goto LAB_0002d64e;
            }
            else {
              iVar14 = 0xe;
              pbVar17 = (byte *)"$GDB_STRINGS$";
              do {
                if (iVar14 == 0) break;
                iVar14 = iVar14 + -1;
                bVar21 = *pbVar18 < *pbVar17;
                bVar20 = *pbVar18 == *pbVar17;
                pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;
                pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;
              } while (bVar20);
              if ((!bVar21 && !bVar20) == bVar21) goto LAB_0002d64e;
            }
            pbVar18 = (byte *)*puVar3;
            sVar10 = strlen((char *)pbVar18);
            __s = (char *)xmalloc();
            memcpy(__s,pbVar18,sVar10 + 1);
            if (sVar10 != 0) {
              bVar1 = puVar7[(uint)(byte)__s[sVar10 - 1] * 2];
              while ((bVar1 & 4) != 0) {
                if (sVar10 - 1 == 0) goto LAB_0002d408;
                bVar1 = puVar7[(uint)(byte)__s[sVar10 - 2] * 2];
                sVar10 = sVar10 - 1;
              }
              if ((sVar10 != 1) && (__s[sVar10 - 1] == '.')) {
                __s[sVar10 - 1] = '\0';
              }
            }
LAB_0002d408:
            if ((*(int *)(*(int *)(iVar13 + 4) + 4) - 2U & 0xfffffffd) == 0) {
              sVar10 = strlen(__s);
              bVar20 = sVar10 < 5;
              bVar22 = sVar10 == 5;
              if (5 < sVar10) {
                iVar14 = 5;
                pbVar17 = pbVar18;
                pbVar19 = (byte *)".stab";
                do {
                  if (iVar14 == 0) break;
                  iVar14 = iVar14 + -1;
                  bVar20 = *pbVar17 < *pbVar19;
                  bVar22 = *pbVar17 == *pbVar19;
                  pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;
                  pbVar19 = pbVar19 + (uint)bVar23 * -2 + 1;
                } while (bVar22);
                bVar21 = false;
                bVar20 = (!bVar20 && !bVar22) == bVar20;
                if (!bVar20) {
                  iVar14 = 0xe;
                  pbVar17 = (byte *)"$GDB_SYMBOLS$";
                  do {
                    if (iVar14 == 0) break;
                    iVar14 = iVar14 + -1;
                    bVar21 = *pbVar18 < *pbVar17;
                    bVar20 = *pbVar18 == *pbVar17;
                    pbVar18 = pbVar18 + (uint)bVar23 * -2 + 1;
                    pbVar17 = pbVar17 + (uint)bVar23 * -2 + 1;
                  } while (bVar20);
                  if ((!bVar21 && !bVar20) != bVar21) {
                    __s[5] = '\0';
                    goto LAB_0002d470;
                  }
                }
                dcgettext();
                FUN_00031760();
                goto LAB_0002d60e;
              }
            }
LAB_0002d470:
            in_stack_ffffff7c = local_20;
            iVar14 = bfd_get_unique_section_name();
            if (((iVar14 == 0) ||
                (puVar11 = (undefined4 *)bfd_make_section_anyway(), puVar11 == (undefined4 *)0x0))
               || (iVar14 = bfd_link_hash_lookup(DAT_00091c3c,iVar14,1,1), iVar14 == 0)) {
              dcgettext();
              FUN_00031760();
LAB_0002d60e:
              _DAT_000000a0 = local_5c;
                    /* WARNING: Does not return */
              pcVar6 = (code *)invalidInstructionException();
              (*pcVar6)();
            }
            free(__s);
            uVar8 = puVar12[5];
            *(undefined1 *)(iVar14 + 0xc) = 3;
            *(undefined4 *)(iVar14 + 0x18) = 0;
            *(undefined4 **)(iVar14 + 0x14) = puVar11;
            puVar11[5] = uVar8;
            puVar11[7] = puVar12[7];
            *(byte *)(puVar11 + 6) = *(byte *)(puVar11 + 6) & 0xfe | *(byte *)(puVar12 + 6) & 1;
            uVar8 = puVar12[8];
            puVar11[9] = 0;
            puVar11[8] = uVar8;
            uVar8 = puVar12[0xe];
            puVar11[0xf] = puVar11;
            puVar11[0xe] = uVar8;
            uVar8 = puVar12[0x10];
            puVar11[0x12] = 0;
            puVar11[0x10] = uVar8;
            iVar14 = *(int *)(iVar13 + 4);
            puVar11[0x13] = 0;
            (**(code **)(iVar14 + 0xb4))(iVar13,puVar12,iVar13,puVar11);
            puVar11[0x29] = puVar12[0x29];
            iVar14 = local_5c[2];
            puVar11[0x28] = local_5c;
            puVar12[0x29] = local_48;
            *local_48 = 0;
            local_4c = local_4c + iVar14;
            puVar11[9] = puVar12[9] - iVar14;
            puVar12[9] = iVar14;
            puVar11[7] = local_4c;
            puVar11[8] = local_4c;
            puVar12 = local_5c;
            iVar16 = iVar14;
            while( true ) {
              puVar12[2] = iVar16 - iVar14;
              if (puVar12[1] == 1) {
                iVar4 = puVar12[4];
                *(undefined4 **)(iVar4 + 0x3c) = puVar11;
                *(int *)(iVar4 + 0x38) = iVar16 - iVar14;
              }
              puVar12 = (undefined4 *)*puVar12;
              if (puVar12 == (undefined4 *)0x0) break;
              iVar16 = puVar12[2];
            }
            puVar5 = (undefined4 *)*local_5c;
            local_58 = local_70;
            local_64 = local_68;
            puVar12 = puVar11;
          }
          if (puVar5 == (undefined4 *)0x0) break;
          local_48 = local_5c;
          local_5c = puVar5;
        } while( true );
      }
      puVar3 = (undefined4 *)puVar3[3];
      puVar2 = (undefined4 *)((int)puVar2 + -1);
      puVar12 = puVar3;
      puVar5 = puVar2;
    }
  }
  local_54 = &DAT_00091c20;
  iVar13 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x178))();
  if (iVar13 != 0) {
    return;
  }
  iVar13 = bfd_get_error();
  if (iVar13 == 0) {
    xexit();
    if ((local_54 == (undefined4 *)0x0) &&
       (local_54 = (undefined4 *)bfd_hash_allocate(in_stack_ffffff7c,0x14),
       local_54 == (undefined4 *)0x0)) {
      uVar8 = dcgettext(0,"%F%P: bfd_hash_allocate failed creating symbol %s\n",5,0);
      FUN_00031760(uVar8,0x2d795);
      _DAT_00000010 = _DAT_00000010 & 0xfeff;
                    /* WARNING: Does not return */
      pcVar6 = (code *)invalidInstructionException();
      (*pcVar6)();
    }
    *(ushort *)(local_54 + 4) = *(ushort *)(local_54 + 4) & 0xfe00;
    return;
  }
  dcgettext();
  FUN_00031760();
  return;
}

